Memory
Memory
Section titled “Memory”clido includes a long-term memory system that persists facts across sessions. The agent can store important observations during a session and retrieve them automatically in future sessions.
What memory is
Section titled “What memory is”Memory is stored in a SQLite database with full-text search (FTS5). Each memory record is a short text snippet — a fact, preference, or observation — associated with a timestamp and optional tags.
The memory database lives at:
| Platform | Path |
|---|---|
| Linux | ~/.local/share/clido/memory.db |
| macOS | ~/Library/Application Support/clido/memory.db |
Override with CLIDO_DATA_DIR.
How memory is injected
Section titled “How memory is injected”At the start of each agent turn, clido searches the memory database for records relevant to the current conversation. Matching memories are injected into the system prompt, providing the agent with context from previous sessions.
This happens automatically — you do not need to configure anything.
Example system prompt injection:
[Long-term memory]- User prefers tabs over spaces in Rust code.- This project uses the anyhow crate for error handling.- The parse() function was refactored on 2026-03-15 to use Result<T, ParseError>.The agent uses this context when making decisions. For example, if it knows you prefer tabs, it will not insert spaces when editing your code.
Listing memories
Section titled “Listing memories”clido memory listID DATE CONTENT 1 2026-03-21 User prefers tabs over spaces in Rust code. 2 2026-03-20 This project uses the anyhow crate for error handling. 3 2026-03-19 The parse() function was refactored to use Result<T, ParseError>.Limit the number of results:
clido memory list --limit 50The default limit is 20.
Searching memory from the TUI
Section titled “Searching memory from the TUI”In the TUI, use /memory followed by a search query:
/memory error handlingThe agent searches the memory database and displays matching records in the chat pane.
Pruning old memories
Section titled “Pruning old memories”Keep only the N most recent memories, deleting older ones:
clido memory prune --keep 100The default is to keep 100 memories if --keep is not specified.
Resetting all memories
Section titled “Resetting all memories”Delete all memories permanently:
clido memory resetYou will be asked for confirmation. Skip confirmation with --force:
clido memory reset --force::: danger Irreversible
clido memory reset deletes all memories permanently. There is no undo.
:::
How the agent creates memories
Section titled “How the agent creates memories”The agent decides autonomously when something is worth remembering. It will typically store:
- User preferences (code style, naming conventions)
- Project-specific facts (architecture decisions, recurring patterns)
- Information that is likely to be useful in future sessions
The agent does not store sensitive information (API keys, passwords) as memories — these are kept in the session JSONL only.
Memory and privacy
Section titled “Memory and privacy”Memories are stored locally on your machine. They are never sent to any external service. Only the relevant snippets (those matching the current context) are sent to the LLM provider as part of the system prompt.
Disabling memory injection
Section titled “Disabling memory injection”Memory injection is enabled by default. To disable it for a session, set the system prompt explicitly, which replaces the default system prompt (including memory injection):
clido --system-prompt "You are a helpful assistant." "do something"Or use a custom profile with a fixed system prompt in the config.