Install¶
Before you start¶
- Node.js 22 or newer on your
PATH(no longer needed from v1.0). Check withnode --version. Today it backs the temporary compatibility fallback and a few helper scripts; if the shell Claude Code uses cannot findnode, the hooks that fall back to it are skipped without an error. - macOS or Linux. WSL on Windows works (it runs the Linux build). Native Windows is not supported yet.
The plugin fetches the Rust engine binary itself, checked against a pinned sha256, and needs curl or wget plus tar for that. If the download fails, the temporary Node.js fallback answers until the engine is installed. There are no npm packages to install.
The engine binary
It comes from this repository's GitHub Releases (ah-engine-v*) and is installed only if its sha256 equals the one pinned in the plugin's ah-engine.lock. A failed download or a mismatch installs nothing. Opt out with AH_ENGINE_BOOTSTRAP=0. Details, provenance and building it yourself: Binary download and verification.
Claude Code¶
Inside Claude Code:
The hooks apply to every project once the plugin is enabled. The statusline is a separate, optional step: Statusline.
Try it without installing
From a clone of the repository, claude --plugin-dir /path/to/anti-hall loads the
plugin into a single session.
Codex¶
The Codex port lives in the repository, so clone it first. The installer points Codex at the hook files inside your clone.
Add --dry-run to see what would change. The installer merges into an existing
hooks.json, keeps a .bak-<timestamp> copy of any file it changes, and turns on
[features] hooks = true in the matching config.toml.
The Codex skills are named anti-hall-<name> (for example anti-hall-doctor). The Codex
port is a separate mirror, not a copy: the hook list and skills differ where Codex works
differently. Details: the Codex port README.
Keep session notes out of git¶
anti-hall writes per-project notes (progress, history, handovers, reports) under
.anti-hall/ in your repository. It never edits your tracked files. Add this line to your
project's .gitignore so a git add . cannot commit them:
Or ask for /anti-hall:doctor --repair, which adds it to the repository's untracked
.git/info/exclude instead.
Check that it works¶
- In Claude Code, ask "is anti-hall working". That runs the
doctorskill, which runs live self-tests on every guard. - Or run
/anti-hall:settingsto see the active settings. - From a clone:
node plugins/anti-hall/hooks/doctor.js --check.
Optional: Jev¶
Jev is an optional classifier that gives some guards (such as the speculation check) a model's second opinion on top of pattern matching. It can only add blocks, never remove one. It is off by default, needs your own Vercel AI Gateway or TypeSafe API key, sends the text a guard judges to the provider you pick, and uses that provider's credits.
To turn it on, say "activate jev" (runs the jev skill). Details:
Jev classifier.