Skip to Content
Krad ADE
User guide

Kraddie chats and memory

Chats that belong to a Kraddie, the digests chats leave behind, and which memory each chat may read.

A Kraddie remembers two kinds of things: its keepsakes, short lines it carries into every run, and chat digests, the facts and decisions its chats leave behind. Ordinary chats, those of no Kraddie, leave digests too, in one shared book. Which of all that a chat may read is its memory reach, decided on every read.

Kraddie chats

A Kraddie chat is a chat session that belongs to a Kraddie. It starts with the Kraddie's harness, model, effort and permissions, its identity, compass and keepsakes, and carries the Kraddie's avatar in the session lists. It is reopened, renamed and closed like any session.

The sidebar's Kraddies list has a row per Kraddie. New chat talks to the Kraddie in a chat of its own; Show its chats and Hide its chats fold the list of its chats.

A Kraddie chat opens in the Kraddie's working folder when it has one, otherwise in the group you are in. Set it in Chats and memory › Working folder: Use the open group, or Let each chat pick. Its automations work in the same folder.

If the Kraddie's agent cannot open a chat, the app asks you to pick another one in Tuning.

Chat digests

A chat digest is the short list of facts and decisions a chat leaves behind.

  • When. The app writes one when a chat ends, or once it has rested for 10 minutes, and only when at least two messages are new since the last digest of that chat.
  • Who writes it. The chat's own harness, in a background request of its own in plan mode, asked to list up to 12 lasting facts: choices made and why, conventions, commands that work, names of things and open questions. It is told to leave out chit-chat, code listings, file contents and anything secret, and not to use any tool.
  • Secrets. Keys, tokens and passwords are redacted from the conversation before it is handed over.
  • Size. Up to 12 facts per digest, 300 characters per fact; a book keeps up to 400 digests, dropping the oldest.
  • Skipped while the chat is working, when spending is near its budget and when the digests of that Kraddie are off.

Only structured chats leave digests, not the terminal view of a harness.

Where they are kept

ChatDigests go to
A Kraddie chatThat Kraddie's own book, kraddies/<id>/digests.json
An ordinary chatThe shared book, chat-memory/digests.json

Both live in the config folder.

Read, edit and forget

On a Kraddie's page, Chats and memory lists what its chats left behind. Each digest has Edit and Forget. A digest you edited is yours: later digests of that chat add new facts to it instead of replacing it.

Under Memory and reach, Write a digest when a chat ends or rests turns a Kraddie's automatic digests on and off. They are on by default.

Memory reach

Memory reach is which memory a chat may read. It is applied to the memory pack a chat starts with and to every memory_search and memory_read call.

  • Every chat may read the digests of ordinary chats.
  • A Kraddie chat reads its own Kraddie's keepsakes and digests.
  • It also reads the memory of every Kraddie its Kraddie can read.
  • Any chat reads a Kraddie you mentioned in it with $.
  • Nothing else.

Sharing has a direction

On a Kraddie's page, Memory and reach › Can read memory of lists the Kraddies it reads, and Read by lists those that read it. The setting sits on the reader, and it is one way: it reads them, they do not read it back. It is not passed on either: if Owl reads Fox and Fox reads Kit, Owl does not read Kit.

Terminal
krad kraddie share owl fox      # Owl reads Fox
krad kraddie unshare owl fox    # Owl stops reading Fox

Visibility matrix

With Owl reading Fox, and Fox reading Kit:

ChatOrdinary digestsOwlFoxKit
An ordinary chatYesNoNoNo
An ordinary chat where you wrote $OwlYesYesNoNo
A chat of OwlYesYesYesNo
A chat of FoxYesNoYesYes
A chat of KitYesNoNoYes
A chat of Kit where you wrote $OwlYesYesNoYes

"Owl" stands for Owl's keepsakes and digests.

Examples

  • In a chat of Fox, memory_search for "staging" can return a digest of an ordinary chat, a keepsake of Fox and a digest of Kit, never one of Owl.
  • In a chat of Owl, memory_read of kraddie/kit/keepsake/1 is refused: Kit is out of Owl's reach, since reading is not passed on through Fox.
  • Mention $Kit in that chat of Owl, and Kit's memory is in reach for the rest of that chat.

Mentions with $

Type $ in the composer and pick a Kraddie by name. The mention shows as a chip; removing it leaves that Kraddie's memory out. When the message is sent, the named Kraddie's own memory pack is attached to it, and the Kraddie stays in that chat's reach.

The memory pack

When a chat starts, the app hands its harness a memory pack: the memory within its reach, ranked by relevance and recency and cut to a token budget. Keepsakes and the chat's own Kraddie rank higher.

PackBudget
At the start of a chatAbout 1,500 tokens
Attached by a $ mentionAbout 800 tokens

The pack tells the agent it can ask for more with the memory tools.

Memory tools

The app's MCP server, krad mcp (server name krad-code), offers chats two read-only tools. They make the MemorySearch and MemoryRead requests under the same reach, and are listed only while there is a Kraddie or an ordinary chat digest to read.

ToolArgumentsReturns
memory_searchquery, and limit from 1 to 30 (8 by default)Memory ids with short excerpts
memory_readidOne memory in full

Memory ids name their owner and kind:

Memory ids
kraddie/<id>/keepsake/<n>   a keepsake, numbered from 1
kraddie/<id>/digest/<n>     a digest of a Kraddie chat
chats/digest/<n>            a digest of an ordinary chat

From the CLI

CommandWhat it does
krad kraddie memory <name>The keepsakes it carries and how many it may keep
krad kraddie memory list <name>Its keepsakes, digests, the Kraddies it reads and whether its digests are automatic
krad kraddie memory show <name>The same, with every fact
krad kraddie remember <name> <text>Hands it a keepsake
krad kraddie share <reader> <read-from>Lets the reader read the other's memory
krad kraddie unshare <reader> <read-from>Stops it
krad kraddie chat new <name>Opens a new chat of that Kraddie

Only you change memory

remember, share and unshare sent from a chat are refused with forbidden. They work from your own terminal and in the app. Reading a Kraddie out of a chat's reach is refused with out_of_reach.

See the krad CLI for every command.

On this page