Open source · MIT · Self-hosted

Coding agents on your own infrastructure.

Chetter is an open source control plane for autonomous coding agents. One Go server, one SQL database, plain containers — and the harnesses you already use.

No custom runtime — standard harnesses

OpenCodeClaude CodeCodexPiCodeWhale

Why Chetter

Hosted agent platforms want your code, your credentials, and a monthly bill.

Chetter is the opposite position on every one of those points.

Hosted platforms

  • Closed source, or open in name only
  • Agents run in their cloud, on proprietary sandboxes
  • Exotic infrastructure — Firecracker VMs, custom kernels
  • Custom agent runtime you can't reuse locally
  • Your code and secrets leave your network

Chetter

  • MIT licensed, full stack, no hosted tier
  • Runs on your Docker or Kubernetes — nothing exotic
  • Optional gVisor sandboxing, per-task isolated networks
  • Standard harness CLIs — same tools you use by hand
  • Code and credentials never leave your network

Design principles

Deliberately boring technology, composed well.

Not marketing values — constraints the codebase is held to.

01

True open source

MIT, no hosted service. Clone it, run it, own the execution path.

02

Standard harnesses

Execution delegated to existing CLI agents. No custom runtime.

03

Docker or Kubernetes

Standard containers anywhere. gVisor when you need a hard boundary.

04

GitHub-native

Agents open PRs, triage issues, post reviews — with managed Git identities.

05

Plain containers

The agent image is a normal Docker image with your stack in it.

06

API & MCP first

Everything is a ConnectRPC endpoint and an MCP tool. The UI just observes.

Spec sheet

What the system actually does.

queueJust SQL — SKIP LOCKED claims, 60s leases, a reaper for dead runners. No broker.
automationCron, generic webhooks, GitHub PR-review & issue triggers — with one-click simulated test runs against a real PR or issue. Config can live in Git.
sessionsPause mid-task, resume on the same runner, recover with a custom prompt, re-run anything.
modelsAny provider — OpenAI-compatible, native, Bedrock, LiteLLM. Data-driven catalog.
isolationPer-task Docker networks block lateral movement; CPU, PID & memory limits contain runaway tasks. gVisor adds a userspace kernel — plain Docker alone is not a sandbox against a malicious task.
operationsAudit log, event streams, token & cost summaries, runner fleet health — with versioned releases (server version & live uptime in the UI footer).
databaseTiDB, MySQL, or PostgreSQL — auto-detected, auto-migrated.
clientsAny MCP client, the chetterctl CLI, or the web UI.

How it works

Prompt to pull request in six steps.

1

Submit

MCP call, cron, or webhook creates a task.

2

Queue

Stored in the database as pending.

3

Claim

A runner wins the row lock and lease.

4

Prepare

Repo cloned, agent config injected.

5

Run

Harness executes in an isolated container.

6

Report

Events and artifacts stream back. PR opened.

See it running

A UI for watching, not for wizards.

Real views from a production instance that runs its own triage, implementation, and docs maintenance. Click any screenshot to inspect it.

Quick start

Running in four commands.

sh
$ git clone https://github.com/flatout-works/chetter.git
$ cd chetter && cp .env.example .env   # set a token + one LLM key
$ ./deploy/build.sh
$ docker compose --env-file .env -f deploy/compose.yaml \
    -f deploy/compose.local.yaml up -d

# mcp  → http://localhost:18088    ui → http://localhost:18090

Own your agent infrastructure.

No hosted service. No signup. Clone the repo and you're running.