chetter

command module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 6, 2026 License: MIT Imports: 24 Imported by: 0

README

Chetter

Chetter is an Open Source system written in Go for running autonomous AI development agents using standard harnesses (OpenCode, Claude Code, CodeWhale, Pi, Codex) in standard Docker or Kubernetes environments. If you are looking for a simple(r) solution to self host standard autonomous coding agents, then Chetter should be interesting. Hop into our Discord if you want to know more.

  • Submit tasks to standard harnesses against Git repos with LLM agents in Docker containers
  • Track live progress — streaming events, logs, session transcripts
  • Automation — cron triggers, generic webhooks, PR review webhooks, GitHub PR/issue/comment responders
  • Pause and resume — pause agent sessions and resume on the same runner with follow-up prompts
  • Manage via MCP or web UI — web UI, MCP tools, team tokens, audit log, runner fleet health

Design Principles

Chetter was built as a reaction towards the solutions available (E2B, Daytona, Modal etc) which often are not Open Source or want to lock you into them hosting your agents, need relatively exotic infrastructure like Firecracker VMs or use custom harnesses instead of industry standard harnesses.

Chetter instead ...

  • Is true Open Source. Chetter was built for organisations that feel that the future of software development should be under their own control.
  • Uses Standard harnesses. Chetter delegates agent execution to existing CLI tools — primarily OpenCode, with support for Claude Code, CodeWhale, Pi, and Codex. No custom agent runtime. We believe that the popular harnesses have the momentum and we also feel that constructing an autonomous agent should be done with the same tools that you use as an individual developer.
  • Deploys in Docker or Kubernetes. Both the server and runners run on standard Docker or Kubernetes. No special infrastructure is needed for convenience execution. For a task security boundary, enable gVisor; plain Docker execution is not sandboxed against a malicious task.
  • Relies on GitHub-native orchestration. Chetter integrates deeply with GitHub and uses PRs, issues, reviews, and comments to drive agent workflows — the same primitives developers already use.
  • Uses plain containers as environments. The agent runs in a normal Docker container. You define the image with the tools and stack your project needs.
  • Is MCP and API first, web UI for observation. The server has a full ConnectRPC API exposed also as MCP tools. There is also a web UI primarily for monitoring, inspection, and admin tasks.

Quick Start

git clone https://github.com/flatout-works/chetter.git
cd chetter
cp .env.example .env
# Edit .env: set CHETTER_MCP_AUTH_TOKEN and at least one LLM provider key
./deploy/build.sh
docker compose --env-file .env -f deploy/compose.yaml -f deploy/compose.local.yaml up -d

The MCP server is at http://localhost:18088, the web UI at http://localhost:18090. See docs/MANUAL.md for detailed setup, configuration, and operations.

Next Steps
  • Configure the GitHub App for PR review and issue automation (webhook, label, /chetter-review): see docs/TRIGGERS.md.
  • Point Chetter at a definitions repo for agents, skills, triggers, task templates, and the model catalog: see docs/CONFIGURATION.md.
  • Enable gVisor for a task security boundary: see docs/DEPLOYMENT.md.
  • For production Kubernetes, see docs/EKS.md; for local k3s validation, docs/K3S.md.

Connect Your AI Client

  • OpenCode — built-in config at .opencode/opencode.json; set CHETTER_MCP_TOKEN and point the url at your server
  • Claude Codeclaude mcp add --transport http chetter https://chetter.example.com/mcp --header "Authorization: Bearer $TOKEN"
  • Any MCP client — standard remote MCP server format; see docs/MANUAL.md

Repository Layout

Path Purpose
main.go Server entry point
internal/ Config, store, service, webhook, web UI
cmd/ chetterctl token management CLI
db/ Migrations and sqlc query files (TiDB/MySQL under db/migrations/, PostgreSQL under db/postgres/)
proto/ ConnectRPC service definitions (server ↔ runner)
runner/ Containerized runner harness
web/ SvelteKit web UI (Flowbite-Svelte)
deploy/ Docker Compose and Kubernetes manifests
docs/ Documentation

Docs

Build From Source

make check && make build

License

MIT

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis
cmd
chetter-migrate command
chetterctl command
db
postgres/migrations
Package migrations embeds the PostgreSQL Goose migrations for startup use.
Package migrations embeds the PostgreSQL Goose migrations for startup use.
gen
internal
auth
Package auth OIDC support: OpenID Connect (OIDC) provider integration for web UI sessions (issue #94).
Package auth OIDC support: OpenID Connect (OIDC) provider integration for web UI sessions (issue #94).
config
Package config loads chetter service configuration from environment variables.
Package config loads chetter service configuration from environment variables.
data
Package data selects the generated repository for the active SQL dialect.
Package data selects the generated repository for the active SQL dialect.
data/cmd/genfacade command
Command genfacade creates the stable repository facade from sqlc output.
Command genfacade creates the stable repository facade from sqlc output.
dbmigration
Package dbmigration contains shared database migration runners.
Package dbmigration contains shared database migration runners.
githubrepo
Package githubrepo parses GitHub repository names and clone URLs.
Package githubrepo parses GitHub repository names and clone URLs.
metrics
Package metrics exposes a Prometheus-compatible /metrics endpoint with standard Go runtime collectors and derived application gauges.
Package metrics exposes a Prometheus-compatible /metrics endpoint with standard Go runtime collectors and derived application gauges.
oidctest
Package oidctest provides a fake OpenID Connect provider for tests.
Package oidctest provides a fake OpenID Connect provider for tests.
redact
Package redact provides exact-match secret redaction for runner output.
Package redact provides exact-match secret redaction for runner output.
service
Package service contains chetter orchestration and MCP tool handlers.
Package service contains chetter orchestration and MCP tool handlers.
store
Package store persists chetter state in a TiDB or MySQL-compatible database.
Package store persists chetter state in a TiDB or MySQL-compatible database.
testdb
Package testdb spins up a real database instance (TiDB, MySQL, or PostgreSQL) for integration tests.
Package testdb spins up a real database instance (TiDB, MySQL, or PostgreSQL) for integration tests.
validation
Package validation provides server-side validation for task inputs.
Package validation provides server-side validation for task inputs.
webhook
Package webhook handles GitHub webhook events for the Chetter service.
Package webhook handles GitHub webhook events for the Chetter service.
webui
Package webui serves the built Chetter web UI.
Package webui serves the built Chetter web UI.
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL