GitDiagram
Architecture diagrams, explanations and Mermaid source for public GitHub repositories.
Pass the baton between coding agents: convert sessions across Claude Code, OpenCode, Codex & more.
쓰고 있는 AI 앱을 고른 다음 설정을 복사하세요.
검사 2/3 통과 · 내 컴퓨터에서 실행돼요 · ✓ 명령 확인 2026년 11월 14일
먼저: 어떤 AI를 쓰시나요?
쓰는 앱을 고르면 아래에 단계가 나옵니다.
Claude에 연결할 수 있지만 먼저 준비가 필요해요
먼저 컴퓨터에 Node.js를 설치하세요 (한 번만) · 컴퓨터용 Claude 앱(Windows 또는 Mac)에서만 되고 웹이나 모바일은 안 돼요
이 메시지를 Claude 채팅에 붙여 넣으세요. AI가 컴퓨터를 확인하고 어떤 파일을 바꿀지 알려 준 뒤 매번 동의를 기다립니다.
이 컴퓨터의 Claude에 MCP server Baton을 설치해 주세요. 순서대로: 1) node -v로 Node.js가 있는지 확인. 없으면 https://nodejs.org/en/download에서 설치하라고 알려 주고 직접 설치하지 마세요. 2) 이 설정만 사용하세요(PopNx MCP 확인 완료): { "mcpServers": { "baton": { "command": "npx", "args": [ "-y", "@kasabeh/baton-mcp", "serve" ] } } } 3) 바꿀 파일의 전체 경로나 실행할 명령을 알려 주고 제 동의를 기다리세요. 4) 키는 필요 없습니다. 5) 합의한 대로 실행한 뒤 Baton의 도구가 실제로 보이는지 확인하세요.이 메시지에는 키가 없습니다. 키가 필요하면 AI가 파일이나 앱 입력란에 직접 붙여 넣으라고 안내합니다.
이미 설치했나요? 먼저 확인 · 터미널을 열고 이 명령을 입력한 뒤 Enter
node -vMac: ⌘ + Space를 누르고 Terminal 입력 후 Enter
Windows: 시작 메뉴를 열고 Windows PowerShell 입력 후 "열기"
아직 설치하지 않았다면: 공식 다운로드 페이지에서 LTS 버전과 클릭형 설치 파일을 고르세요: Mac은 .pkg · Windows는 .msi. 더블클릭 후 끝까지 진행하면 됩니다. curl 명령은 필요 없습니다
설치가 끝나면 터미널을 닫았다가 다시 열고 같은 명령을 실행하세요. 버전 번호가 나와야 합니다: node -v
한 번 설치하면 Node.js가 필요한 모든 도구에서 쓸 수 있습니다
SettingsDeveloperEdit Config
{
"mcpServers": {
"baton": {
"command": "npx",
"args": [
"-y",
"@kasabeh/baton-mcp",
"serve"
]
}
}
}Baton을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Claude가 Baton을 쓰고 있다고 하거나 답에 Baton 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 Anthropic 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
ChatGPT는 아직 Baton에 연결할 수 없어요
Baton는 내 컴퓨터에 설치해서 쓰지만 ChatGPT는 웹에서 도는 서버만 연결할 수 있어요
A · Baton에 연결되는 앱 쓰기
B · 개발자 도구에서 ChatGPT에 연결되는 다른 서버
같은 분류에서 많이 쓰는 것 중 키 없이 주소만으로 연결되는 것을 골랐어요
Claude Code에 연결할 수 있지만 먼저 준비가 필요해요
먼저 컴퓨터에 Node.js를 설치하세요 (한 번만)
이 메시지를 Claude Code 채팅에 붙여 넣으세요. AI가 컴퓨터를 확인하고 어떤 파일을 바꿀지 알려 준 뒤 매번 동의를 기다립니다.
이 컴퓨터의 Claude Code에 MCP server Baton을 설치해 주세요. 순서대로: 1) node -v로 Node.js가 있는지 확인. 없으면 https://nodejs.org/en/download에서 설치하라고 알려 주고 직접 설치하지 마세요. 2) 이 설정만 사용하세요(PopNx MCP 확인 완료): claude mcp add --scope user baton -- npx -y @kasabeh/baton-mcp serve 3) 바꿀 파일의 전체 경로나 실행할 명령을 알려 주고 제 동의를 기다리세요. 4) 키는 필요 없습니다. 5) 합의한 대로 실행한 뒤 Baton의 도구가 실제로 보이는지 확인하세요.이 메시지에는 키가 없습니다. 키가 필요하면 AI가 파일이나 앱 입력란에 직접 붙여 넣으라고 안내합니다.
이미 설치했나요? 먼저 확인 · 터미널을 열고 이 명령을 입력한 뒤 Enter
node -vMac: ⌘ + Space를 누르고 Terminal 입력 후 Enter
Windows: 시작 메뉴를 열고 Windows PowerShell 입력 후 "열기"
아직 설치하지 않았다면: 공식 다운로드 페이지에서 LTS 버전과 클릭형 설치 파일을 고르세요: Mac은 .pkg · Windows는 .msi. 더블클릭 후 끝까지 진행하면 됩니다. curl 명령은 필요 없습니다
설치가 끝나면 터미널을 닫았다가 다시 열고 같은 명령을 실행하세요. 버전 번호가 나와야 합니다: node -v
한 번 설치하면 Node.js가 필요한 모든 도구에서 쓸 수 있습니다
Mac: Command+스페이스를 누르고 Terminal 입력 · Windows: PowerShell 열기
claude mcp add --scope user baton -- npx -y @kasabeh/baton-mcp serveBaton이 목록에 있고 연결됨으로 보이면 돼요
Baton을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Claude Code가 Baton을 쓰고 있다고 하거나 답에 Baton 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 Anthropic 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
Cursor에 연결할 수 있지만 먼저 준비가 필요해요
먼저 컴퓨터에 Node.js를 설치하세요 (한 번만)
이 메시지를 Cursor 채팅에 붙여 넣으세요. AI가 컴퓨터를 확인하고 어떤 파일을 바꿀지 알려 준 뒤 매번 동의를 기다립니다.
이 컴퓨터의 Cursor에 MCP server Baton을 설치해 주세요. 순서대로: 1) node -v로 Node.js가 있는지 확인. 없으면 https://nodejs.org/en/download에서 설치하라고 알려 주고 직접 설치하지 마세요. 2) 이 설정만 사용하세요(PopNx MCP 확인 완료): { "mcpServers": { "baton": { "command": "npx", "args": [ "-y", "@kasabeh/baton-mcp", "serve" ] } } } 3) 바꿀 파일의 전체 경로나 실행할 명령을 알려 주고 제 동의를 기다리세요. 4) 키는 필요 없습니다. 5) 합의한 대로 실행한 뒤 Baton의 도구가 실제로 보이는지 확인하세요.이 메시지에는 키가 없습니다. 키가 필요하면 AI가 파일이나 앱 입력란에 직접 붙여 넣으라고 안내합니다.
이미 설치했나요? 먼저 확인 · 터미널을 열고 이 명령을 입력한 뒤 Enter
node -vMac: ⌘ + Space를 누르고 Terminal 입력 후 Enter
Windows: 시작 메뉴를 열고 Windows PowerShell 입력 후 "열기"
아직 설치하지 않았다면: 공식 다운로드 페이지에서 LTS 버전과 클릭형 설치 파일을 고르세요: Mac은 .pkg · Windows는 .msi. 더블클릭 후 끝까지 진행하면 됩니다. curl 명령은 필요 없습니다
설치가 끝나면 터미널을 닫았다가 다시 열고 같은 명령을 실행하세요. 버전 번호가 나와야 합니다: node -v
한 번 설치하면 Node.js가 필요한 모든 도구에서 쓸 수 있습니다
Baton을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ Cursor가 Baton을 쓰고 있다고 하거나 답에 Baton 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 Cursor 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
VS Code에 연결할 수 있지만 먼저 준비가 필요해요
먼저 컴퓨터에 Node.js를 설치하세요 (한 번만)
이 메시지를 VS Code 채팅에 붙여 넣으세요. AI가 컴퓨터를 확인하고 어떤 파일을 바꿀지 알려 준 뒤 매번 동의를 기다립니다.
이 컴퓨터의 VS Code에 MCP server Baton을 설치해 주세요. 순서대로: 1) node -v로 Node.js가 있는지 확인. 없으면 https://nodejs.org/en/download에서 설치하라고 알려 주고 직접 설치하지 마세요. 2) 이 설정만 사용하세요(PopNx MCP 확인 완료): { "servers": { "baton": { "type": "stdio", "command": "npx", "args": [ "-y", "@kasabeh/baton-mcp", "serve" ] } } } 3) 바꿀 파일의 전체 경로나 실행할 명령을 알려 주고 제 동의를 기다리세요. 4) 키는 필요 없습니다. 5) 합의한 대로 실행한 뒤 Baton의 도구가 실제로 보이는지 확인하세요.이 메시지에는 키가 없습니다. 키가 필요하면 AI가 파일이나 앱 입력란에 직접 붙여 넣으라고 안내합니다.
이미 설치했나요? 먼저 확인 · 터미널을 열고 이 명령을 입력한 뒤 Enter
node -vMac: ⌘ + Space를 누르고 Terminal 입력 후 Enter
Windows: 시작 메뉴를 열고 Windows PowerShell 입력 후 "열기"
아직 설치하지 않았다면: 공식 다운로드 페이지에서 LTS 버전과 클릭형 설치 파일을 고르세요: Mac은 .pkg · Windows는 .msi. 더블클릭 후 끝까지 진행하면 됩니다. curl 명령은 필요 없습니다
설치가 끝나면 터미널을 닫았다가 다시 열고 같은 명령을 실행하세요. 버전 번호가 나와야 합니다: node -v
한 번 설치하면 Node.js가 필요한 모든 도구에서 쓸 수 있습니다
Baton을 써서 나에게 무엇을 해 줄 수 있는지 알려 주고, 하나 해 봐✓ VS Code가 Baton을 쓰고 있다고 하거나 답에 Baton 도구 이름이 나오면 연결된 거예요
메뉴 이름은 2026년 11월 11일에 VS Code 도움말에서 확인 · 앱 버전에 따라 화면이 조금 다를 수 있어요
Claude Code
claude mcp add --scope user baton -- npx -y @kasabeh/baton-mcp serveClaude Desktop (claude_desktop_config.json)
{
"mcpServers": {
"baton": {
"command": "npx",
"args": [
"-y",
"@kasabeh/baton-mcp",
"serve"
]
}
}
}Cursor (~/.cursor/mcp.json)
{
"mcpServers": {
"baton": {
"command": "npx",
"args": [
"-y",
"@kasabeh/baton-mcp",
"serve"
]
}
}
}VS Code (mcp.json)
{
"servers": {
"baton": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"@kasabeh/baton-mcp",
"serve"
]
}
}
}이 설정은 제작자의 레지스트리 정보로 만들었어요. README와 다르면 README를 따르세요.
이 서버의 연결 방식과 각 앱의 공식 문서를 바탕으로 했어요. 2026년 11월 10일 확인.
내 컴퓨터에서 실행하는 앱
ClaudeGooseLM StudioMsty StudioCherry StudioCursorVS Code + GitHub CopilotVisual StudioWindsurf (Devin Desktop)ZedKiroClineContinueJetBrains AI AssistantClaude CodeCodex CLIGemini CLIOpenCodenodecodeWarpLibreChatRaycast
내 컴퓨터에서 실행돼요. 설치하면 AI 앱에 도구 목록이 나타나요.
누구나 볼 수 있는 정보를 점검했고, 코드는 읽지 않았어요. 해당하지 않는 항목은 개수에서 뺐어요. · 2026년 11월 15일 점검
게시자(kasabeh.tech)가 저장소 소유자(Kaseban)가 아니에요. 다른 사람이 등록했을 수 있어요
코드 마지막 변경: 29일 전
Apache-2.0 사용
내 컴퓨터에서 실행되는 서버라 인터넷 엔드포인트가 없어요
내 컴퓨터에서 실행되며, 대신 로컬 설정을 사용해요
내 컴퓨터에서 실행돼요. 도구 목록은 인터넷 엔드포인트가 있는 서버에서만 읽을 수 있어요
아직 확인하지 않았습니다
질문하고, 팁을 나누고, 안 되는 점을 알려 주세요. "도움이 됨"이 많은 순서예요.
아직 리뷰가 없어요
레지스트리에서 이 카테고리의 활성 서버 전체와 비교했어요. 스타는 게시자가 저장소를 소유한 경우에만 세요.
해당하는 기본 점검 3개 중 2개를 통과했어요. 코드는 읽지 않았어요. 키나 토큰을 넣기 전에 서버가 어떤 권한을 요구하는지 확인하고, 꼭 필요한 권한만 있는 키를 쓰세요.
레지스트리에 필수 키가 나와 있지 않아요. 다만 처음 쓸 때 로그인을 요구하는 서버도 있어요.
내 컴퓨터에서 실행돼요. AI 앱이 필요할 때 실행하고, 데이터는 제작자의 서버를 거치지 않아요(서버 자체가 온라인 서비스를 호출하는 경우는 제외).
GitHub 저장소는 마지막으로 29일 전 변경됐고, 최신 버전(0.3.0)은 4개월 전 레지스트리에 올라왔어요.
Claude Desktop, Claude Code, Cursor, VS Code처럼 MCP를 지원하는 앱에서 쓸 수 있어요. 내 컴퓨터에 Node.js도 있어야 해요.
같은 카테고리에는: GitDiagram, Appllama, Cloudflare MCP, Omnara, Repowise
같은 카테고리, 다른 제작자, 명령 확인 완료. 공식이 먼저, 그다음 스타 순.
카드 보는 법:↓ 주간 다운로드i★ GitHub 스타i세 기둥: 리뷰 · 점검 · 사용 정도i업데이트 = 최신 버전을 레지스트리에 공개한 날i
Architecture diagrams, explanations and Mermaid source for public GitHub repositories.
Study screens, flows and paywalls from top-earning iOS apps, then build from what wins.
Deploy durable AI agents with Omnara, an open-source managed-agent platform.
Codebase intelligence for AI coding agents: graph, git history, docs, decisions, code health.
제작자의 저장소에서 쓰인 그대로 가져왔어요. PopNx MCP가 검토하거나 보증한 내용이 아니에요. HTML, 이미지, 스크립트는 제거했어요. 링크를 누르면 이 사이트를 벗어나요.
Pass the baton between coding agents.
Convert any coding-agent session to any other. One command. Keep going where you left off.
A passed transcript kept 14/17 concrete facts. A hand-written handoff summary kept 3/17. Benchmark ↓
It's 4 p.m. Claude Code says "usage limit reached — resets at 10 p.m." You're three hours into a session: architecture decided, edge cases mapped, half the diff written.
❌ Without baton — open another agent and start from zero. Re-explain the plan. Re-read the files. Re-litigate every decision you already made.
✅ With baton — pass the session and keep going:
baton convert --from claude-code --to opencode --latest --import
opencode -s ses_8c4c973a521549e2 # same conversation, different runner
Works in every direction: switch agents mid-task, try a second opinion on a hard bug, move a session from your editor agent to a terminal agent, or archive everything in one format.
# zero-install run (downloads prebuilt binary)
npx @kasabeh/baton-mcp --help
baton convert --from claude-code --to opencode --latest --import
baton convert --from claude-code --to opencode --import
baton convert --from claude-code --to opencode --import
baton list
You never have to hunt these down (--latest and the interactive picker find them for you), but for reference — each agent stores its transcripts on disk:
| Agent | Location |
|---|---|
| Claude Code | ~/.claude/projects/ / .jsonl |
| Codex CLI | ~/.codex/sessions/ / / /rollout-*.jsonl |
baton list prints the path of every session it can find, across all agents.
| Agent | Read | Write | Auto-import |
|---|---|---|---|
| Claude Code | ✅ | ✅ | — |
| OpenCode | ✅ | ✅ | ✅ opencode import |
| Codex CLI | ✅ | ✅ | — |
| Gemini CLI | ✅ | ✅ | — |
| Zed | ✅ | ✅ | — |
| Aider | ✅ | ✅ | — |
| Cursor | ✅¹ | —² | — |
| Continue | ✅ | — | — |
| Cline / Roo | ✅ | —² | — |
¹ Cursor reads from exported JSON (sqlite3 state.vscdb "SELECT value FROM ItemTable WHERE key='aiService:chats'")
² Not planned: Cursor and Cline keep session state inside editor databases (SQLite / VS Code globalState) with no file-level import path.
Does carrying the full transcript beat writing a handoff summary for the next agent? We measured both on a real 3.4 MB Claude Code session (same model both arms, only the context differs):
| session size | baton transcript | handoff summary |
|---|---|---|
| sm (93 KB) | 3/3 details recalled | 1/3 |
| md (198 KB) | 6/6 | 1/6 |
| lg (599 KB) | 5/8 | 1/8 |
| total | 14/17 | 3/17 |
The summary lost concrete facts (versions, line counts, MSRV) even on the smallest slice — the receiving agent had to re-read files and re-run commands to rediscover them. Mechanical fidelity: all 896 messages are written to every target; round-trip loss reflects each target format's expressiveness (claude-code 896/896, codex 736, gemini-cli 723, aider 111 — it stores chat text only).
We also measured task continuation: cut the session at three mid-task points, ask a fresh agent to state the task, state, and next steps. Result: parity (baton 10/12, handoff 10/12) — a good summary is enough for *what to do next*; the transcript is what answers the *specific factual questions* the summary's author didn't anticipate. And the summary only exists if an agent spends a full transcript read writing it — baton makes the transfer free.
Full methodology, caveats, and reproduction steps: benchmark/RESULTS.md.
baton is also an MCP server — your agent can pass the baton itself, mid-conversation:
| Tool | Description |
|---|---|
list_sessions | Scan all agents, return a unified list |
convert_session | Convert a session from one format to another |
import_to_target | Convert + run the target agent's import command |
detect_format | Sniff a file/dir and report which agent produced it |
baton install # registers baton in every detected agent's MCP config
baton doctor # verify baton uninstall # remove from all agents
Claude Code session (.jsonl)
│ ▼ baton read ──► canonical Session { messages: [Text, Reasoning, ToolCall, ToolResult] } │ ▼ baton write ──► OpenCode import JSON (SessionV1 schema)
Every agent format is read into a canonical intermediate representation, then written out in the target format. Adding a new format is O(1), not O(N×M) per-pair converters.
# npm (prebuilt binary, no Rust needed)
npm install -g @kasabeh/baton-mcp
brew install kaseban/tap/baton-mcp
cargo binstall baton-mcp
cargo install baton-mcp
curl --proto '=https' --tlsv1.2 -LsSf https://github.com/Kaseban/baton/releases/latest/download/baton-mcp-installer.sh | sh
Or grab a binary from GitHub Releases.
git clone https://github.com/Kaseban/baton.git
cd baton cargo build --release ./target/release/baton --help
Each format lives in src/formats/ .rs and implements the Format trait (read + write). See src/formats/claude_code.rs for a complete reference implementation.
All nine formats have readers; Claude Code, OpenCode, Codex, Zed, Aider, and Gemini CLI also have writers. The most impactful contribution now is a writer for Continue.
The README GIF is scripted with VHS: vhs assets/demo.tape. It records against a sandboxed $HOME (/tmp/demo) populated with fabricated sessions, so no real session data ends up in the GIF.
Don't drop the baton.
Dual-licensed under MIT OR Apache-2.0.