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 |