Agent skill

Session Handoff

by entireio in entireio/skills

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

MITAuto-check: warningsAgent Workflows

Install Session Handoff

The automated check flagged lines worth reading first. See the safety section below.

skills CLI
$ npx skills add entireio/skills --skill session-handoff -a claude-code

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

GitHub CLI
$ gh skill install entireio/skills session-handoff --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/entireio/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/session-handoff .claude/skills/session-handoff && 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
session-handoff
GitHub stars
223
Token cost
~2.2k tokens
SKILL.md length
1,105 words
Files
1
Skills in repo
12
Repo updated
First seen
Licence
MIT

At a glance

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

  • Works in 8 steps: Resolve the canonical worktree path → Pick the session → Stream the raw transcript → …
  • The user wants to continue work from one agent in another agent
  • SKILL.md covers Response Format, STOP — Read these rules before…, Flow: Active session handoff… and Flow: Checkpoint handoff (user…
  • Calls jq, git and gemini

What it does

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.

When your agent uses it

  • The user wants to continue work from one agent in another agent
  • Inspect recent sessions
  • Summarize a saved session
  • Checkpoint for handoff

Example prompts

  • “/session-handoff”

Workflow steps

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

  1. Resolve the canonical worktree path
  2. Pick the session
  3. Stream the raw transcript
  4. Extract conversation content
  5. Announce, summarize, present
  6. Enumerate sessions
  7. Pick which sessions to stream
  8. Extract, announce, summarize, continue

What it can do on your machine

Read from SKILL.md and the folder at commit fe5266f. 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

    Shell commands in SKILL.md call:

    • jq
    • git
    • gemini
    • claude

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

  • Network

    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.

  • 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

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.

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

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: warnings

The automated check found patterns that need a careful read before installing.

  • WarningTells the agent its actions are pre-authorized / not to stop for confirmationSKILL.md:104
    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.

SKILL.md

The full file from entireio/skills at commit fe5266f, republished under its MIT licence (© entireio). 1,105 words, ~2,239 tokens.

Download SKILL.mdSave it as .claude/skills/session-handoff/SKILL.md (or your agent's skills folder).
name
session-handoff
description
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

Hand-Off Session

Response Format

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.

STOP — Read these rules before doing ANYTHING

  1. Do NOT ask clarifying questions. Auto-detect the session and read the transcript.
  2. Do NOT run git log, git status, git branch, ps aux, or any other exploratory commands. Use only the entire CLI commands listed below.
  3. Do NOT say "Would you like me to continue?" or "Let me know if you want me to pick this up." Just read the transcript and start working. Exception: if the previous agent asked the user a question that was never answered, you MUST ask the user that question before proceeding.

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.

Flow: Active session handoff (default — also covers bare invocation and "current"/"active")

Step 1: Resolve the canonical worktree path
bash
entire session current --json

If 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.

Step 2: Pick the session
bash
entire session list --json

Each entry has session_id, agent, status, worktree_path, started_at, last_active, turns, last_prompt, files_touched. Apply filters in this order:

  1. Worktree scope. If you got a canonical worktree path in Step 1, keep entries where 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.
  2. User-named agent filter (optional). If the user said "codex", "claude", "kiro", "gemini", etc., keep only entries whose agent matches case-insensitively as a substring (so gemini matches Gemini CLI).
  3. Drop self. Drop entries where 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).
  4. Pick most recent. Sort by 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.

Step 3: Stream the raw transcript
bash
entire session info <session_id> --transcript > /tmp/handoff-<session_id>.jsonl

Snapshot is bounded to the file size at command start. Output is JSONL for most agents and a single JSON document for Gemini CLI.

Step 4: Extract conversation content

JSONL agents (Claude Code / Codex / Cursor / Copilot CLI / Factory AI Droid / OpenCode):

bash
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 state

Gemini CLI (single JSON document — no JSONL grep):

bash
jq 'keys' /tmp/handoff-<session_id>.jsonl

The 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:

bash
# 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 -100

If 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.

Show full SKILL.md (496 more words)Show less
Step 5: Announce, summarize, present

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):

  1. Task Overview — the user's core request, success criteria, stated constraints.
  2. Current State — completed work: files created/modified, key decisions, artifacts produced.
  3. Important Discoveries — technical constraints found, rationale behind decisions, errors hit and how they were resolved, failed approaches and why.
  4. Next Steps — specific remaining actions, blockers, priority ordering.
  5. Context to Preserve — user preferences, domain details, commitments made during the session.
  6. Unanswered Question (only if applicable) — if the previous agent's last message asked the user a question or presented options that were never answered, capture it exactly as asked.

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.

  • If section 6 exists, ask the user that question and wait. Do NOT pick a default.
  • Otherwise, immediately pick up the work — plan, code, or whatever the next step is. Do not ask permission.

