loki-mode — Claude Code MCP server: verified runs and signed receipts
An autonomous coding agent that carries a task through to a pull request and leaves a signed record of the run. Handy when you want proof of what actually happened.
claude mcp add loki-mode -- npx -y loki-modeWhat loki-mode does
loki-mode ships as a CLI and exposes 39 tools through an MCP server over stdio. Give it a task, a PRD file, or an issue from GitHub, GitLab or Jira. It derives a delivery contract from that input, writes checks before it touches any code, implements the change, then runs those checks. A run ends in one of six outcomes: VERIFIED, ALREADY_SATISFIED, FAILED, BUDGET_STOP, BLOCKED or STALLED. When the contract as written cannot be met, the run halts and asks a single question rather than guessing.
Only a VERIFIED run pushes its branch and opens a pull request; every other outcome leaves the branch on your machine and prints its location. The record lands in .loki/runs/<run-id>/receipt.json, signed with an Ed25519 key generated on the first run. loki verify re-hashes it, checks the signature against the run's event log, and prints a verdict. A signature tells you who issued the record, not that the code is correct — the record covers the checks that ran and names the ones that did not.
A model is required. Claude (claude) is the default provider, installed and logged in. The bundled Agent SDK with ANTHROPIC_API_KEY can take its place on the main path. Spend is capped at $100 by default when ANTHROPIC_API_KEY or OPENAI_API_KEY is set, and there is no dollar cap on a subscription login. Use --max-cost <usd> or budgets.per_run in loki.yaml to set your own.
What it helps with
- turn an issue into a pull request without babysitting every step
- get a signed record of which checks actually ran
- stop an agent at a spend cap instead of after the bill
- seal one verifiable record across changes in several repositories
- tell a run that passed its checks apart from one that merely finished
Example prompts for the agent
- Run loki start "add rate limiting to /api/login" and show me the receipt verdict
- Verify the latest run with loki verify and explain the exit code
- Build the payments workspace and check composite.json
How to install loki-mode
Platform CLI
claude mcp add loki-mode -- npx -y loki-modePlatform CLI
codex mcp add loki-mode -- npx -y loki-modeConfig file
{
"mcpServers": {
"loki-mode": {
"command": "npx",
"args": [
"-y",
"loki-mode"
]
}
}
}Config file
{
"servers": {
"loki-mode": {
"type": "stdio",
"command": "npx",
"args": [
"-y",
"loki-mode"
]
}
}
}Platform CLI
gemini mcp add loki-mode npx -y loki-modeStep by step, with commands for each platform: How to add an MCP server to Claude Code, Codex, Cursor, VS Code, Gemini CLI and more
Questions about loki-mode
How do I install loki-mode in Claude Code?
Run claude mcp add loki-mode -- npx -y loki-mode. The CLI itself installs separately with npm install -g loki-mode.
What does loki-mode do?
It takes a task, PRD or issue, writes checks before editing code, implements the change, and ends the run in one of a fixed set of outcomes. A successful run opens a PR and leaves a signed receipt.
What does loki-mode need to work?
A model: Claude logged in by default, or the bundled Agent SDK with ANTHROPIC_API_KEY. Without one, the main path will not run.