cerveau docs site github
Documentation

Cerveau

A local-first agentic coding harness, built from scratch for small models on the machine you already own. This documents every part of it: how to run it, how it is put together, and how to work on it.

Cerveau is a Go core with an embedded Svelte panel, shipped as one binary bound to 127.0.0.1. It drives a model you serve yourself over an OpenAI-compatible URL, keeps its memory in Typesense on your disk, and never makes an outbound call. No accounts, no telemetry, no cloud.

Status v0.5.0-alpha, codename Cores. Linux x86-64 and ARM64. Windows is planned; macOS is untested. The API is unauthenticated on localhost by design and will change between alpha releases.

Where to start

The shape of it

Five subsystems do the work. Each one exists because a small model fails in a specific way, and each is a compiled mechanism rather than an instruction the model can talk itself out of.

Cerveau system architecture Local clients reach a Go core over HTTP. The core drives the agent loop and calls four things it does not own: a serving engine, Typesense, an embedder, and your workspace files. YOUR CLIENTS NOT OWNED BY CERVEAU HTTP CHAT · GRAMMAR JAILED panel :7700 · embedded crvcli one-shot Pocket over tailnet THE GO CORE agent loop observe · think · act window guard registry memory one static binary no tensor math your Core openai-compatible url typesense :8108 · managed cerveau-embed :8081 · cpu workspace your files
The core orchestrates and owns nothing outside itself. A model is a URL, which is why an engine crash cannot take the panel with it.
SubsystemWhat it solvesRead
MemoryA model that forgets between turns, and summaries that lose the original.Memory
Context windowA 96K budget spent badly, and history that vanishes without a trace.Context window
Safety guardA model talked into rm -rf / by a prompt.Safety guard
Tool registryTools that a mode should not be able to reach, and failures worth retrying.Tools
Brain CoresBeing locked to one inference engine.Brain Cores

Conventions in these docs

Paths are relative to the repository root unless stated otherwise. Where a page cites a default, it is the value in the source, not an idealised one — the file is named so you can check it. Ports are the shipped defaults and every one of them is configurable.

Written asMeans
~/.crv/Per-user state: sessions, models, the pairing id.
~/.config/cerveau/config.jsonThe config file the core actually reads.
safeA tool with no side effects outside a read.
sensitiveA tool that writes, and is mode-fenced.
dangerousA tool that runs arbitrary commands. Autopilot only.
A note on accuracy These pages were written against the source at v0.5.0-alpha. If a page and the code disagree, the code is right and the page is a bug — open an issue.