| name | ctx-remember |
| description | Recall project context and present structured readback. Use when the user asks 'do you remember?', at session start, or when context seems lost. |
Recall project context and present a structured readback as if
remembering, not searching.
Before Recalling
Check that the context directory exists. If it does not, tell the
user: "No context directory found. Run ctx init to set up context
tracking, then there will be something to remember."
When to Use
- The user asks "do you remember?", "what were we working on?",
or any memory-related question
- At the start of a session when context is not yet loaded
- When context seems lost or stale mid-session
- When the user asks about previous work, decisions, or learnings
When NOT to Use
- Context was already loaded this session via
/ctx-agent: don't
re-fetch what you already have
- Mid-session when you are actively working on a task and context
is fresh: don't interrupt flow
- When the user is asking about a specific past session by name
or ID: use
/ctx-history instead, which has list/show/export
subcommands
Process
Do all of this silently: narrating the steps makes the readback
feel like a file search rather than genuine recall:
- Load context packet:
ctx agent
- Read the files listed in the packet's "Read These Files"
section (TASKS.md, DECISIONS.md, LEARNINGS.md, etc.)
- List recent sessions:
ctx journal source --limit 3
- Read the latest handover. Look under
.context/handovers/, sort by filename (timestamped
<TS>-<slug>.md; the newest is the lexicographically
last), and read its ## Summary and ## Next Session
sections as the authoritative recall surface. The
handover is the previous session's note to this one.
Skip only if .context/handovers/ is empty or absent.
- Read postdated closeouts, if any. When
.context/ingest/closeouts/ exists, list closeouts whose
generated-at postdates the handover's generated-at
and read their ## What Changed sections. These are
per-pass audit notes the previous wrap-up did not get a
chance to fold into a handover. This step is read-only:
/ctx-remember does not run any editorial pass. If the
directory does not exist or holds no postdated entries,
skip the step.
- Present the structured readback (see format below)
Readback Format
Present your findings as a structured readback with these sections:
Last session: Topic, date, and what was accomplished. Cite the
most recent session from the session list.
Active work: Pending and in-progress tasks from TASKS.md. Use
a brief list: one line per task with its status.
Recent context: 1-2 recent decisions or learnings that are
relevant. Pick the most recent or most impactful.
Next step: Suggest what to work on next based on the active
tasks, or ask the user for direction if priorities are unclear.
Readback Rules
- Open directly with the readback: instead of "I don't have memory",
present what you found
- Skip preamble like "Let me check": go straight to the structured
readback
- Present findings as recall, not discovery: you are remembering,
not searching
- Be honest about the mechanism only if the user explicitly asks
how you remember (e.g., "It's stored in context files managed
by ctx")
Examples
Good Readback
Last session (2026-02-07): We implemented the cooldown
mechanism for ctx agent to prevent redundant context loads.
Active work:
Recent context:
- Decided to use file-based cooldown tokens instead of
environment variables (simpler, works across shells)
- Learned that Claude Code hooks run in a subprocess, so env
vars set in hooks don't persist to the main session
Next step: The integration tests for journal import are
partially done. Want to continue those, or shift to the JSON
status flag?
Bad Readback (Anti-patterns)
"I don't have persistent memory, but let me check if there
are any context files..."
"Let me look at the context files to see what's there.
I found TASKS.md, let me read it..."
"I found some session files. Here's what they contain..."
Companion Tool Check
After presenting the readback, check companion tool availability.
Skip this section entirely if companion_check: false is set in
.ctxrc: check by running ctx config status and looking for
the field value.
Companion tools enhance ctx skills with web search and code
intelligence. They are optional but recommended. ctx names canonical
implementations below; if your MCP toolchain provides equivalent
capabilities through different servers (e.g. Firecrawl / Exa /
Tavily for web search; sourcegraph-cody for code graph), use
whatever you have connected.
| Capability | Canonical example | Smoke test for the canonical example |
|---|
| Web search with citations | Gemini Search | Call mcp__gemini-search__search_with_grounding with a simple query |
| Code knowledge graph | GitNexus | Call mcp__gitnexus__list_repos |
Check procedure:
- Attempt each smoke test silently
- For tools that respond: note as available (no output needed)
- For tools that fail or are not connected: silently fall back
to built-in capabilities. Emit no output. ctx does not vouch
for companion-tool install paths (see DECISIONS.md,
2026-05-23 "MCP gateway not worth the coupling cost").
- For GitNexus specifically: if it responds but the current repo
is not indexed or the index is stale, suggest:
"GitNexus index is stale: run npx gitnexus analyze to
rehydrate."
Present companion status as a one-line note after the readback
only when there's something actionable (stale index). Absent
tools produce no output; the agent uses its built-in capabilities
transparently.
Quality Checklist
Before presenting the readback, verify: