go-code

For teams operating coding agents

go-code

A runtime for coding agents: first-class run APIs, provider-aware model routing, isolated workspaces, contract-tested tools, and MCP-native control.

go-code go-code "fix the failing test" go-code "explain this package"

What go-code does differently

It treats agent work as an inspectable runtime, not a terminal transcript.

go-code is built around runs, events, tools, providers, and workspaces as explicit objects you can script, inspect, route, replay, and control.

01

Runs are API objects

Every task has an ID, status, event stream, steering, cancellation, input handling, usage, cost, and persisted state.

02

Provider-aware routing

Model catalog metadata decides provider, API style, pricing, streaming behavior, and compatibility quirks.

03

Workspace isolation

Runs can target explicit workspaces and profile-backed isolation modes including worktree, container, and VM.

Start in your terminal

Install it, then open it from the project you are already working in.

Homebrew builds the local daemon and terminal client, then installs the go-code command and the runtime assets it needs outside the checkout.

brew install --HEAD dennisonbertram/go-code/go-code

go-code                          # open the TUI
go-code "fix the flaky test"      # run once, then exit
go-code --server                 # use the HTTP runtime directly

Runtime surface

The parts that usually become glue code are built in.

go-code is for systems that need to launch agents, observe behavior, enforce tool contracts, and integrate with other agent clients.

04

Tools are contracts

Tool schemas, tiers, tags, MCP bridging, deferred tools, errors, and tool-call events are first-class runtime concerns.

05

MCP-native control

Expose the harness itself as MCP so external clients can start, inspect, wait for, steer, and continue runs.

API

Scriptable by default

Use the terminal client, HTTP server, Server-Sent Events, or MCP entrypoints against the same underlying runtime.

Built for operations

Agent behavior stays visible as structured state.

Run lifecycle Track lifecycle, terminal state, conversation state, and resumable context per run.
Event stream Observe provider resolution, workspace resolution, tool calls, failures, and usage deltas.
Bounded execution Set provider, model, workspace, maximum steps, and cost ceilings per task.
External control Drive the same harness through CLI, HTTP, SSE, and MCP instead of a single UI.

For runtime builders

The agent runtime is available over HTTP and events.

The TUI is one entrypoint. The harness is the actual product: start harnessd, create a run, and subscribe to Server-Sent Events for lifecycle state, provider routing, workspace selection, tool activity, usage, and conversation history.

POST /v1/runs GET /v1/runs/{id}/events POST /v1/runs/{id}/steer POST /v1/runs/{id}/approve GET /v1/models GET /v1/conversations/{id}/messages
RUN_ID=$(
  curl -s http://127.0.0.1:8080/v1/runs \
    -H 'content-type: application/json' \
    -d '{
      "prompt": "Find the risky code path",
      "workspace_path": "'$PWD'",
      "model": "deepseek-v4-pro",
      "max_steps": 8
    }' | jq -r .run_id
)

curl -N "http://127.0.0.1:8080/v1/runs/$RUN_ID/events"