CLI
Afara lives next to git.
A single binary for macOS, Linux and Windows. It turns commits into context, injects context into your coding agent, and checks pushes on ticket branches.
Install in one line.
Then sign in, and run afara init in a repository with a GitHub origin.
curl -fsSL https://raw.githubusercontent.com/Radicand-Labs/afara-release/main/install.sh | shChecks the download against checksums.txt and installs to ~/.local/bin. No sudo.
brew install --cask radicand-labs/tap/afaraUpdate with brew upgrade --cask afara.
scoop bucket add afara https://github.com/Radicand-Labs/scoop-bucketscoop install afaraUpdate with scoop update afara.
Then
$ afara auth login # sign in, choose a model $ cd your-repository $ afara init # pre-push hook and baseline $ afara # the interactive shell
Context goes into the coding agent you already use.
Afara runs analysis and injects context with whichever of these is installed and signed in. Pick one per run with --tool.
- Claude Code
npm install -g @anthropic-ai/claude-code - OpenAI Codex CLI
npm install -g @openai/codex - Gemini CLI
npm install -g @google/gemini-cli
Every command.
Set up once
A pre-push hook that stays out of the way.
On a branch that names a ticket, Afara checks that every new commit has been generated before it reaches the remote.
- Offline: reads only .git/afara, never the network
- Commits are never blocked, only pushes
- Tags and branch deletions are never checked
- Your own pre-push hook is kept and runs first
- Skip it once with git push --no-verify
$ git push afara: push of PAY-981-card-payment blocked for PAY-981. 2 commits being pushed have not been generated: e67658b, 0113454. Run Afara on this repository first. In the shell (run `afara`), or directly: afara generate --feature "card payment" Then push again. To skip this check once: git push --no-verify
Built to run without a terminal.
Every command except the shell runs unattended. Fail a build while the code contains behaviour the ticket doesn't describe.
Read the CI guideafara compare "card payment" --fail-on extra- --fail-on extra
- built, not in the story
- --fail-on missing
- in the story, not built
- --fail-on reordered
- different order
- --fail-on any
- any open finding
See Afara on one of your own features.
A 30-minute walkthrough with an engineer. Bring two repositories and a ticket, and see the context your agent would get.