Skip to content

[ Concepts / harnesses ]

Harness Setup ​

One row per harness devkit routes to: what it's for, how to install, sign in, enable and check it, and what it can't do. Payload adapters (shared skills/hooks projected into Codex, OpenCode, Pi) are documented in Runtime Adapters; this page is about reaching the harness at all. content/model-runtimes.json is the pinned registry behind every row.

codex ​

Rolepayload adapter (~/.codex) and delegate/review runtime, incl. native codex review
Installdevkit sync (brew cask on macOS, npm @openai/codex on Linux; unpinned, installed when missing)
Sign-incodex login — ChatGPT OAuth or an OpenAI API key
Enabledevkit config codex auto|on|off (default auto: on while installed)
Hook trustdevkit config codex-hook-trust devkit|all|off — devkit sync pre-trusts hooks in ~/.codex/config.toml so Codex never asks; devkit (default) covers devkit's own hooks, all also foreign global hooks and every trusted project's .codex/hooks.json
Checkdevkit runtime-route --inventory; devkit doctor
Limitsreview_role: true, the only native-review runtime; GPT-6 Sol/Luna

claude ​

Rolethe primary runtime; reverse-direction delegate target via claude -p
Installinstall Claude Code from Anthropic directly; devkit does not manage it
Sign-inClaude Pro/Max OAuth or an Anthropic Console API key
Enabledevkit config runtime claude auto|on|off; always available as primary
Checkdevkit runtime-route <tier> reports RUNTIME=claude when resolved
Limitsoutside panel and routes.review; same-model review fallback escalates via escalation.claude (fable), never opus

dsh ​

Roleexplore/implement/review/architecture delegate, one-shot headless profile
Installdevkit sync --optional (pinned)
Sign-inDEEPSEEK_API_KEY (env or $DSH_HOME); readiness stays explicitly unknown
Enabledevkit config runtime dsh auto|on|off (default auto)
Checkdevkit runtime-route --inventory
Limitsimplement gets a 3600 s bound; cannot commit from a linked worktree

pi ​

Roleexplore/implement/review/architecture delegate; first implement choice for every spec below high risk since 2026-09-24
Installdevkit sync (pinned @earendil-works/pi-coding-agent, plus bubblewrap on Linux and the Claude OAuth adapter; macOS sandboxes implement with the built-in Seatbelt instead)
Sign-inClaude Pro/Max OAuth via pi-claude-oauth-adapter (accepted account risk — https://code.claude.com/docs/en/legal-and-compliance), or an Anthropic Console API key; other providers report their own readiness
Enabledevkit config pi auto|on|off (default off)
Checkpi auth check; devkit doctor --target pi; devkit runtime-route --inventory <tier> --models --json
Limitsno review_role; extension discovery stays off outside explicit personal paths
DeepSeekFallback when the primary Pi model is not signed in or hits its usage limit: DeepSeek V4.1 Flash for explore/review/implement, then Codex gpt-6.1-sol for implement. Enable it with pi, /login, DeepSeek and an API key from platform.deepseek.com. DEVKIT_DELEGATE_PROVIDER/_MODEL/_EFFORT pins one tuple and turns the fallback off. Trial 2026-09-26: every seeded defect found, faster than dsh
Interactive useshared skills ask through AskUserQuestion, which Pi lacks; pi install npm:@juicesharp/rpiv-ask-user-question adds the matching ask_user_question tool (personal config, never loaded by delegates)

Internal docs — onedot-devkit · devkit

devkitdevkit syncdevkit statusdevkit doctordevkit helpInternal docs · ONEDOT digital crew