Install
Install the vexillum binary with Homebrew or the curl script, pick a release channel, and check your environment.
vexillum supports macOS and Linux, on amd64 and arm64.
Requirements
- macOS or Linux, amd64 or arm64 (Windows is not supported)
- Claude Code, installed and logged in (subscription or API key), for the default commander and soldiers
- herdr (
brew install herdrworks) - a git repository for your project
- optional:
gh(forvx ship) - optional: Pi or OpenCode, to run the commander or a model profile's soldiers on them instead (see Pi as the commander, OpenCode as the commander and Models for other harnesses); a project whose commander is not Claude Code needs its own CLI here instead
vx doctor checks that the CLI of each of the project's commander harnesses (Claude Code by default), herdr and git are present, and that the project scaffold is healthy. It does not check that Claude Code is logged in, your OS or architecture, or that you are inside a herdr pane; vx dispatch only works inside a herdr pane.
Soldiers have full host access
A soldier runs with full permissions (Claude Code with --dangerously-skip-permissions, Pi, which has no permission prompts, or OpenCode with --auto), as your OS user, with no container or sandbox. Landing a mission is the approval gate: nothing reaches your project's real history until you approve it. Never dispatch against a repository or machine where reading credentials would be a problem.
Install the binary
brew install isaias-alt/tap/vexillumThe script:
- Detects your OS and architecture;
- Uses Homebrew if
brewis on your PATH (brew install isaias-alt/tap/vexillum, orbrew upgradewhen the formula is already installed); - Otherwise downloads the release archive for your platform and verifies its sha256 checksum against the release's
checksums.txt, refusing to install on a mismatch; - Installs the binary into
/usr/local/bin, or into~/.local/binwhen you cannot write to/usr/local/bin(it warns if that directory is not on your PATH); - Checks that a working
vxnow exists (in the install directory, the Homebrew prefix or your PATH) and exits with an error if it does not.
Without options it installs the latest stable release and never a pre-release. To try a canary build or install an exact version, pass --channel canary or --version <tag>; both are direct downloads that skip Homebrew. See Release channels.
Check it worked:
vx --versionTo update the binary later, run vx upgrade. See Upgrading.
Install what vexillum orchestrates
vexillum does not install its tools; it checks for them.
| Tool | Needed for | Required |
|---|---|---|
| Claude Code | the default commander and soldiers | yes, unless the project's commander is Pi or OpenCode |
| Pi, OpenCode | a commander or a model profile's soldiers on that harness | only for those |
| herdr | the panes soldiers run in | yes |
gh (GitHub CLI) | vx ship, and landing a shipped PR | only for those |
Run the check any time:
vx doctordoctor is read-only. It prints [ok] or [missing] for each tool, the herdr version, ~/.vexillum/, whether the current project is initialized and is a git repository, and, for an initialized project, the state of the vexillum block in AGENTS.md or CLAUDE.md, whether CLAUDE.md imports AGENTS.md (when the block is in AGENTS.md), each skill, whether models.json is valid, and the sentinel Stop hook: whether it is registered, whether it finds vx from a bare environment and whether a sentinel is running:
[ok] AGENTS.md vexillum block - current (en)
[ok] CLAUDE.md imports AGENTS.md
[ok] skill vexillum - installed, current
[ok] models.json - valid, 5 profiles
[ok] sentinel Stop hook - registered in .claude/settings.json
[ok] sentinel Stop hook finds vx - found with a minimal environment
[ok] sentinel - running, 1 sentinel await(s) waitingIt exits non-zero when a required check fails. A Stop hook that cannot find vx is a [warn] with the fix, never a failure.
Troubleshooting: macOS quarantine
A tarball downloaded in a browser and extracted by double-click gets a quarantine attribute, and the first run may be blocked ("cannot verify the developer"). Clear it with:
xattr -d com.apple.quarantine "$(command -v vx)"Homebrew and the curl installer do not hit this.