Minerva
Minerva
The Pantheon's Planner

Turns an idea into an approved plan. Headless.

Minerva takes a raw idea and drives it to a finished, human-approved spec — an epic with dependency-tracked stories — over a stable subprocess ABI. No terminal session to babysit, no UI of its own. Free and open source.

Get your agent using it
$ curl -fsSL https://mdostal.github.io/minerva/install.sh | bash

Installs the CLI, wires the MCP server into whatever agent harness is already on the machine (Claude Code, Codex CLI today), and drops in the usage skill so an agent gets the full startRun → poll → answer → repeat pattern immediately. Already installed? minerva agent init is the same thing, idempotent.

What it does

Planning used to mean a human, one idea at a time.

Getting from a raw idea to an approved plan meant a human hand-running /hive:kickoff and /hive:plan in a terminal. Minerva makes that step a service you can drive from anywhere: feed it an idea over a stable subprocess ABI, and it drives plugin-hive's kickoff and plan skills against an isolated per-run git workspace, surfaces exactly the questions that need a human answer, and returns the finished spec.

Splitting the planner out of the terminal is what lets you feed many ideas at once — each idea gets its own run and its own decision thread, in parallel, instead of a serial per-idea session. There is no daemon; nothing advances a run on its own. A run only moves when a caller answers its questions.

How it fits

One slot in the Pantheon, wired to the rest.

Minerva plans; it doesn't route and it doesn't provision. Ideas arrive already routed, questions go to a human, and the approved output moves on to build the thing.

The ABI

One JSON envelope in, one out. Fresh process every call.

Minerva's public interface is the Pantheon subprocess ABI itself — {method, params} in, {result} or {error} out — wire compatible with plugin-hive's task-tracking adapter ABI. The same eight methods run as an MCP server (minerva mcp) for anything that speaks MCP.

The core loop
  1. startRunhand Minerva a raw idea, get back a run_id
  2. getQuestionspull the questions currently blocking the run
  3. submitAnswersthe only write path that advances a run
  4. getOutputfetch the approved epic and its dependency-tracked stories
Also available
capabilities getRunStatus listRuns abortRun