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
heraldskill 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-mistakesand 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 registeredlocal-onlystops 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
/chroniclepass.
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.
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
/surveyfor the current picture - what is registered, what is live, what is queued./audiencefor what happened in this session while you were looking elsewhere./afkwhen 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
- It is Windows only. Every script targets PowerShell 7. There is no macOS or Linux build and there is not going to be one; on those the tool to use is firstmate.
- You clone it. There is no hosted service, no account and no installer to download - the repository is the distribution, and it is MIT licensed.
- There is no one-line remote installer. A page offering
irm ... | iexwould be offering something that does not work:install.ps1resolves its own location and imports PowerShell modules from thebin\directory beside it, so it only runs from inside a clone. - Nothing is installed unless you ask for it. By default the installer reports each missing tool with the exact command that fixes it and installs none of them. Nothing self-elevates, and every value it writes outside the clone is named as it is written.
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
- You describe the work in the one session you talk to.
- It writes a brief and waits for your word. Nothing is dispatched before you approve it.
- 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.
- 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.
- The worker leaves a
report.md. That reaches the landing gate, and the landing gate reaches you.
What it is not
- It does not do the project work itself. It dispatches and supervises; the workers write the code.
- It is not the tool to reach for on macOS or Linux. That one is firstmate by Kun Chen, which kingshand is a Windows-native rebuild of ideas from, and which does some things kingshand cannot.
- It is not a hosted service, and there is no release to download. The clone is the release: nothing is tagged, nothing is packaged, there is nothing to sign up for and no account. A Pester suite ships with it.
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:
- Workers only ever run inside their own git worktree, never in your checkout.
- Nothing is dispatched into a repository you have not registered.
- Nothing pushes unless that project is registered with a push-capable posture, and nothing is merged for you at all - a pull request is where the work stops.
- Reads of
~\.ssh, AWS credentials and kingshand's own credentials directory are blocked, as are edits to yourinstructions.md.
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
- Getting started - six pointers with the thing you would type, and the four facts that decide whether an install works.
- The repository's README - the install commands and every requirement, beside the code they install.
- Design decisions - the records kept about how workers are run and controlled, mirrored from the repository.
- llms.txt and llms-full.txt - this subdomain as plain text.
- emgee-labs/kingshand - the source, the tests, and the MIT licence.