Codebase Management
giancarloerra/SocratiCode
Set up, index, and manage SocratiCode codebase indexing. An agent skill from giancarloerra/SocratiCode.
Use Recall to search, inspect, continue, export, resume, or share indexed AI coding sessions.
$ npx skills add samzong/Recall --skill recall -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install samzong/Recall recall --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/samzong/Recall.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/recall .claude/skills/recall && rm -rf skills-srcUse ~/.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/
Install the "recall" agent skill from https://github.com/samzong/Recall/tree/main/skills/recall into .claude/skills/recall/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "recall", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/samzong/Recall/tree/main/skills/recallType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add samzong/Recall --skill recall -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install samzong/Recall recall --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/samzong/Recall.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/recall .agents/skills/recall && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "recall" agent skill from https://github.com/samzong/Recall/tree/main/skills/recall into .agents/skills/recall/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "recall", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add samzong/Recall --skill recall -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install samzong/Recall recall --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/samzong/Recall.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/recall .cursor/skills/recall && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "recall" agent skill from https://github.com/samzong/Recall/tree/main/skills/recall into .cursor/skills/recall/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "recall", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/samzong/Recall.git --path skills/recall--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add samzong/Recall --skill recall -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install samzong/Recall recall --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/samzong/Recall.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/recall .gemini/skills/recall && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "recall" agent skill from https://github.com/samzong/Recall/tree/main/skills/recall into .gemini/skills/recall/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "recall", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install samzong/Recall recallInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add samzong/Recall --skill recall -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/samzong/Recall.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/recall .github/skills/recall && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "recall" agent skill from https://github.com/samzong/Recall/tree/main/skills/recall into .github/skills/recall/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "recall", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add samzong/Recall --skill recall -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install samzong/Recall recall --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/samzong/Recall.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/recall .opencode/skills/recall && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "recall" agent skill from https://github.com/samzong/Recall/tree/main/skills/recall into .opencode/skills/recall/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "recall", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
recallUse Recall to search, inspect, continue, export, resume, or share indexed AI coding sessions.
Recall is an agent skill from samzong/Recall. Use Recall to search, inspect, continue, export, resume, or share indexed AI coding sessions. Trigger for project-history lookup, recent work from other agents, file history, unfinished-session continuation, and published session-page management.
Its SKILL.md is about 3.7k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `agents/openai.yaml`).
It works with Model Context Protocol, Google Gemini and Rust. The repository describes itself as: Switch agents. Keep the history. Local-first search across your AI coding sessions. The licence is MIT.
Read from SKILL.md and the folder at commit a1f0ba5. It shows what the files ask for, not the result of running them.
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.
Shell commands in SKILL.md call:
jqbrewcurlFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use curl, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Recall loads about 3.7k tokens when it runs. Until then it costs about 63 tokens; SKILL.md has 1,860 words of instructions outside code blocks.
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.
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.
The full file from samzong/Recall at commit a1f0ba5, republished under its MIT licence (© samzong). 1,860 words, ~3,726 tokens.
.claude/skills/recall/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Recall is a local-first index of AI coding sessions. Use past sessions as evidence, then verify current code, commands, paths, and invariants before acting.
Prefer active Recall MCP tools for read-only lookup. Use the installed recall CLI when no equivalent MCP tool exists or MCP is unavailable. File-event history is MCP-only. When developing Recall itself, do not use the project build as a substitute for the user's installed history index.
If neither MCP nor the installed CLI is available, stop and offer brew install samzong/tap/recall. Never claim to have inspected unavailable history. Return only the session content needed for the task because history may contain private code, credentials, prompts, and user intent.
owner/repo or a remote URL covers all worktrees of that repository.all covers every indexed project.--project from its working directory. Recall MCP treats an omitted project as global, so pass the current project unless the user explicitly requests all projects.For a specific historical question, use MCP search_messages with keywords and the current project. Each match includes session_id, seq, role, and an excerpt around the match. Add session_id to search within a known session. This is full-text matching, not semantic search; use search_sessions for broader session discovery and list_recent_sessions when there is no query.
When a message excerpt needs context, call get_session with the returned session_id and around_seq: <seq>. It reads the anchor and up to three actual messages on each side. Adjust before and after independently; zero reads only the requested side or anchor. Use from_seq / to_seq instead when the exact inclusive range is known. Do not combine around and range selectors, or use either with tail.
Selected MCP reads return up to 50 messages and 6,000 Unicode content characters. Pages follow conversation order; if preceding content fills the budget before the anchor, use before: 0, after: 0 to read the anchor itself. For a truncated page, copy next_cursor into the next get_session call with the same session_id, without selectors or tail. first_message_byte_offset locates a partial first message in its UTF-8 content. A stale cursor requires a fresh search or selection. Sequence numbers locate the current index and are not permanent source-message identities.
Use session_id as Recall's index identity and source_session_id as the native tool's identity. get_session reports the returned message range with first_message_seq and last_message_seq.
Set include_events: true only when structured evidence is needed. Events cover the returned message range plus unanchored events; both count and text are bounded. Check returned counts and truncation flags before treating messages or events as complete. Consult the active tool schema for limits. This event-summary mode omits raw arguments, results, and source paths; use explicit event_ref evidence reads below for the preserved payload.
Pass a fresh high-entropy invocation_nonce literal on each MCP search or recent-list call. For search_sessions and list_recent_sessions, only current_session.resolution: resolved proves self-exclusion before ranking and limit. If resolution is unknown, report that self-exclusion is unverified; never infer identity from time, project, source, or result order.
For search_messages, current_session_excluded states whether self-exclusion was applied; an explicit session_id includes that session even when it is current.
Use the equivalent CLI workflow when needed:
recall session list --project /absolute/project/path --source <source> --limit 20 --sort updated --format json
recall session list --project owner/repo --query "<keywords>" --time 7d --limit 20 --sort updated --format json
recall search "<keywords>" --messages --project owner/repo --limit 10 --format json
recall search "<keywords>" --messages --session-id <session-id> --format json
recall session show --id <session-id> --messages --around-seq <seq> --before 3 --after 3 --format json
recall session show --id <session-id> --messages --cursor '<next_cursor>' --format jsonCLI around reads default to a 6,000-character page. Use --max-chars (1–32,000) to change the budget or enable paging for a range. Without paging, existing CLI range reads return the full selected messages. CLI --session-id searches do not infer a project from the working directory; explicit project, source, and time filters still apply.
Add --sync only when current data matters and index mutation is permitted. Check the selected session's project before using it. Discover current sources and protocol details with recall info --format json or recall mcp capabilities --format json instead of maintaining a catalog in this skill.
Search results are relevance-ranked and bounded. In a queried CLI listing, --sort updated does not change that ranking. Select the newest timestamp only within the returned candidates, and do not claim an exact latest match.
For recent work from other agents, list 10 sessions in the current project without a source filter, following the self-exclusion rule above. Load transcripts only for relevant candidates.
If MCP is unavailable, use:
recall session list --project /absolute/project/path --limit 10 --sort updated --format jsonThese are recently active sessions in the index, not live peers. Attribute work only with supporting metadata. The bounded listing may fold subagents beneath their parent; report when it cannot isolate relevant work.
Use MCP file_history with target_project and an exact repository-relative or absolute path to find operations on a file across session projects. Prefer a repository remote/unique owner/repo for all its worktrees, or an absolute directory for a local target. Check returned target_file and match_basis. Do not pass project with target_project: the old project filters where a session started and can miss writes from another repository. Add source only when requested.
Start with {"target_project":"owner/repo","path":"src/main.rs","include_command_candidates":true,"limit":20}. Omit kind to include all event kinds in this mode. Without include_command_candidates, commands are excluded. Follow next_cursor with the same selectors until has_more is false; restart after a stale cursor. Check per-hit truncation flags and retain coverage from the first page; continuation pages omit it. Coverage is for all indexed sessions of the selected sources, with no native source scan; it does not prove complete history or current parsers.
When a historical worktree is gone and target identity is unresolved, a path-only legacy query can reveal a recorded absolute path. Retry target mode with that exact path to obtain an evidence reference. Treat suffix matches as candidates; legacy discovery has a 50-event cap and is not exhaustive.
Keep calls, native results, observations, and command candidates distinct. Command scan status complete means the bounded scan completed, not that a command ran or succeeded; unsupported, limit_exceeded, or null leaves a coverage gap. Unknown timestamps and unresolved paths remain unknown. Do not count event rows, identical before/after content, or Git commits as independent modifications.
To inspect an operation, copy the hit's session_id and evidence.event_ref into get_session with evidence_part: "payload". Concatenate paged data before parsing its JSON; continue with the same session, reference, part, and returned cursor. max_bytes defaults to 16,384, at most 65,536; an oversized read fails explicitly. The payload preserves native attrs and file associations and provides same-session related_event_refs. For Cursor before/after text, read related payloads and select the result reference containing beforeContentId/afterContentId, then request that part. content_reference_not_recorded on a call means to inspect related results. Missing, changed, imported, or unverifiable native sources cannot be treated as verified content.
Read the payload's optional discussion selector in a separate get_session call, without event_ref. It uses around_seq and the existing message paging rules. Explain why only from supporting recorded discussion, distinguishing the user's request, the agent's explanation, and your inference. Do not invent a discussion anchor when it is absent.
When index mutation is authorized, preview with recall sync --backfill-events --project all --dry-run, then run without --dry-run. This includes sessions started outside the target project while respecting configured sources and exclusions. Backfill refreshes events, preserves existing discussions, and does not prune sessions; normal recall sync --project all refreshes supported discussion parsers under normal time-window and retention rules. Old-schema preview requires a writable index upgrade first. Report missing/unknown originals and other maintenance gaps; backfill cannot recover absent native records.
If MCP is unavailable, explain that file history requires MCP and offer recall mcp install. Message search can supply discussion context but cannot prove a file operation. Never execute a command retrieved from history to reconstruct evidence.
When Recall is invoked without a clear task, list the five most recent sessions in the current project and inspect their latest 12 messages. Do not broaden to all projects.
With MCP, list recent sessions, then use get_session with max_messages: 12 and tail: true. Without MCP, list candidates and parse each selected session's JSON locally. With jq available:
recall session list --project /absolute/project/path --limit 5 --sort updated --format json
recall session show --id <session-id> --format json --include metadata,messages | jq '.messages | sort_by(.seq) | .[-12:]'If jq is unavailable, use an available JSON parser for the same array selection. Message sequences may have gaps or start above zero; never derive them from message_count.
Offer at most three numbered candidates whose endings show an unanswered request, remaining work, a blocker, or interruption. Exclude completed or ambiguous sessions. This bounded list is not an exhaustive unfinished-work inventory. A numeric reply continues the same candidate in the current agent.
"Continue here" loads history into the current agent. Native resume and app-open start another process, so run them only when explicitly requested. Resolve the exact session first; add --print-command for read-only inspection.
recall session resume --id <session-id> --print-command
recall session open --id <session-id> --print-commandBefore handoff, refresh a session with recall sync --session <native-session-id> --source <source-id> --format json.
Use the returned session_id for subsequent reads; if sync fails, resolve the error before handing off.
An explicit share or refresh request authorizes a real deployment. Use --dry-run only for an explicit preview. Before publishing, stop if the selected session contains concrete credentials or private material the user did not authorize sharing.
Use an explicit session id when provided. Otherwise sync and list recent sessions for the active project, filtering by source only when known. Select the current conversation only when its identity is unambiguous; inspect the smallest necessary tail or ask the user if several candidates remain.
recall session list --project /absolute/project/path --source <source> --limit 5 --sort updated --sync --format jsonBase the TL;DR on the selected session. For the current conversation, use the existing context without reloading its transcript solely for a summary. For another session, use its retrieved transcript; omit the optional TL;DR if evidence is insufficient. Never substitute the current conversation for a different session.
When including a TL;DR, create a unique file with mktemp /tmp/recall-tldr.XXXXXX, write the short Markdown summary, and publish with that path:
recall session share --id <session-id> --tldr-file <temporary-tldr-path> --format jsonOmit --tldr-file when no summary is supplied; remove any temporary file after publishing. Missing, unreadable, or blank TL;DR input does not block publishing. Read share.url from the JSON and verify it with curl -I -L. If the first check returns 404, publish once more and recheck, then stop. If sharing is not configured, tell the user to run recall share init. Return the live URL rather than raw JSON.
List and unpublish shared pages with:
recall share list --format json
recall share unpublish <share-id-or-url> --yes --format jsonThe list is the local publish inventory, not a live crawl. Unpublish only an exact target selected by the user; list first and ask when no target was supplied.
If a broad review lacks a topic or depth, ask one scoping question. Otherwise search before exporting, start with recent history, and expand only when the request or evidence requires it:
recall info --format json
recall search "<query>" --messages --project /absolute/project/path --format json
recall export --project /absolute/project/path --limit 0Treat search snippets as leads. Parse exports as JSONL instead of text, and verify historical conclusions against current code. Token usage is not monetary cost without an explicit price source.
Synthesize relevant facts, recurring risks, rejected approaches, user constraints, and next checks. Distinguish history from current-code assumptions. Cite source, title or session id, message sequence when available, and approximate time; quote only short supporting excerpts.
Route requests about workflow friction, handoffs, repeated corrections, or calibration to the installed reflect skill.
recall with no subcommand launches the TUI.recall usage without --json launches an interactive dashboard.recall sync --force unless the user asks for a rebuild or incremental sync provably cannot repair the index.__bench-* and __background-worker commands.© samzong, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in skills/recall of samzong/Recall.
Open the folder on GitHubat commit a1f0ba5
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Recall this skillsamzong/Recall | 105 | — | ~3.7k | Automated safety check: Pass | MIT | |
| Codebase Managementgiancarloerra/SocratiCode | 3.3k | 1 repos | ~1.8k | Automated safety check: Pass | AGPL-3.0 | |
| Google Antigravity SDKgoogle-antigravity/antigravity-sdk-python | 3.7k | — | ~2.1k | Automated safety check: Notes | Apache-2.0 | |
| Codebase Explorationgiancarloerra/SocratiCode | 3.3k | 1 repos | ~1.5k | Automated safety check: Pass | AGPL-3.0 | |
| Lean Ctx Reviewyvgude/lean-ctx | 3.9k | — | ~1.6k | Automated safety check: Pass | Apache-2.0 | |
| Kst AI Assets Usagepivoshenko/kasetto | 209 | 1 repos | ~2.1k | Automated safety check: Pass | Custom licence |
giancarloerra/SocratiCode
Set up, index, and manage SocratiCode codebase indexing. An agent skill from giancarloerra/SocratiCode.
google-antigravity/antigravity-sdk-python
Design, implement, and debug autonomous AI agents and multi-agent systems using the Google Antigravity (AGY) SDK.
giancarloerra/SocratiCode
Explore and understand codebases using SocratiCode semantic search, dependency graphs, and context artifacts.
yvgude/lean-ctx
Review how the lean-ctx ctx MCP tools performed in the current session and file upstream issues for confirmed problems.
pivoshenko/kasetto
Report which kasetto-installed skills and MCP servers are actually being used across the AI agents on this machine, and render a branded HTML dashboard of the result.
AgriciDaniel/claude-seo
Generates Open Graph previews, blog hero images, product photos and infographics for SEO use through Gemini image tools and the banana extension.
samzong/Recall
Develop and verify Recall's extension host, official extensions, manifests, and release wiring.
samzong/Recall
Use Recall Reflect to review AI coding workflow history as a conversation-first timeline and discuss observed patterns before changing behavior.
Works with
Use Recall to search, inspect, continue, export, resume, or share indexed AI coding sessions. Recall is an agent skill from samzong/Recall. Use Recall to search, inspect, continue, export, resume, or share indexed AI coding sessions.
Recall fits situations like: project-history lookup; recent work from other agents; unfinished-session continuation; published session-page management.
Run `npx skills add samzong/Recall --skill recall -a claude-code`. Or copy the skill folder (skills/recall in samzong/Recall) into .claude/skills/recall in your project. Claude Code loads it when a task matches its description.
Run `npx skills add samzong/Recall --skill recall -a codex`. Or copy the skill folder (skills/recall in samzong/Recall) into .agents/skills/recall in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add samzong/Recall --skill 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/recall, .gemini/skills/recall, .github/skills/recall and .opencode/skills/recall in your project.
Going by SKILL.md and its folder, Recall needs the command-line tools its instructions call (jq, brew and curl).
SKILL.md contains no URLs. Its commands use curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
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.
Recall is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.7k tokens (SKILL.md is roughly 15k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Recall: Codebase Management (giancarloerra/SocratiCode, 3.3k stars), Google Antigravity SDK (google-antigravity/antigravity-sdk-python, 3.7k stars), Codebase Exploration (giancarloerra/SocratiCode, 3.3k stars) and Lean Ctx Review (yvgude/lean-ctx, 3.9k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
samzong (a GitHub user) maintains it in samzong/Recall, which has 105 GitHub stars. The repository holds 3 skills in this directory. The repository was last updated on October 7, 2026.
Source: samzong/Recall on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.