Install ank
Two separate acts: the binary, which is the tool, and the skills, which teach your agent to use it. Pick the line for your machine, then run the second one.
1The binary
npmYour system
Any machine with node. The route that gets through a firewall that blocks a bare executable but lets a registry through.
npm install -g @haksolot/ankcurl | shYour system
Linux and macOS. Fetches the archive and its
.sha256, and refuses before unpacking if the two disagree.curl -fsSL https://raw.githubusercontent.com/haksolot/ank/main/install.sh | shPowerShellYour system
Windows, in Windows PowerShell 5.1 or PowerShell 7. Same check, and it can replace an
ank.exethat is still running.irm https://raw.githubusercontent.com/haksolot/ank/main/install.ps1 | iex
2The skills
One command for every agent. It detects the ones you run (Claude Code, Codex, Cursor, OpenCode and some thirty more) and links each to a single copy of the six skills.
npx skills add haksolot/ank
What you need
Two things, and a third only if you build from source.
- git 2.34 or newer
- Not a convenience: claims live in git refs, and ank checks the version at startup.
- sh
- Verifiers run under
sh -con all three systems. On Windows it comes with Git for Windows, so requiring git makes it free. - Rust 1.95 or newer
- Only to build from source, with a C compiler beside it.
Check it answers
Whichever route you took, ask the binary what it is.
ank --version
ank 0.8.0 (8310e75, skill 0d916cc3d9a5)
ank update --check
running 0.8.0
latest 0.8.0
up to date
Three components, each the answer to a question you will ask one day:
- The version
0.8.0 - What you installed. It is 0.x on purpose: the loop and the exit codes are specified, the storage format is not yet.
- The commit
8310e75 - What it was built from. It matters the first time you suspect the binary in your hand is older than the behaviour you are reading about.
- The skill revision
skill 0d916cc3d9a5 - The skill it was built alongside. An agent that loaded the skill can compare that string with the one its tool prints, and see for itself that its instructions predate its binary.
Updating
ank update --check reads the latest release and installs nothing. ank update installs it through the route that placed the binary you run, and prints that command first. It never touches the skills: when their revision changes, it says so and leaves the reinstall to you. No other verb reaches the network for this.
Platforms
Linux, macOS and Windows. Exactly which route covers which machine:
| Platform | npm | curl | sh | PowerShell |
|---|---|---|---|
| Linux x64 | |||
| Linux arm64 | |||
| macOS, Apple silicon | |||
| macOS, Intel | |||
| Windows x64 |
Where the npm package carries no binary, the wrapper exits 9 and names cargo install. Where no release carries one, curl | sh refuses by name and lists what does exist. Neither ends in silence.
When none of the three fits
The releases page carries the archives the two installers fetch, one per target with its .sha256 beside it: unpacking one by hand is what the installers do for you. And the tree builds:
cargo install --git https://github.com/haksolot/ank ank-cli
No package manager ships ank. Homebrew, Scoop, apt, winget and the AUR each carried a channel or an attempt at one, and every one was withdrawn. Three routes, each served from the repository and derived from a published release.
The skills
Six plain markdown files. The first is the one an agent loads by default and it stands alone; the other five carry one activity each and are loaded when the work calls for them.
ank- The contract: why ank is shaped as it is, the verbs by the moment you use them, the rules that are not negotiable.
ank-plan- Interview a goal into ADRs, specs and tasks.
ank-drift- Audit the decisions against the code.
ank-loop- Work the backlog autonomously.
ank-tdd- Drive an implementation test-first.
ank-diagnose- Work a defect back to its cause.
Other ways in
Every route points at the same six files in git. None holds a copy somebody keeps in step by hand.
Claude Code
As a plugin: six skills and nothing else. No agent, no hook, no server, so nothing of it runs unless you call
ank./plugin marketplace add haksolot/ank /plugin install ank@ankpi
The npm package carries the skill beside the binary. pi loads resources and does not put
ankon yourPATH: install the binary as well.pi install npm:@haksolot/ankBy hand
Copy
skill/SKILL.mdwherever your harness loads it. Each skill is one file with nothing generated in it, so you lose nothing.
Install ank
Two commands. Linux, macOS and Windows, with git 2.34 or newer.
npm install -g @haksolot/ank
npx skills add haksolot/ank