Skip to main content
13 May 2026Docs · 02

← Docs

Configure

The editorial contract.

Four files in .devrel/ decide what your output looks like. config.toml is the product wiring; the other three are the writing voice. All four are version-controlled, branchable, reviewable.

§1

config.toml

Product identity, LLM provider + default model, per-agent model overrides, weekly budget cap. Edit this once when you devrel init a repo; revisit when you swap providers or rebalance models.

# .devrel/config.toml

[product]
name = "Origin"
url  = "https://useorigin.co"
github_repo = "dovzhikova/origin"

[llm]
provider = "openrouter"          # or "anthropic"
default_model = "anthropic/claude-sonnet-4.5"

# Per-agent overrides. Cheap models for triage, premium for content.
[llm.agent_models]
kai  = "anthropic/claude-sonnet-4.5"
pax  = "anthropic/claude-sonnet-4.5"
sage = "anthropic/claude-haiku-4.5"
echo = "anthropic/claude-haiku-4.5"

[budget]
# Hard cap per weekly run, in USD. Atlas aborts past this.
weekly_usd_cap = 8.00
§2

voice.md

Samples of your best published writing. Not the highest-traffic pieces — the ones with the cadence you want to be known for. Kai grounds every draft against these.

# .devrel/voice.md

Three to five samples of your best published content. The
samples are short — a paragraph each is fine. They are the
editorial north star Kai grounds every draft against.

Pick samples that have the cadence you want, not the ones with
the highest pageviews. Voice is not engagement; it's recognition.
§3

style.md

Quantitative editorial targets: readability grade, sentence length caps, paragraph structure. Plus enforced conventions for headers, lists, code blocks. The readability and structure checks are stages 5–6 of the editorial pipeline.

# .devrel/style.md

## Readability
- Flesch-Kincaid grade level: 9–11
- Average sentence length: < 20 words
- Paragraphs: 3–5 sentences, never more than 6

## Structure
- H2s every 250–400 words, never less
- Bulleted lists only when order doesn't matter; numbered when it does
- Code blocks: comment the non-obvious line, not the loop variable

## Voice
- Active voice; second person ("you", not "the user")
- No filler ("It's worth noting", "In today's world", "Let's dive in")
- Cite specifics — file paths, version numbers, real error messages
§4

slop-blocklist.md

Phrases that must never appear in output. The anti-slop pass (stage 4) scans every draft against this list and force-rewrites any line that hits. Start with the obvious AI tics; add your own pet peeves as you spot them.

# .devrel/slop-blocklist.md

dive in
delve into
unlock the power
seamless
robust
in today's fast-paced world
elevate your
revolutionize
synergy
leverage (as a verb)
game-changer
§5

LLM keys (.env)

Run devrel auth to pick a provider, validate the key with a one-token ping, and write .devrel/.env with chmod 600. Anthropic and OpenRouter both work. OpenRouter ships with free monthly credits, so the practical floor is $0/month.

The .env file is gitignored by default. Rotate via devrel auth --rotate.