Installation
Install warden from npm or build it from source, wire up agent hooks, and check your setup.
The npm release of @delacour/warden is pending. These commands are the intended install path and work once the first version is published. Until then, build from source.
Install warden
npm i -g @delacour/warden && warden install # or: bun add -g @delacour/warden && warden installwarden install links ~/.local/bin/warden (what the hooks call) to the global package, so npm i -g @delacour/warden@latest upgrades both.
For a one-shot run with nothing installed globally:
npx @delacour/warden install # or: bunx @delacour/warden installThis copies the binary to ~/.local/bin/warden and wires the hooks. It only puts warden on your PATH if ~/.local/bin is already on it, which macOS doesn't do by default. If warden isn't found afterwards, use the global install. To update a one-shot install, run warden update, which fetches it from npm, or re-run npx @delacour/warden@latest install.
The package is a small node shim plus one prebuilt binary per platform (@delacour/warden-{darwin,linux}-{arm64,x64}, an optional dependency). macOS and Linux on arm64 and x64 are supported; Windows isn't.
Choose agents
warden install # binary + hooks for every detected agent; shows a diff, asks first
warden install --claude # force Claude Code only: skill + hooks + argent rule
warden install --codex # force Codex only: hooks in $CODEX_HOME/hooks.jsonEvery agent-config change shows a diff and asks first. --yes skips the prompt, --dry-run only prints, and a non-TTY without --yes skips. Merges are idempotent and keep all other config. See Agents for what gets installed.
Check it
warden doctordoctor checks warden's home, the db, device tools (xcrun simctl, adb, emulator), how warden was installed (and how to upgrade it), PATH, Claude/Codex hooks and skill, and stale leases.
From source
From a checkout of the warden repo:
bun install
bun run --cwd apps/cli install:global # local build of this checkout → ~/.local/bin/warden
warden install~/.local/bin must be on PATH. Set WARDEN_HOME to override ~/.warden. warden update rebuilds from the checkout.
Agent skill only
For Claude Code, Codex, Cursor and others via the skills CLI:
warden skill show | pbcopy # raw SKILL.md to paste by hand
warden skill install # this binary's embedded copy, global
warden skill install --from github # delacournz/warden, updatable via `skills update`
warden skill install --project -a claude-code -y # into the current project, one agent, no promptsThe skill's source is skills/warden/SKILL.md, embedded in the binary. npx is used when bunx isn't available; --dry-run prints the command.
In GitHub Actions
The repo is private, so CI installs the release binary with a token instead of npm:
- uses: delacournz/warden/.github/actions/install-warden@main
with:
token: ${{ secrets.WARDEN_RELEASE_TOKEN }}WARDEN_RELEASE_TOKEN needs Contents: read on delacournz/warden (fine-grained PAT or GitHub App token). Allow the action's repo under Settings → Actions → General → Access. The action downloads warden-<os>-<arch> from the latest (or version:) release, checks checksums.txt and adds warden to PATH.
A clean macOS runner needs no setup beyond an installed iOS runtime: the profile's simulators are created on claim, cloned from a golden image built on first use (cache ~/Library/Developer/CoreSimulator/Devices to skip that next time).