Memory is only as useful as what goes into it and how you ask for it back. This guide collects habits that work. For how memory works, see Memory.
#Start every session with startup
Ask the agent to load its context before the real work:
Call get_startup, then tell me in two sentences where we left off.Pick a mode when the work calls for it:
Call get_startup in deep_work mode for the billing project.The CLI launcher and project instructions can make this automatic. See Sessions and continuity.
#Record the right things
Ask for memories in plain language. The agent picks the tool.
| When | Say | Tool |
|---|---|---|
| Something significant happened | "Record a moment: we shipped the importer." | add_moment |
| You learned a lesson | "Save the insight that retries hide flaky tests." | add_insight |
| You chose between options | "Log the decision to use Postgres, with the reasons." | add_decision |
| A screenshot tells the story | "Store this screenshot as a memory of the new dashboard." | store_screenshot |
| The session is ending | "Record this session." | record_session |
Good memories are specific and self-contained. "Chose Postgres over DynamoDB because we need joins across tenants" is findable a year later; "went with the first option" is not.
Tag moments that matter, such as MILESTONE or SIGNIFICANT, and set a project when the memory belongs to one.
#Find things again
Search by meaning, in your own words:
Search your memory for what we decided about tenant isolation.When the results are noisy, ask for a stricter match or fewer results. The agent lowers threshold (the default is 1.5; lower is stricter) or limit (the default is 10):
Search again for tenant isolation with a stricter match, top 3 only.Other ways back in:
- "What did we work on last week?" (
get_sessions) - "List our decisions about pricing." (
get_decisions) - "What have you learned about testing this codebase?" (
get_relevant_wisdom) - "What comes up when you think about the launch?" (
ecphoric_recall, for felt, associative memories)
#Keep memory clean
- Merge duplicates: "Merge the two moments about the importer launch." (
merge_memories) - Correct mistakes: "Update that decision: we chose Postgres 16, not 15." (
update_decision) - Release what should not be kept: "Release the moment that contains the customer's phone number." (
release_moment). Release deletes permanently. - Browse and check on the entity's Memory tab, and download a backup before large cleanups.
#Let the entity grow
- Give feedback. Ratings and corrections become failure captures and steering rules. See Steering rules, failures, and reflections.
- Review proposals on the Activity tab. Approved value refinements make the entity more itself over time.
- Leave room for dreams. Insights recorded during the day become wisdom overnight.
#Share memory across clients
Every client connected to the same entity shares one memory. A decision logged in Claude Code is there when you open ChatGPT. To keep work separate, use projects, or create a separate entity for unrelated work.
#What not to store
Memory is readable by every agent connected to the entity. Do not record passwords, API keys, or other secrets. The CLI redacts common secrets from session transcripts, but moments and insights are stored as written. Use service secrets for credentials an entity needs.