Repository navigation
herdlet 0.7.0
Six friction points found while orchestrating a 12-hour herd, plus a version
guard. All of it is additive: no subcommand or flag was renamed or reordered.
herdlet spawnlaunches a Claude Code worker in one command: it splits
your own pane, pins--modeland--effort(both required, so a worker can
never inherit your priciest model by accident), mutes per-turn notifications,
keeps the pane readable, and registers the worker asspawningbefore its
first hook fires. That last part closes the pre-registration blind spot: the
worker is addressable by name from t=0, including while it sits on a trust
prompt. With--brief PATHit takes the title from the brief's first heading
and sends the workerRead <brief> and do it.once it is up.- A
limitedstate. An agent parked on a usage-limit banner fires no hook,
so its record used to sayworkingforever and every waiter on it ran to
timeout. The daemon now reads the last 8 non-blank lines of eachworkingor
spawningworker's visible pane every 30 seconds and reportslimitedwhen it
sees a real banner. Add it to your waits:--state done,blocked,limited. The
pattern matches Claude Code's own wording;HERDLET_LIMIT_PATTERNoverrides it
andHERDLET_LIMIT_SWEEP=0turns it off. herdlet peek --transcriptreads the worker's own transcript file instead
of scraping its screen, and prints the last N assistant messages verbatim.
A pane capture wraps, scrolls and hides a full-screen TUI's history; the
transcript is the real text.herdlet send --file PATH(-for stdin) takes a message from a file,
and anything multi-line or over 200 characters is now delivered as one
bracketed paste instead of being typed character by character. A long message
can no longer be cut in half by the Enter that follows it, and tmux's 16 KiB
command-line ceiling is out of the way.wait --timeout-okturns a timeout into a result with exit 0 instead of
an error with exit 2. Use it in harnesses that read a background command's
exit code as a failure, such as Claude Code's background Bash. Default
behaviour is unchanged, so the documented chunked-wait loop still works.
approve --waittakes the flag too, where it only changes the exit code.- PreCompact awareness.
herdlet getnow showscompacts, how many times
an agent has compacted its context. A worker on its second compaction has
already lost detail: that is your signal to end its phase and hand over to a
fresh worker. State and message are untouched by a compaction. - Version guard. Every command except
hookwarns on stderr when it finds a
daemon older than itself, with the command to restart it. Thelimitedsweep
and thecompactscounter live daemon-side, so an old daemon silently serves
the old behaviour.
After upgrading, restart the daemon so the daemon-side features are served:
pkill -f 'herdlet.*serve' and then any herdlet command. Agents re-register on
their next hook event and the registry survives the restart.