cervo CLAUDE.md

cervo CLAUDE.md is an instructions file for coding agents from ericovis/cervo. It costs 5,831 tokens per session, scanned B, original, MIT.

Project instructions for Cervo, a demo app that manages static website hosting on a shared server. They explain how to run, configure, test, and deploy it with Docker Compose, a tool for running several services together.

In plain words
What is it for?
Starting the development environment, understanding its services, running checks, and deploying the app.
Why use it?
They give an agent the project’s layout and operating rules, reducing guesswork when changing or running Cervo.

Instructions file

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add instructions/ericovis/cervo/claude-md
Clone the repo
git clone --depth 1 https://github.com/ericovis/cervo

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for cervo CLAUDE.md

README.md
[![agentmods](https://agentmods.dev/badge/instructions/ericovis/cervo/claude-md.svg)](https://agentmods.dev/instructions/ericovis/cervo/claude-md)
Your own site
<a href="https://agentmods.dev/instructions/ericovis/cervo/claude-md"><img src="https://agentmods.dev/badge/instructions/ericovis/cervo/claude-md.svg" alt="Measured on agentmods" height="20"></a>
Per session 5,831 This file is loaded in full into every session.
When invoked 5,831 The same file — it is already loaded in full.
Security scan B 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.05831 $0.05831
Opus 5 $0.02916 $0.02916
Sonnet 5 $0.01166 $0.01166
Haiku 4.5 $0.00583 $0.00583

Measured today against content hash 4cff590944dd, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade B, and why

cervo CLAUDE.md scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Asks for rootmediumPrivilege escalation

A mod that escalates privileges can change anything on the machine, not only the project.

handed over with `:U`). Host-side, the runtimes still run as root. If a
CLAUDE.md · 364 lines

How it starts

The opening of the file, as written. The whole thing — 364 lines — stays where its author put it; the contents beside it link to each section on GitHub.

cervo

A demo app for managing static website hosting on a shared VPS, built as an MCP server with FastMCP. Claude Code is the AI/chat interface used to exercise and test the server's tools during development. The whole environment — dev and production alike — runs from docker-compose: caddy is the front door, a worker process runs deployments, and mailcatcher stands in for SMTP in development.

Running

Prerequisite: Docker (with Compose). uv is used for lint/format and can run the test suite directly.

bin/dev    # docker compose up -d — the whole environment

The stack is four services, all sharing the .data volume at /mnt/data:

  • app — the MCP server and the public website, one service: uvicorn with WEB_CONCURRENCY worker processes (default 1) importing cervo.asgi — MCP runs stateless, so any worker serves any request. Publishes no port; caddy reverse-proxies it at http://localhost — the homepage (with docs at /docs) — and the MCP endpoint stays http://localhost/mcp.
  • worker — the job worker (cervo-worker): one container running WORKER_CONCURRENCY polling threads (default 1) — claiming is atomic in the database, so more threads never double-run a job. Boots first, creates the database tables, and renders the initial Caddyfile (once, before any thread polls).
  • caddy — the front door on ports 80/443. Runs on the generated /mnt/data/Caddyfile and serves the sites at http://{slug}.localhost. Its unauthenticated admin API (caddy:2019) is reachable only on the compose network. On a fresh checkout it restarts until the worker first renders the Caddyfile — that's the restart: unless-stopped doing its job, not a bug.
  • mail — mailcatcher (SMTP on 1025, web UI at http://localhost:1080). Development mail — the sign-in codes — goes here, not to real SMTP.

Every cervo container runs unprivileged inside: the image bakes in a cervo user (uid 1000) that owns /app and /mnt/data, and caddy runs as the same uid with a sysctl re-allowing :80/:443 (its dev state goes to /tmp — certificates only exist in production, where its volumes are handed over with :U). Host-side, the runtimes still run as root. If a .data directory written by an older root-run stack refuses writes, delete it (dev data is disposable) or chown it to uid 1000.

Read the full file on GitHub · 364 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. today Changed · +32 lines · +590 tokens per session 4cff590944dd
  2. 3d ago First seen · 332 lines · 5,241 tokens per session scan B fb5d23514dab

Subscribe to this mod's changes

cervo CLAUDE.md is an instructions file published in the GitHub repository ericovis/cervo (0 stars, last pushed 2d ago), licensed MIT. It adds 5,831 tokens to every session, about $0.0292 per session on Opus 5. A static security scan graded it B with 1 finding (asks for root). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.