Orca CLI
stablyai/orca
Operate Orca-managed worktrees, folder contexts, terminals, repos, automations, artifacts, skill sharing, worktree comments, and Orca's embedded browser…
A skill your agent uses when the user wants to continue work from one agent in another agent, inspect recent sessions, or summarize a saved session or checkpoint for handoff
The automated check flagged lines worth reading first. See the safety section below.
$ npx skills add entireio/skills --skill session-handoff -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install entireio/skills session-handoff --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/entireio/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/session-handoff .claude/skills/session-handoff && 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 "session-handoff" agent skill from https://github.com/entireio/skills/tree/main/skills/session-handoff into .claude/skills/session-handoff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "session-handoff", 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/entireio/skills/tree/main/skills/session-handoffType 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 entireio/skills --skill session-handoff -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install entireio/skills session-handoff --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/entireio/skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/session-handoff .agents/skills/session-handoff && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "session-handoff" agent skill from https://github.com/entireio/skills/tree/main/skills/session-handoff into .agents/skills/session-handoff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "session-handoff", 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 entireio/skills --skill session-handoff -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install entireio/skills session-handoff --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/entireio/skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/session-handoff .cursor/skills/session-handoff && 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 "session-handoff" agent skill from https://github.com/entireio/skills/tree/main/skills/session-handoff into .cursor/skills/session-handoff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "session-handoff", 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/entireio/skills.git --path skills/session-handoff--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 entireio/skills --skill session-handoff -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install entireio/skills session-handoff --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/entireio/skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/session-handoff .gemini/skills/session-handoff && 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 "session-handoff" agent skill from https://github.com/entireio/skills/tree/main/skills/session-handoff into .gemini/skills/session-handoff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "session-handoff", 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 entireio/skills session-handoffInstalls 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 entireio/skills --skill session-handoff -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/entireio/skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/session-handoff .github/skills/session-handoff && 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 "session-handoff" agent skill from https://github.com/entireio/skills/tree/main/skills/session-handoff into .github/skills/session-handoff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "session-handoff", 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 entireio/skills --skill session-handoff -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install entireio/skills session-handoff --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/entireio/skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/session-handoff .opencode/skills/session-handoff && 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 "session-handoff" agent skill from https://github.com/entireio/skills/tree/main/skills/session-handoff into .opencode/skills/session-handoff/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "session-handoff", 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.
session-handoffA skill your agent uses when the user wants to continue work from one agent in another agent, inspect recent sessions, or summarize a saved session or checkpoint for handoff
Session Handoff is an agent skill from entireio/skills. Use when the user wants to continue work from one agent in another agent, inspect recent sessions, or summarize a saved session or checkpoint for handoff
Its SKILL.md is about 2.2k 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 Session handoff. The repository describes itself as: ✨ Cross-agent skills that help coding agents use Entire context from Checkpoints, sessions, and git history to search past work, explain code, and hand off sessions. The licence is MIT.
8 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit fe5266f. 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:
jqgitgeminiclaudeFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, 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.
Session Handoff loads about 2.2k tokens when it runs. Until then it costs about 42 tokens; SKILL.md has 1,105 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 patterns that need a careful read before installing.
an, code, or whatever the next step is. Do not ask permission.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 entireio/skills at commit fe5266f, republished under its MIT licence (© entireio). 1,105 words, ~2,239 tokens.
.claude/skills/session-handoff/SKILL.md (or your agent's skills folder).Begin the first response to this skill invocation with the line:
Entire Session Handoff:
followed by a blank line, then the content. Apply the header to the first response of the invocation only — not on follow-up turns and not on error / early-exit responses (no sessions found, transcript missing). Its presence signals the skill ran and produced real output. The "Unanswered Question" branch still gets the header.
git log, git status, git branch, ps aux, or any other exploratory commands. Use only the entire CLI commands listed below.Required CLI: entire 0.6.2+ (session list --json, session info --transcript, session current --json|--transcript, checkpoint explain --json|--transcript|--raw-transcript --session-index N). If a flag is rejected, tell the user to upgrade and stop.
entire session current --jsonIf the output is valid JSON, read its worktree_path field — that is the canonical worktree root for this invocation, set by Entire itself. Use it verbatim in the next step (no cwd heuristic needed; symlinks, /private/var//var quirks, and subdirectory invocation are all handled).
If the output is not JSON (Entire prints No active session found in this worktree. when nothing is active), set the canonical worktree path to null and rely on the bidirectional prefix-match fallback in Step 2.
entire session list --jsonEach entry has session_id, agent, status, worktree_path, started_at, last_active, turns, last_prompt, files_touched. Apply filters in this order:
worktree_path equals it exactly. Otherwise, keep entries where cwd starts with worktree_path or worktree_path starts with cwd. If either filter yields zero entries, fall back to the unscoped list — better to summarize a slightly-off session than to refuse the handoff.agent matches case-insensitively as a substring (so gemini matches Gemini CLI).agent matches the agent currently running this skill (e.g. Claude Code, Codex, Cursor, Gemini CLI, Copilot CLI, Factory AI Droid, OpenCode). If this empties the list, undo this filter and keep self — the user is asking you to summarize your own current session for compaction. Note that fact in the announcement (Step 5).last_active (fall back to started_at) descending; take the first.If filtering still leaves zero entries (truly nothing in the list, even self), print a one-line error (no header) and stop.
entire session info <session_id> --transcript > /tmp/handoff-<session_id>.jsonlSnapshot is bounded to the file size at command start. Output is JSONL for most agents and a single JSON document for Gemini CLI.
JSONL agents (Claude Code / Codex / Cursor / Copilot CLI / Factory AI Droid / OpenCode):
grep -E '"type":"(message|function_call|user|assistant)"' /tmp/handoff-<session_id>.jsonl | cut -c1-2000 | head -20 # original task
grep -E '"type":"(message|function_call|user|assistant)"' /tmp/handoff-<session_id>.jsonl | cut -c1-2000 | tail -100 # final stateGemini CLI (single JSON document — no JSONL grep):
jq 'keys' /tmp/handoff-<session_id>.jsonlThe top-level shape varies by Gemini CLI version, but messages live under one of messages, contents, history, or turns. Each entry has a role (user/model/function/tool) and a content payload under one of parts[].text, content, or text. Extract role + text in chronological order:
# Example — adapt the path based on what `jq 'keys'` showed.
jq -r '.messages[] | "\(.role): \([.parts[]? | .text // ""] | join(" "))"' /tmp/handoff-<session_id>.jsonl | head -20
jq -r '.messages[] | "\(.role): \([.parts[]? | .text // ""] | join(" "))"' /tmp/handoff-<session_id>.jsonl | tail -100If neither shape works, fall back to the Read tool on the JSON file and locate the message array by inspection.
Do not show the raw extracted lines to the user. They are inputs for Step 5.
Announcement. First line of the body: Handing off <agent> session — <turns> turns, last active <relative time>, ID <first-8-of-session-id>. If the picked session is your own (Step 2 self-filter fallback), prepend a one-clause note: Self-handoff (no other sessions in this worktree). This gives the user a chance to catch a wrong pick before reading the summary.
Summary structure (skip any section with no genuine content — do not hallucinate filler):
A one-bug-fix session might legitimately have only Task Overview + Current State + Next Steps. A pure-research session might have only Task Overview + Important Discoveries. Empty sections are a feature; pad them only if you have real content.
Continue. Show announcement + summary.
entire checkpoint explain <checkpoint-id> --jsonThe envelope's sessions array lists every session that contributed. Multi-session checkpoints are common (parallel agents, retries, multi-phase work) and earlier sessions often carry the rationale, failed approaches, and user constraints that the latest session takes for granted.
1 session. Stream the normalized compact transcript:
entire checkpoint explain <checkpoint-id> --transcript > /tmp/handoff-ckpt-<checkpoint-id>.jsonl2–8 sessions. Iterate every index 0..N-1. Do not rely on the --transcript default (latest session only):
# for N in 0 .. sessions.length-1
entire checkpoint explain <checkpoint-id> --raw-transcript --session-index <N> > /tmp/handoff-ckpt-<checkpoint-id>-<N>.jsonlMore than 8 sessions. Sort the sessions array by timestamp (started_at or whichever field the envelope provides) descending and take the 8 most recent. Note the cap in the announcement: <M of N> sessions summarized; oldest <M-N> elided as too old to matter. This keeps the skill bounded while still covering the recent rationale layer.
--raw-transcript keeps the per-agent raw bytes so the same JSONL grep extraction works. Index 0 is the first session chronologically.
Run the Step 4 extraction (head + tail per file) on each /tmp/handoff-ckpt-*.jsonl, then merge into a single five-section summary. Treat earlier sessions as the source of "Important Discoveries" and "Context to Preserve"; the latest session feeds "Current State" and "Next Steps". Empty-section rule from the active-session flow applies. Then announce + present per Step 5 of the active-session flow, with the announcement adapted to checkpoint context (Handing off checkpoint <short-id> — <M> sessions, <total turns> turns total.).
© entireio, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/session-handoff of entireio/skills.
Open the folder on GitHubat commit fe5266f
Session Handoff 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 |
|---|---|---|---|---|---|---|
| Session Handoff this skillentireio/skills | 223 | — | ~2.2k | Automated safety check: Warn | MIT | |
| Orca CLIstablyai/orca | 87k | 2 repos | ~593 | Automated safety check: Pass | MIT | |
| Coding Agent Session Findercode-yeongyu/oh-my-openagent | 70k | 1 repos | ~2.8k | Automated safety check: Pass | Custom licence | |
| Beads Task Memorygastownhall/beads | 28k | — | ~1.2k | Automated safety check: Pass | MIT | |
| Session History Searchslopus/happy | 24k | — | ~3.1k | Automated safety check: Pass | MIT | |
| Paseo Agent Handoffgetpaseo/paseo | 20k | 1 repos | ~606 | Automated safety check: Pass | Custom licence |
stablyai/orca
Operate Orca-managed worktrees, folder contexts, terminals, repos, automations, artifacts, skill sharing, worktree comments, and Orca's embedded browser…
code-yeongyu/oh-my-openagent
Finds, reads and reconstructs past coding-agent sessions across Codex, Claude, OpenCode, Senpi and many other local agent logs.
gastownhall/beads
Tracks multi-session work with dependencies in the bd issue tracker so the agent can find ready tasks and recover its context after conversation compaction.
slopus/happy
Searches past Claude Code, Codex and Cursor sessions and summarizes what was worked on, tried or decided, using extraction scripts instead of reading raw logs.
getpaseo/paseo
Hands off the current task, including context, decisions and failed attempts, to a fresh agent through Paseo by writing a self-contained briefing prompt and launching that agent.
MemoriLabs/Memori
Connects Claude Code to Memori Cloud for long-term memory, recalling stored context before substantive replies and saving new context afterward.
entireio/skills
Review code changes on the current branch using checkpoint transcript context to understand developer intent before auditing the diff.
entireio/skills
Address the review findings posted on an Entire trail: fetch the trail's open findings, fix the code, and resolve them on the trail.
entireio/skills
A skill your agent uses when the user describes a task and wants to know whether something similar has been done before, then turn the closest prior session into a task playbook.
entireio/skills
A skill your agent uses when the user wants to step through a feature's checkpoints chronologically, pausing at each step to ask questions.
entireio/skills
A skill your agent uses when the user asks to research, investigate, look into, dig into, or search for anything — a topic, feature, bug, decision, or "what do we know about X".
entireio/skills
A skill your agent uses when an agent session ran outside the repo whose commits should record it — e.g.
Categories
A skill your agent uses when the user wants to continue work from one agent in another agent, inspect recent sessions, or summarize a saved session or checkpoint for handoff. Session Handoff is an agent skill from entireio/skills.
Session Handoff fits situations like: the user wants to continue work from one agent in another agent; inspect recent sessions; summarize a saved session; checkpoint for handoff.
Run `npx skills add entireio/skills --skill session-handoff -a claude-code`. Or copy the skill folder (skills/session-handoff in entireio/skills) into .claude/skills/session-handoff in your project. Claude Code loads it when a task matches its description.
Run `npx skills add entireio/skills --skill session-handoff -a codex`. Or copy the skill folder (skills/session-handoff in entireio/skills) into .agents/skills/session-handoff 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 entireio/skills --skill session-handoff -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/session-handoff, .gemini/skills/session-handoff, .github/skills/session-handoff and .opencode/skills/session-handoff in your project.
Going by SKILL.md and its folder, Session Handoff needs the command-line tools its instructions call (jq, git, gemini and claude).
SKILL.md contains no URLs. Its commands use git, 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 flagged 1 warning(s): tells the agent its actions are pre-authorized / not to stop for confirmation. Read the flagged lines before installing; the check is not a guarantee either way.
Session Handoff is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.2k tokens (SKILL.md is roughly 9k 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 Session Handoff: Orca CLI (stablyai/orca, 87k stars), Coding Agent Session Finder (code-yeongyu/oh-my-openagent, 70k stars), Beads Task Memory (gastownhall/beads, 28k stars) and Session History Search (slopus/happy, 24k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
entireio (a GitHub organization) maintains it in entireio/skills, which has 223 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on September 29, 2026.
Source: entireio/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.