Agent skill

Agent Deck Recall

by asheshgoplani in asheshgoplani/agent-deck

Record and later find what an agent-deck session was for, across harnesses, and hand a past conversation to the current one.

MITAuto-check passedAgent Workflows

Install Agent Deck Recall

skills CLI
$ npx skills add asheshgoplani/agent-deck --skill agent-deck-recall -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install asheshgoplani/agent-deck agent-deck-recall --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/asheshgoplani/agent-deck.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/agent-deck/recall .claude/skills/agent-deck-recall && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
agent-deck-recall
GitHub stars
1k
Token cost
~3.4k tokens
SKILL.md length
1,320 words
Files
1
Skills in repo
7
Repo updated
First seen
Licence
MIT

At a glance

Record and later find what an agent-deck session was for, across harnesses, and hand a past conversation to the current one.

  • Works in 2 steps: (available now): hints and tags → (available now): context, derived…
  • The user says remember what this session was for
  • SKILL.md covers Phase 1 (available now): hints…, Phases 2 and 3 (available… and Phase 4 (available now):…
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Agent Deck Recall is an agent skill from asheshgoplani/agent-deck. Record and later find what an agent-deck session was for, across harnesses, and hand a past conversation to the current one. Use when the user says "remember what this session was for", "tag this session", "annotate", "mark the outcome", "ticket for this session", "find the session where we...", "what did we decide about", "which Codex/pi/Gemini session did X", "bring that conversation into this session", "search the other machine's sessions", or wants to search past conversations. Available: hints and tags…

Its SKILL.md is about 3.4k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Agent Workflows, covering MCP servers. It works with Model Context Protocol. The repository describes itself as: Terminal session manager for AI coding agents. One TUI for Claude, Gemini, OpenCode, Codex, and more. The licence is MIT.

When your agent uses it

  • The user says remember what this session was for
  • Tag this session
  • Mark the outcome
  • Ticket for this session

Example prompts

  • “remember what this session was for”
  • “tag this session”
  • “annotate”
  • “/agent-deck-recall”

Workflow steps

2 steps, taken from the step headings in SKILL.md.

  1. (available now): hints and tags
  2. (available now): context, derived summaries, remote, MCP

What it can do on your machine

Read from SKILL.md and the folder at commit 34cf369. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash and toml).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Agent Deck Recall loads about 3.4k tokens when it runs. Until then it costs about 257 tokens; SKILL.md has 1,320 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~257
When it runs · the whole SKILL.md, loaded when a task matches
~3.4k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from asheshgoplani/agent-deck at commit 34cf369, republished under its MIT licence (© asheshgoplani). 1,320 words, ~3,387 tokens.

