Cammut is a single static Go binary plus a web console, shipped as a container image. Every release lists its SHA-256 here.
Files
No public build yet
The first public artifacts (source archive, Linux binary and container image) will be listed here with their SHA-256. Until then the project is not downloadable: that is deliberate, because the working tree still contains operator-specific scripts that must be scrubbed first.
Compare the output with the checksum in the table. If they differ, do not run the file.
Run it
The quickstart goes from a fresh server to a connected agent in about ten minutes. It needs Docker and, for public HTTPS, a reverse proxy such as Caddy.
Changelog
0.4.0 2026-10-18
Memory: note store with full-text recall and optional vector recall, a deterministic project brief, REST under /v1/memory/* and an in-process memory MCP upstream (profile direct:memory).
Adapters for Claude Code, Codex CLI and Warp (project brief at session start, recall on prompt, handoff on stop).
Console pages for memory (notes, brief, retract) and agent setup (mints tokens with the right scopes).
Hardening: idempotent Hindsight retain, recall-side redaction, spool items that fail are parked instead of stopping capture, free-space check fails closed.
0.3.0 2026-10-16
Encrypted raw archive: transcripts stored as age ciphertext; the server holds no decryption key and no decrypt code.
Retention sweeper that removes a local transcript only after proving the same bytes are archived, replicated offsite and recoverable.
Consistent database snapshots (admin db-snapshot) used by the nightly backup.
0.2.0 2026-10-10
Console at /console/: password plus authenticator code login, optional GitHub sign-in, token and upstream management, audit view.
Vault key for stored secrets (admin vault-init). Without it the gateway still runs and the console stays off.
0.1.2 2026-10-10
Public HTTPS behind a reverse proxy, token scope editing (token scopes), GitHub MCP as a third upstream.
0.1.1 2026-10-10
Review pass: bounded audit rows, one POST is one JSON-RPC message, upstream redirects never followed, bearer attached only to the upstream's own host, response bodies capped at 8 MiB, stale tool lists served while one refresh runs.