Peen documentation

Peen is a coding agent built as a server. One controller opens a session for each workspace directory and runs the agent for that session in its own process or Docker container. Clients send work and watch it live over WebSocket, and the agent keeps working when they disconnect.

Every conversation, tool call, event, compaction, and provider exchange lands in SQLite, so you can reconnect after a restart and read what happened. After a crash, Peen restores saved context and reuses completed activity results.

The source is at github.com/psyb0t/peen.

Install

You need Linux, a model provider API key, and, for the default setup, Docker that your user can run.

curl -fsSL https://raw.githubusercontent.com/psyb0t/peen/main/install.sh | bash

Read install.sh before piping it into a shell. Getting started walks through the first run.

Find what you need

You want to Read
Start from zero Getting started
Install Peen, use the peen command, or run it by hand Deployment
Decide where the agent runs and what it can touch Where it runs
Know what the agent can reach before you deploy Security
Configure providers, limits, and logs Configuration
Run turns and manage sessions from a shell Command line
Use the browser chat Control surface
Run a prompt in a GitHub workflow GitHub action
See what the agent can do Agent tools
Teach the agent about your project The harness
Build a client WebSocket API and REST API
Embed Peen in a Go process Embedding Peen
Let another agent operate Peen Agent integrations
Fix something that broke Troubleshooting
See how it fits together Architecture
See how it does on coding benchmarks Benchmarks
Change Peen itself Developing Peen