Your whole codebase goes into the context window by default — that is the design, and it is also why curate_context exists: run it first so a task only carries the directories it actually touches. Everything lands in GitHub, the plan as an issue and the judgement as a linked sub-issue, so the reasoning survives outside the chat window.
A planning and review server for coding agents. It sends your codebase to a big model to produce a detailed workplan, posts that as a GitHub issue, and later compares two git refs against the same plan.
- create_workplan opens the GitHub issue immediately, then fills it in from a background run of the model over your codebase
- revise_workplan re-runs that against your revision instructions and updates the same issue in place
- get_workplan reads a plan back by issue number, and workplans are also exposed as MCP resources your client can list
- judge_workplan compares two git refs, or a pull request, against the original plan and posts the verdict as a linked sub-issue
- curate_context analyses the repository for a stated task and writes a .yellhorncontext file naming the directories worth sending to the model
- Context control through .yellhornignore and .yellhorncontext, automatic chunking when a codebase outgrows the model's window, and Google Search grounding with Markdown citations on Gemini models
- Cost estimation and usage tracking on every API call
The GitHub CLI (gh), installed and authenticated — every workplan and every judgement is a GitHub issue. A key for the model family you pick: GEMINI_API_KEY, OPENAI_API_KEY or XAI_API_KEY. YELLHORN_MCP_MODEL selects the model (default gemini-2.5-pro, with GPT-5, o3, Grok-4 and deep-research options), YELLHORN_MCP_REASONING_EFFORT sets low, medium or high on GPT-5 models, and YELLHORN_MCP_SEARCH turns search grounding on or off. REPO_PATH points at the repository and defaults to the current directory. Install with uv pip install yellhorn-mcp and run it over stdio as uv run yellhorn-mcp.
One command plus a key — uv pip install yellhorn-mcp, then supply credentials
