session-transfer
Skill2 starsChanged 9 days agoMITView on GitHub
Handle an agent session ID or a request to continue work in another agent. Classify same-platform resume versus cross-platform handoff before attempting any session command.
1 other project uses a version of this.
Adopted by
Most recently taken up by
- fatih-developer/fth-skillstheir own version, first seen Oct 13, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- fatih-developer/fth-skills★ 7same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository6 other files it gives its agents.
- cross-reviewSkill
- file-prSkill
- html-communicationSkill
- html-emailSkill
- project-mapSkill
- v3-ui-styleSkill
The file
We split this skill into the rules it gives an agent
12 rules. About 0 are common, 11 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈11
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 8
Use this skill when a user supplies a session ID (often a UUID such as de31dd36-06a4-4ae8-8fb4-2f32b1a582dd), asks to move work to another …
- Distinctive: line 12
Treat a session ID as an opaque, platform-scoped pointer.
- Distinctive: line 26
If the platform or surface is unknown, say so immediately and ask for the missing platform (one short question).
- Distinctive: line 27
If this is cross-platform, state that direct resume by ID is unsupported and switch to a text/artifact handoff.
- Distinctive: line 29
Never claim that a session was opened unless the platform command actually ran and reported success.
- Distinctive: line 35
If the receiver has access to the same platform session store, it can attempt the documented resume command itself.
- Distinctive: line 36
If the old session has exhausted credits, is crashed, or cannot accept another turn, direct resume may still be useful for …
- Distinctive: line 37
If direct resume is unavailable, the ID alone is insufficient.
- Distinctive: line 42
Use the detailed matrix in references/compatibility.md when the user needs a platform-specific answer.
- Distinctive: line 54
When direct resume is unavailable, ask the sender to provide or generate a compact handoff.
- Distinctive: line 56
Use this packet shape:
- Distinctive: line 80
When usage is exhausted, do not promise that switching accounts or providers will preserve context.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Session transfer
Use this skill when a user supplies a session ID (often a UUID such as de31dd36-06a4-4ae8-8fb4-2f32b1a582dd), asks to move work to another agent, or asks for a second opinion on an existing session.
First response: classify, do not guess
Treat a session ID as an opaque, platform-scoped pointer. Do not spend a turn trying to decode it, searching arbitrary files, or running a resume command before identifying the source platform and surface.
T3 Code IDs are a separate case
When the ID was copied from a T3 Code UI context menu, do not assume it is the Codex rollout ID. T3 may expose its own wrapper, conversation, or UI identifier. The Codex-native ID is the session_id/id in the first session_meta record of the matching Codex JSONL rollout, and normally also appears in the rollout-...-<id>.jsonl filename. Do not infer a mapping between the two UUIDs. Use T3's own reopen/share flow for a T3 ID, or obtain the Codex-native ID from the platform's session UI or authorized local session metadata.
Do not rely on undocumented T3 LevelDB/cache files as a resolver. A raw occurrence of the T3 UUID there can be UI state, a project index, or cached content and does not establish a relation to a Codex rollout. Never match IDs by timestamp, filename proximity, or text similarity.
T3 desktop/server installations may persist an explicit provider cursor in ~/.t3/userdata/state.sqlite. This resolver is T3-only; never run it for a bare Claude or Codex ID. On Windows, use the dependency-free PowerShell helper scripts/resolve_t3_session.ps1. On systems with Python, scripts/resolve_t3_session.py is an optional alternative. Both read provider_session_runtime.resume_cursor_json.threadId for the exact thread_id; neither scans transcripts or mutates the database. Treat a missing or stale cursor as no mapping, and verify the returned native ID against the provider's own session metadata before resuming.
Classify the request in this order:
- Identify the source and target: Claude Code or Codex, and CLI, IDE, desktop, web, or SDK/exec where relevant. Infer only when the surrounding context makes it explicit.
- Decide whether the target can access the same session store or remote backend. A UUID alone does not grant access and does not carry the transcript, files, credentials, approvals, or working directory.
- If the platform or surface is unknown, say so immediately and ask for the missing platform (one short question). In the meantime, offer the handoff packet below instead of attempting a resume.
- If this is cross-platform, state that direct resume by ID is unsupported and switch to a text/artifact handoff.
Never claim that a session was opened unless the platform command actually ran and reported success. If it fails, report the exact scope mismatch or missing local/remote session and fall back to a handoff.
The old session does not need to run this skill
The receiving agent can apply this skill as soon as the user gives it the ID. Do not tell the user to first invoke the skill in the old session.
- If the receiver has access to the same platform session store, it can attempt the documented resume command itself. The old agent does not need to produce a new message first.
- If the old session has exhausted credits, is crashed, or cannot accept another turn, direct resume may still be useful for reading/continuing only if the platform and account permit it. Do not promise that opening it bypasses usage limits.
- If direct resume is unavailable, the ID alone is insufficient. Ask for an existing handoff, exported transcript, repository artifacts, commits, diff, or other context the user can provide. Do not ask the unavailable old agent to generate a handoff.
- Reading local session files or exporting a transcript is a fallback only when the user explicitly authorizes it and the relevant platform stores them locally. Treat those files as sensitive and do not search arbitrary directories.
Compatibility rules
Use the detailed matrix in references/compatibility.md when the user needs a platform-specific answer. The short version:
- Claude Code CLI to Claude Code CLI can resume with
claude --resume <SESSION_ID>only when the receiving environment can see the same local Claude session store and project context. A different machine,CLAUDE_CONFIG_DIR, account, or unrelated project may not have the transcript. - Claude web/cloud sessions use the Claude-specific teleport flow (
claude --teleport <SESSION_ID>where supported). Do not present--resumeas a way to pull an arbitrary local session into the web app. - Codex interactive sessions use
codex resume <SESSION_ID>;--allaffects selection across working directories. Codex exec sessions usecodex exec resume <SESSION_ID>(or--last), and interactive and exec commands must not be treated as interchangeable without checking the session type. - Claude and Codex do not share a session-ID namespace or transcript format. Claude ID to Codex and Codex ID to Claude are never direct resume operations. Use a handoff packet, committed artifacts, or an exported transcript instead.
- Same-company does not automatically mean same-session: different products, clients, accounts, machines, config directories, repositories, and local versus cloud storage can each break direct resume. Verify the specific surface and scope.
These rules describe documented behavior, not a promise that future CLI versions will keep the same flags. For a current command or an unfamiliar surface, consult the official documentation linked in the reference before advising the user.
Handoff mode
When direct resume is unavailable, ask the sender to provide or generate a compact handoff. Do not require the receiver to reconstruct the entire transcript. Prefer an artifact in the repository or a temporary redacted Markdown file over pasting sensitive logs into chat.
Use this packet shape:
# Session handoff
- Source: Claude Code | Codex
- Surface: CLI | IDE | desktop | web | exec/SDK
- Session ID: <optional, for same-platform lookup only>
- Repository and working directory: <path or URL>
- Branch and commit: <branch>, <commit>
- Objective: <one sentence>
- Status: <what is complete and what is not>
- Decisions and constraints: <bullets>
- Files or artifacts changed: <paths>
- Verification: <commands and observed results>
- Next action: <one concrete action>
- Risks or open questions: <bullets>The receiving agent should read the packet, inspect the current workspace and Git state, and continue from the stated next action. It should not infer missing approvals, secrets, or requirements from the session ID. Redact credentials, tokens, private user data, and unnecessary transcript content.
Second-opinion and exhausted-usage cases
For a second opinion, preserve the original session and create a fork/branch when the platform supports it. Claude Code supports /branch or --fork-session; Codex supports codex fork <SESSION_ID> (and /fork from an active chat). If the goal is only review, share the relevant diff, tests, and handoff packet instead of opening the original session concurrently.
When usage is exhausted, do not promise that switching accounts or providers will preserve context. A new account may not have access to local transcripts, and a different provider requires the handoff packet. Preserve progress in files, commits, or an export before switching.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