Download SKILL.mdSave it as .claude/skills/agent-deck-recall/SKILL.md (or your agent's skills folder).
name
agent-deck-recall
description
Record and later find what an agent-deck session was for, across harnesses, and hand a past conversation to the current one. Use when the user says "remember what this session was for", "tag this session", "annotate", "mark the outcome", "ticket for this session", "find the session where we...", "what did we decide about", "which Codex/pi/Gemini session did X", "bring that conversation into this session", "search the other machine's sessions", or wants to search past conversations. Available: hints and tags (add/launch --hint, session annotate, remote annotate), the transcript index over Claude, Codex, pi, Gemini, OpenCode and Hermes (recall search/sessions/show/open/backfill/sweep/status/gc/rebuild, the TUI G key, hook-driven freshness), recall context --into current, the derived artifacts (recall enrich; lost_time, session_kind, outcome), federated remote search (--remote/--all-remotes), opt-in card sync (export/pull/import) and the MCP server (recall mcp); all behind [recall] enabled = true.
metadata
compatibility: "claude, codex, pi, gemini, opencode, hermes"

Recall

Recall is agent-deck's memory of what every session was for and what happened in it. Human intent (hints, tags) lives in the profile's state.db and survives everything; the transcript index (recall.db) is disposable: delete it, recall rebuild, nothing typed is lost. Full design: docs/recall.md in the repo.

Phase 1 (available now): hints and tags

Hints are single-valued per key (setting a key again replaces it). Tags are a set. Well-known keys: purpose, ticket, why, decision, outcome, note, parent; any identifier-shaped key works.

At creation (add and launch)
bash
agent-deck add . -c claude --hint purpose="fix flaky auth test" --ticket SB-412 --tag auth --tag flaky --why "3rd regression"
agent-deck launch . -c claude --ticket SB-412 -m "Fix the flaky auth test"
  • launch derives purpose from the first line of -m and both commands derive parent=<parent id> for a child; an explicit --hint purpose= wins.
  • conductor setup <name> records purpose=conductor <name>.
  • --json echoes hints and tags.
Afterwards (session annotate)
bash
agent-deck session annotate <id> --decision "root cause was clock skew" --outcome worked --tag clock-skew
agent-deck session annotate <id> --set-hint ticket=SB-413 --remove-tag flaky --unset why
agent-deck session annotate --self --outcome worked            # your own session (AGENTDECK_INSTANCE_ID)
agent-deck session annotate --self --note-stdin < summary.md   # free-text note, 8 KiB cap
agent-deck session annotate <id> --json                        # read: hints, tags, harness links

End of task habit: before the completion sentinel, run agent-deck session annotate --self --outcome <worked|failed|partial> --decision "<one line>" so the next agent can find what you concluded.

Remote sessions
bash
agent-deck remote <host> session annotate <id> --outcome worked

Runs on the remote and writes the remote's own state.db. Remote hints are never copied locally; read them through the same forwarded command.

Config
toml
[recall]
enabled = false   # reserved for the transcript index; hints work regardless

Phases 2 and 3 (available now): the transcript index, every harness

Needs [recall] enabled = true in config.toml (every command exits 2 with a clear message otherwise). One index for every profile on the machine and every harness: Claude (all profiles), Codex, pi, Gemini, OpenCode, Hermes. --profile narrows Claude to one account, --harness to one harness. Every interactive sweep runs inside the command that asked for it and ends with it; the Claude Stop hook, session stop, worker_done and the daemon's turn-end edge queue the transcript that just moved (the Stop hook only appends that line; the async SessionEnd hook also indexes its own file within 150 ms), and every search drains the queue first, so a conversation is searchable the moment you look for it. The one exception: agent-deck notify-daemon (the always-on daemon, every machine including remotes) runs a single background initial backfill the first time it sees recall enabled with an empty index or a never-finished pass ([recall] backfill_on_enable = true, the default) — see "Enabling recall for the first time" below.

Enabling recall for the first time

Turning [recall] enabled = true on no longer leaves the index empty: the notify-daemon runs one throttled background backfill on its own, the first time it sees an empty index or a marker saying the pass never finished ([recall] backfill_on_enable = true, default). It never refuses under load like the manual command below does — it shrinks its chunks and sleeps longer instead, so a machine sitting above max_loadavg still finishes, just slower. Progress: agent-deck recall status --json's initial_backfill (state: pending/running/done, done_at, sessions_done, sessions_pending). Nothing to do if the daemon is not running (a machine that only ever uses the CLI interactively) — run recall backfill by hand there instead.

Find sessions
bash
agent-deck recall backfill                     # once; resumable; refuses while a session is busy (--force)
agent-deck recall search "clock skew" --since 30d --profile work --json
agent-deck recall search "retry budget" --harness codex --json
agent-deck recall search SB-412 --hint ticket=SB-412 --phrase   # hint filters read state.db live
agent-deck recall sessions --tag auth --limit 10 --json
agent-deck recall sessions --harness hermes --json
  • Search ranks sessions: a title, hint or tag hit always beats any number of body mentions. Terms are AND-ed; SB-412 and handle_sess stay whole; --phrase verifies the literal phrase in the hits' bodies and says how many bodies it read; a hit whose matching body is clipped (8 KiB tier) is unverified (clipped body), never NOT found. Filters (--harness, --profile, --since, --project, --session, --role) narrow the body candidates before the 5,000-message ceiling (newest first), so a filtered search on a common term is complete. The output (and index in --json) says when the bounded pre-search sweep left files behind; run recall sweep then.
  • Hits carry harness, profile, native_id (the harness's own conversation id), deck_id when a registered session owns the conversation, missing when the file is gone (the text is still indexed), sidechain for a subagent transcript.
  • One index, every profile: links, hints and cost events are read from and written to the profile whose state.db holds the link, whichever profile ran the sweep; recall open starts a session under its own profile.
Read one: recall show
bash
agent-deck recall show <session> --tier card            # counters, hints, tags, tools, files, no messages
agent-deck recall show <session> --turns 40 --json      # excerpt: the first 40 decoded messages
agent-deck recall show <session> --tier raw             # every message

<session> = the #n from a listing, a harness conversation id or a unique prefix, or an agent-deck session id. Messages carry class (prompt, assist, compact_summary, ...); a Codex compaction summary supersedes the messages before it (they stay readable and searchable).

Continue one: recall open
bash
agent-deck recall open <session> [--dry-run]   # start the bound deck session (any harness), or re-register a Claude transcript (add --resume-session)

Codex, pi, Gemini, OpenCode and Hermes conversations that no registered session owns are searchable, not resumable: open exits 2 and names the recall show command instead.

Annotate

session annotate (phase 1, above) is how a found session gets a decision, an outcome or a ticket; the hint is searchable immediately (--hint/--tag join state.db live) and reaches the ranking feed on the next sweep.

Keep it fresh: sweep, status, gc, rebuild
bash
agent-deck recall status --json                # sizes, sources by state, by_harness, queued hook lines, roots, initial_backfill
agent-deck recall sweep [--full] [--json]      # drains recall/queue.jsonl first, then what changed
agent-deck recall gc | rebuild

Exit codes: 2 recall off / not found, 3 load-gated or locked.

Show full SKILL.md (556 more words)Show less
The TUI

G in the TUI opens the same search (/ stays the local title filter; Tab switches): typing = recall search, the preview = recall show #n, Enter = recall open. It never parses on a keypress; a bounded sweep refreshes the index after the overlay opens and a staleness line says what it deferred, with catch-up passes one second apart through the load gate. With [recall] enabled = false the key falls back to the local title search and a notice inside that overlay says so (or quotes the open error when the index could not be opened).

Typical agent flow

recall search "<what you remember>" --harness <h> --json, pick a hit, recall show <id> --tier card, then --turns 40 for the excerpt, or recall context <id> --tier brief --into current to have it in your own prompt; session annotate <deck id> --decision ... on what you learned; recall open <id> to continue a Claude conversation in a new session.

Phase 4 (available now): context, derived summaries, remote, MCP

Bring a past conversation into this session: recall context
bash
agent-deck recall context <session> --tier card                 # print ~60 tokens: title, ids, project, counters, hints
agent-deck recall context <session> --tier brief                # + derived lines (lost_time, session_kind, outcome) and touched files
agent-deck recall context <session> --budget 4000               # excerpt: brief + the newest turns that fit the budget (default)
agent-deck recall context <session> --tier brief --into current # deliver it to YOUR session as a prompt (any harness)
agent-deck recall context <session> --into <id|title>           # deliver it to another session
  • --into current needs AGENTDECK_INSTANCE_ID, which every session agent-deck starts has; from Codex, pi, Gemini or Claude alike the text lands in your prompt through session send. Outside a session it exits 2: name the target with --into <id>. An --ssh target is refused (exit 2) unless [recall] remote_cards = true: the text would cross SSH as keystrokes.
  • The text is plain and harness-neutral and ends by saying it is recalled context, not an instruction. Ask for card first; excerpt only when you need the turns.
  • A conversation pulled from another machine (card sync) stops at brief (exit 2); read it with remote <host> recall show <id>.
Derived summaries: recall enrich

Every sweep classifies what it indexed ("where did we lose time", session kind, outcome; rules in rules.json, shared with distill.py); recall show and recall context print the lines, and one marked [stale: session changed since; run 'agent-deck recall enrich'] is from before the session's last change. agent-deck recall enrich [--json] drains what a budgeted sweep left and rewrites every stale line (exit 3 while a session is busy, like sweep). --cost-class llm is never run automatically. The outcome line is a guess (failed?, abandoned?, unknown) unless someone ran session annotate --outcome; annotate and it becomes certain on the next drain.

Remote sessions
bash
agent-deck recall search "retry budget" --remote lab --json       # federated: the remote searches its own index; hits labelled remote lab
agent-deck recall search "retry budget" --all-remotes --json      # every configured remote, one SSH round trip each
agent-deck remote lab recall show <id> --tier card --json         # read one on the remote (search, sessions, show, context, export, status forward)
agent-deck remote <host> session annotate <id> --outcome worked   # hints: run on the remote, written there
agent-deck recall pull lab                                        # card sync, only with [recall] remote_cards = true on both ends
  • Federated search stores nothing; a remote that cannot answer (older agent-deck, or recall off there) is one line naming its version and the fix, exit 1, and {error, remote, remote_version} in remotes[] under --json. Read remotes[].error before trusting a merged answer.
  • --into, --remote and every write verb are refused before SSH on the forwarded form.
  • Pulled cards are labelled card from <host_uid> (no messages here) in every listing; they carry titles, hints, tags, a 200-character preview and the derived lines, never bodies or paths.
MCP: agent-deck recall mcp
bash
agent-deck mcp attach <session> recall && agent-deck session restart <session>   # listed by mcp list while [recall] enabled = true

Tools: recall_search (query, harness, profile, project, since, session, hint, tag, role, phrase, limit), recall_show (session, tier, turns), recall_context (session, tier, budget). Same answers as the --json CLI, which stays the fallback for a harness without MCP.

Not built
  • TUI a (annotate the focused session) and R (recall into the current session): use session annotate and recall context --into.
  • recall fetch <host> <session> --raw: transcript bytes never cross SSH.

session search keeps its substring semantics and is not an alias for any of these.

© asheshgoplani, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in skills/agent-deck/recall of asheshgoplani/agent-deck.

Open the folder on GitHubat commit 34cf369

Compare with similar skills

Agent Deck Recall next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Agent Deck Recall compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Agent Deck Recall this skillasheshgoplani/agent-deck1k—~3.4kAutomated safety check: PassMIT
MCP Server Builderanthropics/skills180k63 repos~2.3kAutomated safety check: PassApache-2.0
MCP Server BuildershareAI-lab/learn-claude-code78k5 repos~1.2kAutomated safety check: PassMIT
MCP Integration for Pluginsanthropics/claude-plugins-official38k11 repos~3.1kAutomated safety check: PassApache-2.0
Crush Configurationcharmbracelet/crush29k—~3.7kAutomated safety check: PassCustom licence
Context Mode Output Sandboxmksglu/context-mode26k—~4.1kAutomated safety check: PassCustom licence

Similar skills

  • MCP Server Builder

    anthropics/skills

    Official

    Guides the design and implementation of Model Context Protocol servers in TypeScript or Python, from tool naming and error messages to evaluation.

    180k GitHub starsUsed in 63 repos~2.3k tokens
    Agent WorkflowsAuto-check passed
  • MCP Server Builder

    shareAI-lab/learn-claude-code

    Walks through building MCP servers in Python or TypeScript that expose tools, resources and prompts to Claude, with templates, registration and testing.

    78k GitHub starsUsed in 5 repos~1.2k tokens
    Agent WorkflowsAuto-check passed
  • MCP Integration for Plugins

    anthropics/claude-plugins-official

    Official

    Explains how to bundle Model Context Protocol servers in a Claude Code plugin, covering config files, stdio, SSE, HTTP and WebSocket server types, and authentication.

    38k GitHub starsUsed in 11 repos~3.1k tokens
    Agent WorkflowsAuto-check passed
  • Crush Configuration

    charmbracelet/crush

    Explains how to configure the Crush coding agent with crushrc or crush.json, covering providers, models, LSPs, MCP servers, hooks, permissions and config precedence.

    29k GitHub stars~3.7k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • Context Mode Output Sandbox

    mksglu/context-mode

    Routes large command, file, API and browser output through context-mode tools so only the needed result enters the agent's context, instead of dumping it via Bash.

    26k GitHub stars~4.1k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Migrates the compatible subset of settings and global file-based MCP servers from the Warp desktop app into Warp Agent CLI without exposing credentials or state.

    65k GitHub starsUsed in 1 repo~2.1k tokens
    Agent WorkflowsAuto-check passed

More from asheshgoplani/agent-deck

  • Agent Deck

    asheshgoplani/agent-deck

    agent-deck, the terminal session manager for AI coding agents.

    1k GitHub stars~1.7k tokensUpdated 4 days ago
    Auto-check passed
  • Deck Retro

    asheshgoplani/agent-deck

    Run a fully local agent-deck retrospective over the user's own transcripts, Recall index and logs.

    1k GitHub stars~1.8k tokensUpdated 4 days ago
    Auto-check passed
  • Session Share

    asheshgoplani/agent-deck

    Share Claude Code sessions between developers. An agent skill from asheshgoplani/agent-deck.

    1k GitHub stars~1.6k tokensUpdated 4 days ago
    Auto-check passed
  • Deck Repro

    asheshgoplani/agent-deck

    Reproduce agent-deck bugs from an issue, transcript excerpt, or description in an isolated environment, and prove fixes with the same reproduction and a regression test.

    1k GitHub stars~1.3k tokensUpdated 4 days ago
    Auto-check passed
  • Fleet

    asheshgoplani/agent-deck

    Fan out a fleet of independent agent-deck child sessions from inside a session and check their progress non-blockingly.

    1k GitHub stars~4.2k tokensUpdated 4 days ago
    Auto-check passed
  • Watcher Creator

    asheshgoplani/agent-deck

    Guide for creating agent-deck watchers conversationally. An agent skill from asheshgoplani/agent-deck.

    1k GitHub stars~2.7k tokensUpdated 4 days ago
    Auto-check passed

Categories

Questions about Agent Deck Recall

What does Agent Deck Recall do?

Record and later find what an agent-deck session was for, across harnesses, and hand a past conversation to the current one. Agent Deck Recall is an agent skill from asheshgoplani/agent-deck. Record and later find what an agent-deck session was for, across harnesses, and hand a past conversation to the current one.

When should I use Agent Deck Recall?

Agent Deck Recall fits situations like: the user says remember what this session was for; tag this session; mark the outcome; ticket for this session.

How do I install Agent Deck Recall in Claude Code?

Run `npx skills add asheshgoplani/agent-deck --skill agent-deck-recall -a claude-code`. Or copy the skill folder (skills/agent-deck/recall in asheshgoplani/agent-deck) into .claude/skills/agent-deck-recall in your project. Claude Code loads it when a task matches its description.

How do I install Agent Deck Recall in Codex?

Run `npx skills add asheshgoplani/agent-deck --skill agent-deck-recall -a codex`. Or copy the skill folder (skills/agent-deck/recall in asheshgoplani/agent-deck) into .agents/skills/agent-deck-recall in your project. Codex loads it when a task matches its description.

Can I use Agent Deck Recall in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add asheshgoplani/agent-deck --skill agent-deck-recall -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/agent-deck-recall, .gemini/skills/agent-deck-recall, .github/skills/agent-deck-recall and .opencode/skills/agent-deck-recall in your project.

What does Agent Deck Recall need to run?

SKILL.md names no scripts, command-line tools or credentials: Agent Deck Recall is instructions for the agent only.

Does Agent Deck Recall access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Agent Deck Recall safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Agent Deck Recall use?

Agent Deck Recall is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Agent Deck Recall use?

About 3.4k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Agent Deck Recall?

Skills that share tags, products or a category with Agent Deck Recall: MCP Server Builder (anthropics/skills, 180k stars), MCP Server Builder (shareAI-lab/learn-claude-code, 78k stars), MCP Integration for Plugins (anthropics/claude-plugins-official, 38k stars) and Crush Configuration (charmbracelet/crush, 29k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Agent Deck Recall?

asheshgoplani (a GitHub user) maintains it in asheshgoplani/agent-deck, which has 1,043 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 5, 2026.

Source: asheshgoplani/agent-deck on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.