Keel
English | 中文
OpenSpec execution discipline for AI coding agents — Claude Code, Codex, and OpenCode.
What Keel is for
OpenSpec gives a project a spec-driven workflow: proposal, design, specs, tasks, and an archive of what changed. Claude Code (or Codex) gives you the agent that does the work. Keel sits between them and keeps the agent on track while it works through an OpenSpec change.
Left alone, an agent tends to drift: it edits files the task never mentioned, loses the thread after a context reset, or checks work off without proof. Keel adds a thin, checkable layer that prevents that, and it does so by building on tools you already have instead of replacing them.
What Keel adds:
- Stateless continuity. keel context recomputes the current task and next step from
OpenSpec and Git every session, so work survives /clear, compaction, and cold starts without depending on chat memory.
- Deterministic gates. keel gate task-start | task-complete | change-close run local
structural checks and return pass / fail / needs-review with real exit codes. They check that the task contract and evidence are present; they do not judge whether the design is correct.
- A write guard (Claude). After task-start, a PreToolUse hook rejects any edit
outside the files the task declared it would touch.
- Expectation alignment. Before specs and tasks are finalized, Keel surfaces hidden
assumptions and asks about the ones that actually change behavior.
Keel leans on native capabilities rather than reinventing them. The spec workflow is plain OpenSpec. The execution skills, the SessionStart continuity hook, and the write-guard hook ship as an ordinary Claude Code / Codex plugin. keel --init writes only a small host surface into your repo: an AGENTS.md bootstrap block, the OpenSpec schema, and the /opsx: command overlay.
Requirements
Node.js =20.19.0 (the bundled OpenSpec CLI needs it).