---
title: "Coding Harnesses"
description: "Coding harnesses, Pi and Grok model access, and current implementation and verification status."
---

> Documentation Index
> Fetch the complete documentation index at: https://tryshiba.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Coding Harnesses

**Implemented and selectable:** the dashboard and `delegate_coding_task` accept per-run harness and model choices; the approved choice is passed to the runtime. The image installs OpenCode 1.18.34, Claude Code 2.1.284, Codex 0.157.1, Devin CLI 3000.11.3, Grok 1.0.41, Pi 1.3.0, and the ACP adapters (claude-agent-acp 0.86.0, codex-acp 2.1.1, gemini-cli 0.62.0). Harness tests cover selection, argv/config/env construction, provider allowlists, and event parsing. These tests do not prove the CLIs can complete a task end to end.

**Verification status:** `VERIFICATION.md` records one local `wrangler dev` end-to-end exercise with OpenCode on 2026-09-19. The provider call returned 401, so model inference and successful task completion were not verified. The 2026-09-24 verification says no live cloud end-to-end run has been performed. Claude Code, Codex, and Devin have unit coverage only; no local or cloud harness end-to-end run is recorded for them.

**Credential boundary:** OpenCode, Claude Code, Codex, and Pi use API-key provider traffic through AI Gateway; subscription credentials are not proxied. OpenCode supports xAI/Grok (`xai/<model>`) through the same BYOK egress path.

- **OpenCode**

  Default. Multi-provider (google / anthropic / openai / xAI). Use a model such as `xai/grok-4`; dummy key in the container; Sandbox egress swaps in the AI Gateway BYOK credential.

  [Read OpenCode Guide →](/docs/agents/opencode/)
- **Claude Code**

  `anthropic/*` models, e.g. `anthropic/claude-sonnet-4-6`. Stream format: `--print --output-format stream-json`.

  [Read Claude Code Guide →](/docs/agents/claude-code/)
- **Codex**

  `openai/*` models, e.g. `openai/gpt-5.3-codex`. Stream format: `codex exec --json`.

  [Read Codex Guide →](/docs/agents/codex/)
- **Pi**

  `anthropic/*`, `openai/*`, `google/*`, and `xai/*` models (default `anthropic/claude-sonnet-4-6`); runs headlessly with JSON events and the AI Gateway BYOK credential.

  [Pi documentation](https://github.com/earendil-works/pi)
- **Cursor CLI** — Not currently an installed or selectable harness. Cursor CLI requires its own Cursor API-key/authentication path, which is not wired into the approved-run credential egress boundary; the Cursor logo on the marketing page is not an integration claim.

Per-run selection overrides the deploy default `AGENT_HARNESS`. Unsupported harness/model pairs are rejected while preparing the approval, before execution. The Dockerfile's version checks establish that binaries report versions during image build; they are not an end-to-end test. `registry.npmjs.org` is not on the egress allowlist, so `npm install` inside a run is refused.

Source: https://tryshiba.dev/docs/claude-code/index.mdx
