kingshand

kingshand - you rule, it executes

One session doing all of it, without wasting context.

kingshand is the single Claude Code session you talk to. Describe a piece of work and it writes the brief, waits for your word, and runs the worker itself - in its own copy of the repository, so several things can be in flight without treading on each other. Windows, PowerShell 7, MIT licensed.

What the one session does

Running one Claude Code session is easy. The trouble starts at three: a fix in one repository, an investigation in another, a flaky test somebody has to sit with. You become a tab-juggler - three terminals, three sets of context in your head, and no way of knowing which session went quiet an hour ago because it is waiting on a question nobody is there to answer.

kingshand makes one session the only one you talk to. It dispatches the others, watches their screens rather than a status word, and comes back to you when there is something to decide. Six things make that worth doing, and the heading at the top of this page is what they add up to.

Replies you can actually read
Next action first, numbered steps, lists capped at five, no preamble - not a wall of terminal output pasted into the chat. The herald skill owns that shape and it is on in every session without being asked for; say you want the long version and it steps out of the way.
Anything worth comparing gets rendered, not scrolled past
A diff, a list of requirements, a review gate, anything you have to decide on: it opens as a surface in your browser instead of going by in chat, because a choice buried in a paragraph is a choice you have to dig back out. That surface is lavish-axi, one of the six tools the installer fetches or names.
A review gate in front of the remote, when you ask for one
Register a project no-mistakes and every change made in it goes through automated review, tests, lint and documentation before it can reach a remote. It is one of three delivery postures a project can be registered with, and it is opt-in: a project registered local-only stops on a finished branch and never calls the gate at all.
The work is written straight through
You describe it once. The session writes the brief, makes the isolated copy of the repository, starts the worker, watches it, and brings back what it found - there is no point at which you stop and hand the next step to another session. What it will not do is decide for you: nothing is dispatched before you approve the brief, and nothing lands before you approve that, unless you have registered that project to proceed without asking.
It writes down what it learns, as it learns it
Every durable file it keeps for you is listed in an index as it is written, so a decision you already made cannot sit in a file nobody opens. Operational facts go to a memory file, each dated and backed by the session that produced it, rather than being re-discovered next week. Being straight about the limit: the pass that curates that memory is a command you run - /chronicle - and nothing runs it on your behalf.
And that memory is kept to a budget
The two memory files are measured against what a session start can afford to load, and the session-start digest says when they have outgrown it. So the thing loaded at the top of every session cannot grow forever, or crowd out the standing instructions you stated yourself - which are a separate file the tool is not permitted to edit. Curating it back down is the same /chronicle pass.

See it run

The check kingshand runs against its own toolchain, as it came off a real machine. It is the transcript itself typing - no video, no recording and nothing scripting it, which is the same thing the headline on emgeelabs.in is doing a few hundred lines further up the same stylesheet.

PS C:\repos\kingshand> .\bin\Test-CrewPrereqs.ps1
Checking crew prerequisites
  OK  claude         C:\Users\you\AppData\Roaming\npm\node_modules\@anthropic-ai\claude-code\bin\claude.exe
  OK  git            C:\Program Files\Git\cmd\git.exe
  OK  lavish-axi     C:\Users\you\AppData\Roaming\npm\lavish-axi.ps1
  OK  tasks-axi      C:\Users\you\AppData\Roaming\npm\tasks-axi.ps1
  OK  gh             C:\Program Files\GitHub CLI\gh.exe
  OK  claude.exe     C:\Users\you\AppData\Roaming\npm\node_modules\@anthropic-ai\claude-code\bin\claude.exe
  OK  herdr          C:\repos\kingshand\tools\herdr\herdr.exe
  OK  no-mistakes    C:\repos\kingshand\tools\no-mistakes\no-mistakes.exe
  OK  Pester         6.1.0
  OK   lavish port    4388
  OK   gitignore     C:/Users/you/.gitignore_global

All prerequisites satisfied.
kingshand checking its own prerequisites, printed as it came out of a real run and typed back out here line by line. Only the home directory and the clone path were changed. The script verifies what kingshand requires, the optional extras it will use when they are present - those are reported as notes rather than failures - and two machine settings it reads. It runs in PowerShell 7, so the shell it needs prints no line of its own. The check installs nothing: it reports what it found and where, and a missing tool is named with the command that fixes it. Ask for reduced motion, or print the page, and the same fifteen lines are simply there.

Getting started

Six things worth knowing before you begin, each with the thing you would actually type. The install commands are not repeated here - they are in the repository's README, beside the code they install, which is the copy that stays right.

Open it, and say anything at all
The screen is empty when the session opens. That is normal and not a failed install: the session-start digest is handed to the session as context rather than printed, so nothing is shown until you type. Say hello. The first reply opens by telling you what is registered, what is running and what is waiting.
Register a repository before you give it work
/annex D:\code\your-repo - any path, on any drive. It records what that project is allowed to do and it never clones anything. Nothing is dispatched into a repository you have not registered, so this is the step that comes first.
Ask for the work in one sentence
fix the flaky login test in your-repo. What comes back is a brief for you to approve, not a running worker - and the same sentence is all that is needed whether the work is a bug, an investigation or a change.
Say how you want to be worked with, once
Standing instructions live in instructions.md. It is read at the start of every session and never written to, which is enforced by the permission layer rather than asked for in prose. A line out of the template that ships with it: Default a new project to local-only until I say otherwise.
Ask where everything stands
/survey for the current picture - what is registered, what is live, what is queued. /audience for what happened in this session while you were looking elsewhere. /afk when you are stepping away, which holds the fleet and batches everything that does not need you.
Curate its memory before a context reset
/chronicle. It sweeps the session for anything durable that so far exists only in the conversation, files each finding where it belongs, and prunes the memory files back inside their budget.

What decides whether an install works

The commands themselves, and every requirement with the command that installs it, are in the repository's README - the copy that ships beside the code. This subdomain's llms.txt carries them as plain text for anything reading without a browser.

How a piece of work moves through it

  1. You describe the work in the one session you talk to.
  2. It writes a brief and waits for your word. Nothing is dispatched before you approve it.
  3. It creates a git worktree inside the target repository, writes the worker's settings and marks the worktree trusted, so an unattended worker does not stop on a folder-trust dialog.
  4. The worker runs as an ordinary interactive Claude Code session in a terminal kingshand owns, which is what lets it read a worker's screen while it runs and send text to one that has gone astray.
  5. The worker leaves a report.md. That reaches the landing gate, and the landing gate reaches you.

What it is not

Permissions, stated before you install

kingshand ships with Claude Code's permission prompts turned off for itself and for every worker it starts: neither will ask you to approve a tool call. That is deliberate - the session reads diffs, runs git and merges locally hundreds of times in a session - but it is a real decision, and better made knowingly. What still constrains it:

If you would rather approve each call, the setting is one line in .claude\settings.json and removing it restores the prompts.

Where everything is