Skip to content

ank

The stupid coordination tool
Tasks and architecture decisions in your repo, behind one CLI any coding agent can call.

CI Latest release Licence

npm install -g @haksolot/ank     # one executable, and nothing beside it
npx skills add haksolot/ank      # the skill, into whichever agent you run

Needs git 2.34 or newer. Every other route is in handing ank to an agent.


An agent that spawns on your codebase can read every line of it. It cannot read your tracker, your wiki, or the thread where you decided six months ago that sessions must never be self-contained JWTs. So it writes plausible code that breaks a rule nobody wrote down where it could be found.

Ank puts that layer in the repository, attached to the code it constrains, and serves it through one command surface. .ank/ is opaque to an agent, the way .git/ is: not a directory to grep, a CLI to call.

A terminal session: ank context serves a constraint saying every refusal must name the command that fixes it; ank graph shows which task is takeable; a task is claimed and its criterion frozen; the code written next produces exactly that message; ank done runs the declared verifier and records a hashed proof.

Four verbs carry the loop: ank context for what binds here and what is takeable, ank claim to take a task and freeze its criterion, ank log while you work, and ank done to finish with a proof that ank check can verify afterwards. Getting started walks all of it with real output, from ank init onward.

Installing puts one executable on your PATH, and every surface ank has is a verb of it. A client with no shell reaches the same verbs over MCP through ank mcp, with no second file to fetch or discover, and getting started carries the configuration to paste, for Claude Code, Claude Desktop and Cursor.

ank tui is the same corpus full-screen, for a human at a terminal. ank watch keeps the corpora you declare warm so the next ank answers sooner, and nothing depends on it running.

What it is not

  • Not a tracker. No cycles, estimates, velocity, roadmap or burndown.
  • Not a wiki. Only what is actionable or binding for an agent goes in.
  • Not a security boundary. It protects against drift, not against an attacker.

Documentation

If you want to Read
go from install to a first finished task Getting started
hand it to an agent, whichever one you run Handing ank to an agent
build a tool on top of ank Integrating with ank
write a tool that reads or writes .ank/ The file format
know how it compares to RAG, a wiki, or OKF How ank compares
open a pull request Contributing
report a vulnerability Security policy

The specification is the source of truth and lives as ten accepted spec entities in .ank/: ank find --type spec lists them, ank show <id> prints one whole.

Linux, macOS and Windows. The version is 0.x deliberately: the loop and the exit codes are specified and an agent can branch on them today, while the storage format is not, and a major version is a promise about exactly that. Contributions are under a Code of Conduct.

Licence

Apache-2.0. See LICENSE.

About

The stupid coordination tool - tasks and architecture decisions in your repo, behind one CLI any coding agent can call

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

63 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages