Install kingshand
kingshand runs from a clone of its own repository. You clone it, open Claude Code in that directory and tell it to set itself up; the installer checks what is on the machine, names anything missing with the command that fixes it, and installs nothing unless you ask it to.
Install and first run
Clone it wherever you keep things. Any drive, any folder, spaces in the path are fine.
git clone https://github.com/emgee-labs/kingshand
cd kingshand
claude
Then type set it up - or setup, or
/setup. Every skill ships inside the repository, so they are readable in a fresh
clone with nothing installed yet. The installer names what it found, what it installed, and
what still needs you.
The manual equivalent, if you would rather run it yourself:
.\install.ps1 -InstallMissing
-InstallMissing is opt-in. Without it nothing is installed and each missing tool
is reported with the exact command that fixes it. Nothing self-elevates. Open a new shell
afterwards so KINGSHAND_HOME is picked up.
There is no one-line remote installer
There is no irm ... | iex for kingshand, and a page that offered one would be
offering something that does not work. install.ps1 resolves its own location and
imports PowerShell modules from the bin\ directory beside it, so it only runs
from inside a clone. The three commands above are the install path, and they are the ones the
repository itself documents.
What you need
Six things, and the installer fetches or names every one of them.
| Requirement | Why | Install |
|---|---|---|
| PowerShell 7+ | every script targets it | winget install --id Microsoft.PowerShell |
| Claude Code | the session you talk to, and every worker | npm install -g @anthropic-ai/claude-code |
| Git for Windows | worktrees are the isolation | winget install --id Git.Git |
lavish-axi | the review surface both gates render to | npm install -g lavish-axi |
tasks-axi | the durable backlog | npm install -g tasks-axi |
herdr | the terminal every worker is spawned and watched through | fetched by the installer |
herdr is the one thing fetched directly. It is checked against the SHA-256
published at https://herdr.dev/latest.json before it is extracted; a mismatch
deletes the download and installs nothing, and an offline machine is told so in one line
rather than shown a web exception.
What the installer writes outside the repository
Three things, each named as it is written:
- The user environment variable
KINGSHAND_HOME. - The user environment variable
LAVISH_AXI_PORT. - One line,
.claude/worktrees/, in your global gitignore - because workers live inside your own repositories and would otherwise show up there as untracked changes. It creates that file and pointscore.excludesFileat it when the config is unset, and it never writes the line twice.
Nothing is linked into ~\.claude\skills\, so a Claude Code session in any other
directory is unaffected. The installer is idempotent: running it twice does nothing the second
time except say so, and it never overwrites an existing instructions.md or an
existing config value without telling you what it left alone.
Optional, and only if you need them
- The GitHub CLI, for pull requests
ghis needed by the push-capable postures -direct-PR,no-mistakes,no-mistakes-prod-only- because those end at a pull request. Work that stops at a finished local branch never calls it.winget install --id GitHub.cli, thengh auth login.- The review gate
no-mistakesis needed only by projects registeredno-mistakesorno-mistakes-prod-only.setupasks whether you want it, and.\install.ps1 -WithReviewGateadds it at any time. Do not runnpm install -g no-mistakes: that name on npm belongs to a different, unrelated tool, which installs cleanly and then does not work.- Azure DevOps
- Only if you work ADO tickets. Reading a work item straight into a brief needs the
ado-local-mcpserver configured in Claude Code, plus an organization and a token. Nothing in the installer needs it; without it you paste the ticket or describe the work, which is the ordinary path. - Pester 6+
- Only to run kingshand's own test suite.
Install-Module Pester -MinimumVersion 6.0.0 -Force -SkipPublisherCheck -Scope CurrentUser, or let-InstallMissingdo it. Tests run withInvoke-Pester -Path .\tests.
After it is installed
- Open a new shell,
cd kingshand, runclaude. The screen will be empty - that is normal and not a failed install. Say anything, and the first reply tells you where things stand. - Write your standing instructions in
instructions.md: how you want to be addressed, your delivery defaults, your conventions. Read every session, never written to, gitignored. - Register a repository with
/annex D:\code\your-repo- any path on any drive. It records the delivery posture and never clones. - Give it work: fix the flaky login test in your-repo. You get a brief to approve before anything is dispatched.
- Check in with
/surveyfor where everything stands, and/audiencefor what you missed.
The design decisions explain how workers are actually run and watched, and the overview covers what the tool is for.