Flow: Checkpoint handoff (user gives a checkpoint ID)

Step 1: Enumerate sessions
bash
entire checkpoint explain <checkpoint-id> --json

The 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.

Step 2: Pick which sessions to stream
  • 1 session. Stream the normalized compact transcript:

    bash
    entire checkpoint explain <checkpoint-id> --transcript > /tmp/handoff-ckpt-<checkpoint-id>.jsonl
  • 2–8 sessions. Iterate every index 0..N-1. Do not rely on the --transcript default (latest session only):

    bash
    # for N in 0 .. sessions.length-1
    entire checkpoint explain <checkpoint-id> --raw-transcript --session-index <N> > /tmp/handoff-ckpt-<checkpoint-id>-<N>.jsonl
  • More 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.

Step 3: Extract, announce, summarize, continue

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

Files

Just SKILL.md in skills/session-handoff of entireio/skills.

Open the folder on GitHubat commit fe5266f

Compare with similar skills

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.

Session Handoff compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Session Handoff this skillentireio/skills223—~2.2kAutomated safety check: WarnMIT
Orca CLIstablyai/orca87k2 repos~593Automated safety check: PassMIT
Coding Agent Session Findercode-yeongyu/oh-my-openagent70k1 repos~2.8kAutomated safety check: PassCustom licence
Beads Task Memorygastownhall/beads28k—~1.2kAutomated safety check: PassMIT
Session History Searchslopus/happy24k—~3.1kAutomated safety check: PassMIT
Paseo Agent Handoffgetpaseo/paseo20k1 repos~606Automated safety check: PassCustom licence

Similar skills

  • Orca CLI

    stablyai/orca

    Operate Orca-managed worktrees, folder contexts, terminals, repos, automations, artifacts, skill sharing, worktree comments, and Orca's embedded browser…

    87k GitHub starsUsed in 2 repos~593 tokens
    Agent WorkflowsAuto-check passed
  • Coding Agent Session Finder

    code-yeongyu/oh-my-openagent

    Finds, reads and reconstructs past coding-agent sessions across Codex, Claude, OpenCode, Senpi and many other local agent logs.

    70k GitHub starsUsed in 1 repo~2.8k tokens
    Agent WorkflowsAuto-check passed
  • Beads Task Memory

    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.

    28k GitHub stars~1.2k tokensUpdated today
    Agent WorkflowsAuto-check passed
  • 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.

    24k GitHub stars~3.1k tokensUpdated yesterday
    Agent WorkflowsAuto-check passed
  • Paseo Agent Handoff

    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.

    20k GitHub starsUsed in 1 repo~606 tokens
    Agent WorkflowsAuto-check passed
  • Memori Long-Term Memory

    MemoriLabs/Memori

    Connects Claude Code to Memori Cloud for long-term memory, recalling stored context before substantive replies and saving new context afterward.

    17k GitHub stars~2k tokensUpdated 5 days ago
    Agent WorkflowsAuto-check: notes

More from entireio/skills

All 12 skills in this repo
  • Review

    entireio/skills

    Review code changes on the current branch using checkpoint transcript context to understand developer intent before auditing the diff.

    223 GitHub stars~1.9k tokensUpdated 9 days ago
    Auto-check passed
  • Address Findings

    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.

    223 GitHub stars~1.6k tokensUpdated 9 days ago
    Auto-check passed
  • Recall

    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.

    223 GitHub stars~1.6k tokensUpdated 9 days ago
    Auto-check passed
  • Replay

    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.

    223 GitHub stars~1.7k tokensUpdated 9 days ago
    Auto-check passed
  • Search

    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".

    223 GitHub stars~2.1k tokensUpdated 9 days ago
    Auto-check passed
  • Session Crosslink

    entireio/skills

    A skill your agent uses when an agent session ran outside the repo whose commits should record it — e.g.

    223 GitHub stars~2k tokensUpdated 9 days ago
    Auto-check passed

Categories

Questions about Session Handoff

What does Session Handoff do?

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.

When should I use Session Handoff?

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.

How do I install Session Handoff in Claude Code?

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.

How do I install Session Handoff in Codex?

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.

Can I use Session Handoff 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 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.

What does Session Handoff need to run?

Going by SKILL.md and its folder, Session Handoff needs the command-line tools its instructions call (jq, git, gemini and claude).

Does Session Handoff access the network?

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.

Is Session Handoff safe to install?

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.

What licence does Session Handoff use?

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.

How many tokens does Session Handoff use?

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.

What are the alternatives to Session Handoff?

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.

Who maintains Session Handoff?

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.