Get started

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 herdr works)
  • a git repository for your project
  • optional: gh (for vx 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/vexillum

The script:

  1. Detects your OS and architecture;
  2. Uses Homebrew if brew is on your PATH (brew install isaias-alt/tap/vexillum, or brew upgrade when the formula is already installed);
  3. 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;
  4. Installs the binary into /usr/local/bin, or into ~/.local/bin when you cannot write to /usr/local/bin (it warns if that directory is not on your PATH);
  5. Checks that a working vx now 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 --version

To update the binary later, run vx upgrade. See Upgrading.

Install what vexillum orchestrates

vexillum does not install its tools; it checks for them.

ToolNeeded forRequired
Claude Codethe default commander and soldiersyes, unless the project's commander is Pi or OpenCode
Pi, OpenCodea commander or a model profile's soldiers on that harnessonly for those
herdrthe panes soldiers run inyes
gh (GitHub CLI)vx ship, and landing a shipped PRonly for those

Run the check any time:

vx doctor

doctor 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) waiting

It 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.

On this page