Docs/Core concepts

Memory

Curated cross-session memory in plain Markdown: your preferences and each project's decisions, carried into every new conversation.

Source: crates/gray/src/memory.rs

Memory is a short list of named, one-line entries stored as Markdown under ~/.gray/memory — user.md for you, one file per project for that project's confirmed decisions. A snapshot joins the system prompt when a session starts and stays fixed for that session. There is no extraction service and no memory tool: the agent manages entries with the same gray memory commands you do, through bash.

bash
$gray memory list # project scope by default
$gray memory --scope user set editor "uses helix, not vim"
$gray memory set test-cmd "run tests with cargo nextest"
$gray memory show test-cmd
$gray memory edit test-cmd "cargo nextest run --workspace"
$gray memory remove test-cmd
$gray memory audit # review entries; deletes nothing
CommandDoes
list · show <key>read entries (--verbose adds save date and source session)
set <key> <text>add or replace an entry
edit <key> <text>rewrite an existing entry; fails on an unknown key
remove <key> · clearforget one entry, or the whole scope
auditcheck entries against the keep/delete rule

Switching it off

/memory off is the master switch and /memory on brings it back; a bare /memory lists entries. GRAY_NO_MEMORY=1 refuses every write for that process.

Join the Discord

Chat with the people building and running Gray. Show what you made with it.

Join Discord →

Need help?

Open an issue on GitHub, run /feedback from the REPL, or ask in Discord.

Open an issue →