Skip to content
shinbo
Harness

Run Claude Code, Codex and other CLIs in one thread

Run the coding-agent CLIs you already have installed inside a Shinbo thread, and hand their results to each other.

These guides describe the current development source. The published v0.7.1 release can differ; check release notes before following a workflow.

Shinbo does not reimplement your agent. It runs it.

The cli tool spawns an installed, authenticated coding CLI in the thread's folder and streams it live. A run is a conversation. The child exits at the end of a turn and waits with its session id, so the next instruction continues where it left off.

Try it
  1. Install and sign in to a CLI yourself (for example claude or codex). Shinbo never reads or copies its token.
  2. In a thread, ask Shinbo to give the task to that CLI. A run tab opens with the harness logo, task, model and approvals.
  3. Switch between the readable Result and the Terminal log, or open the run in a floating window.
  4. Choose Hand off output to send the result to another installed harness or an existing run, then add the next instruction.
  5. Settings → Imports & plugins lists the skills and MCP configs found for your other agents. Tick the ones Shinbo should reference and click Import selected.

Adapters

AgentBinaryResumes withUnattended flagOwns its session
Claude Codeclaude--resume <uuid>--dangerously-skip-permissionsyes
Codexcodexexec resume --last--dangerously-bypass-approvals-and-sandboxno — one at a time per folder
Pipi--session-id <uuid>noneyes
OpenCodeopencoderun --continue--autono — one at a time per folder
Gemini CLIgemini--resume latest--approval-mode=yolono — one at a time per folder
Antigravity CLIagy--continue --print--dangerously-skip-permissionsno — one at a time per folder
Cursor CLIcursor-agent--print --resume--forceno — one at a time per folder

An adapter means Shinbo knows how to spawn and resume that CLI. It is not a check against every vendor version, and the CLI still has to be installed and signed in on its own. Harnesses that resume their latest session share one active run per harness and folder. Shinbo refuses to resume a run once a newer session exists there.

Model and thinking

Every adapter accepts --model. The cli tool takes model and effort on run or send, including with fromRuns. Omitted values keep a resumed run's choices; empty strings restore the CLI's native defaults.

cli_runs {"cli":"codex","refresh":true} discovers native model ids and thinking options without spending a model turn. An unsupported model or level is rejected, not silently swapped for another.

HarnessNative thinking control
Claude Code--effort: low, medium, high, xhigh, max
Codex--config model_reasoning_effort: per the selected model's catalog
Pi--thinking: off, minimal, low, medium, high, xhigh, max
OpenCode--variant: native or configured variant name
Antigravity CLIagy --effort: low, medium, high
Gemini CLI / Cursor CLIModel only; a separate effort is rejected

Handoffs

Try Claude Code for a draft and Codex for a review. Install and sign in to both CLIs first, and use a sample folder.

  1. Ask Shinbo: “Use Claude Code to draft a short README outline for this folder. Return the outline as text; do not edit files.”
  2. When the run succeeds, inspect its Result. Choose Hand off output, select Codex, and add: “Review this outline for missing setup steps. Do not edit files.”
  3. Read the review in its run tab, then hand that output back to the original Claude Code run and ask for a revised outline.
  4. Compare the final outline with the source folder before using it. The source chips let you inspect which result supplied the next instruction.

If a CLI is missing or cannot sign in, confirm it works in your terminal first. For a rejected model, choose one that CLI account can access. Under the hood, fromRuns carries source run ids with either run or send; a source chip in the transcript returns to the run that supplied the output.

Sources per handoff
up to eight, latest successful result of each, same thread only
What travels
stdout only — not files, not the terminal log
Rejected sources
running, failed, stopped, empty or truncated runs
Prompt ceiling
32 Ki characters and 96 KiB combined; pass file paths for more
Approvals
new runs use defaults; continuing runs keep theirs

Your existing setup, by reference

Settings → Imports & plugins finds skills and MCP configs already set up for another agent and records their paths. Nothing is copied, including credentials. Expand Source locations for where each one lives and Not found on this computer for the rest. An imported MCP server can still reach whatever it was configured for.

Imports fromClaudeCodexAntigravityPiOpenCodeCursor CLIWindsurfDevin · and their MCP configs
Shinbo Imports settings listing installed Codex, Claude, Pi and OpenCode configurations with source paths collapsed
What Shinbo foundInstalled configuration sources · choose which ones to referenceCaptured September 12, 2026 · current app source · example profile
Limits
  • Run and session memory lasts only while Shinbo is open. Sessions started in another terminal are not tracked.
  • Handoffs carry stdout only; write large deliverables to a file and pass the path.
  • Each CLI bills through its own account. Shinbo does not measure vendor-side reasoning use.
  • cli is ask-gated: in Ask and Accept edits it asks before spawning.

Related: Delegation for Shinbo's own subagents, Tools for skills and MCP, Control for what a run may do on its own.