Skip to main content

Kiwi — coding agents that run in infrastructure you control

Kiwi turns a task into a swarm of coding agents that fix your code and open a pull request.

You describe a task and point Kiwi at a repository. A Control Plane decomposes the task into a DAG of worker specs; a Data Plane runs each worker in an isolated sandbox through an Actor–Critic loop — editing files and re-running your test command until it passes — and then opens a PR.

The task → PR flow, in one sentence: submit a task and a repo, Kiwi plans it into workers, runs each worker until its test command goes green, and returns a real pull request.

Two planes

Kiwi is split into two cooperating planes with a clean seam between them:

  • Control Plane (cmd/kiwid, pkg/orchestrator) — the API, authentication, the Planner, a Postgres lease queue, and encrypted credential storage. It decides what work needs doing and hands it out; it never runs your code.
  • Data Plane (cmd/kiwidaemon, pkg/daemon) — a pull-model daemon that polls the Control Plane over HTTPS, unseals its org's credentials in memory, provisions a workspace, runs the loop, and opens the PR. It is the only component that touches your source and your model key.

Managed or BYOC

The same Data Plane daemon can run in two deployment models:

  • Managed — Kiwi operates the Data Plane for you. The fastest way to start; every signup begins here on the Free tier.
  • BYOC (Bring Your Own Cloud) — you run the Data Plane daemon inside your own cloud. Your code and credentials never leave your VPC, and the Control Plane never sees plaintext credentials.

:::note Zero-knowledge is a BYOC property In BYOC, the daemon runs in your cloud and the Control Plane never sees plaintext credentials. In managed mode, Kiwi operates the daemon and holds its private key, so it can decrypt — managed is not zero-knowledge. See Security & credentials. :::

What is live today

A task flows end-to-end — submit one and get a real PR back. The self-serve Free tier is deployed to production: a signup runs tasks on a Kiwi-operated shared fleet (per-org daemon processes, gVisor sandbox, agent-minute metering). Still in progress: billing / Pro upgrade, hardened multi-tenant egress isolation, and the Firecracker managed-dedicated path. See the status table in the repository for the authoritative list.

Where to go next