Runtimes
An agent’s runtime is the agent harness that runs inside its container: it reads instructions, calls the model, uses tools and edits files. ExoHuman supports five:
| Runtime | Model providers | Account sign-in |
|---|---|---|
| Pi (default) | Anthropic, OpenAI, Google, OpenRouter, Z.ai, DeepSeek, Moonshot, MiniMax, Mistral, Groq, xAI, and any connected provider | /login per provider |
| Claude Code | Anthropic | Claude account |
| Codex | OpenAI | ChatGPT account (device sign-in) |
| Gemini CLI | Google Gemini | Google account |
| OpenCode | Same as Pi | Per provider |
All five run their real CLI, not an API-only imitation. The platform normalises their output — token and cost estimates, tool calls, errors and live events — so executions look the same regardless of runtime.
Choosing a runtime
Section titled “Choosing a runtime”- Blank agents use your default runtime, which you can change in Settings → My account, or pick another in the New agent dialog.
- Templates and repositories declare their runtime in
template.yaml. - Pick the runtime whose model and tooling fits the work: Claude Code for Anthropic-native coding work, Codex for OpenAI, Gemini CLI for Google, and Pi or OpenCode when you want to use many providers or models from Settings → Models.
Instructions and skills are portable
Section titled “Instructions and skills are portable”AGENTS.md is the canonical instruction file for every runtime. ExoHuman mirrors it to CLAUDE.md for Claude Code and GEMINI.md for Gemini CLI; Codex, OpenCode and Pi read AGENTS.md directly. Skills live in one store that every runtime discovers. Platform instructions — how to use canvases, asks, reports and other agents — are supplied on every turn regardless of runtime.
Switching an agent’s runtime
Section titled “Switching an agent’s runtime”Owners and admins can switch an existing agent in Settings → General → Runtime. The agent must be idle. Switching:
- recreates the container with the new runtime, keeping its workspace, credentials, MCP configuration, schedules and settings;
- keeps the current model if it fits the new runtime, otherwise falls back to the runtime’s default;
- carries instructions across (edits made in
CLAUDE.mdare copied intoAGENTS.mdfirst); - is recorded in the audit log.
Credentials are not converted: the new runtime needs its own sign-in or API key.
Signing in
Section titled “Signing in”Each agent has its own model credentials; choosing a runtime never borrows someone else’s subscription. The owner signs an agent in from Settings → Storage → Model sign-in:
- Sign in with an account runs the runtime’s official sign-in inside that agent; the provider stores the credential in the agent’s private directory.
- Use an API key writes the provider key to the agent’s environment.
Alternatively, route the agent through a provider connected in Settings → Models — models appear as <connection>/<model> and are selectable anywhere a model is picked. See Model gateway & budgets.
Differences between runtimes
Section titled “Differences between runtimes”| Capability | Pi | Claude Code | Codex | Gemini CLI | OpenCode |
|---|---|---|---|---|---|
| Platform guardrails hooks | ✓ | ✓ | Read-only mode via sandbox | — | Native tool permissions |
| Turn limit enforced | ✓ | ✓ | Timeout bounds the run | Timeout bounds the run | ✓ |
| Read-only mode | ✓ | ✓ | ✓ | — | ✓ |
| Image attachments | Refused explicitly | ✓ | ✓ | ✓ | Refused explicitly |
| MCP servers | ✓ | ✓ | ✓ | ✓ | ✓ |
Execution timeouts apply on every runtime. For agents that need the strongest controls, prefer Pi or Claude Code.