Releases: hyperlogue/captain-miao
Releases · hyperlogue/captain-miao
Release list
v0.2.1
Added
- Startup check for the terminal control channel. Being in a supported
terminal is not the same as being able to drive it. On Kitty, a remote-control
setup that is missinglisten_onor carries a mismatched password used to
surface one failed action at a time, with kitty's raw error in the status line;
captain-miao now proves the channel works before the dashboard takes over the
screen, and a failure prints which half of the setup is wrong — plus the config
block to fix it — while stderr is still visible.
Fixed
- Codex sessions on macOS track their transcript again. Codex rows showed no
context usage, never picked up the first-prompt title, and stayed green forever
after an Esc-interrupt: the rollout watch matched the wrong spelling of a
symlinked path, and macOS reports nothing at all for the way Codex writes (one
long-held file descriptor, appended to for the whole session). Context tokens
and interrupts now land with the event that caused them, and the watch parks
itself while a session is idle, so a session sitting at rest costs nothing. - Codex no longer refuses to start with "local database appears to be
damaged." The synthetic$CODEX_HOMEnow repairs entries where a real file
sits where a link into your real~/.codexbelongs — what Codex leaves behind
whenever it adds a new state file, which eventually split a SQLite database
across the two homes. - Review-pending detection for commands containing a quote. An
r3 watch
wrapped in something likenix develop … --command bash -c '…'was truncated
when normalised, so the row sat at "Task" instead of "Review" — and every
command wrapped that way collapsed onto a single entry in the learned
long-running set. CLAUDE_CONFIG_DIRis honoured when locating Claude's home. An instance
that relocates the agent's config dir no longer has the resume picker and the
bbrowser listing every project from the real~/.claudeinstead.nix buildworks again. The build's source filter droppedassets/, so
the logo the dashboard embeds at compile time was missing and the build failed.
Changed
- README rewritten around installation and configuration, gathering the
Cargo, npm, and Nix routes under one section and documenting every CLI
subcommand and config key in tables.
Security
- The recommended Kitty setup is now scoped by an authorization script.
Pairing the remote-control password with a smallis_cmd_allowedscript shuts
the in-terminal escape-code channel outright — the vector by which a shell
running inside a Kitty window, including one on the far end of an ssh session,
could otherwise drive your terminal — and confines even an authenticated
request to the eight commands captain-miao actually issues. The README carries
the script, and now says plainly that substituting your own password is what
makes that check real: the built-in default is a published constant and
authenticates nothing on its own.
Full Changelog: v0.2.0...v0.2.1
v0.2.0
First public release.
(0.1.0 was never a usable release: its four per-platform binary packages reached
npm, but the launcher that resolves them did not, and no GitHub Release was ever
cut. 0.2.0 is the first version published as a complete set.)
Added
- The whole fleet at a glance. Every agent session in one table — status,
working directory, model, context usage, git branch, and a live transcript
preview — so you can tell at a glance which session is working, which is
waiting on you, and which has finished. - Claude Code and Codex. Both agents are supported side by side, and rows of
either kind mix freely in one dashboard. - Full session lifecycle from the dashboard. Launch, resume, fork, and kill
sessions without leaving it, with a filterable picker over recent working
directories and path completion for new ones. - Status detection that distinguishes waiting from working. Sessions blocked
on your approval or an answer are flagged and sorted to the top;sjumps to
the next one needing attention. - Background jobs split into Task and Server. A build or test the agent is
waiting on keeps the session green, grouped with the active sessions, and your
machine awake. A dev server or watcher the agent parked does not — it goes
yellow, sorts with the idle sessions, and flags itself for follow-up. Common
dev servers are recognised out of the box, and anything unrecognised that runs
past an hour is learned, so it is classified correctly from the first moment
next time. - Review-pending detection for r3. When
every background job a session is waiting on is anr3 watch, the agent is
blocked on a human review rather than working, and the row says so. - Kitty and zellij backends. captain-miao brings no terminal of its own — it
drives the one you already run, so every session is a native window or pane. - Switchable session layout. Stacked (all sessions in one shared
cm:sessionstab, the dashboard being the switcher) or per-tab (one tab each,
switchable with your terminal's own keys).Space ltoggles it, and the choice
persists. - Keep-awake. Prevents the machine from sleeping while any session is still
working (caffeinateon macOS,systemd-inhibiton Linux), with an indicator
shown only while it is actively inhibiting. - Pin, mute, and follow-up flags, plus per-directory icon and colour marks
with a searchable emoji picker. - Configurable keybindings. Every Normal-mode command is remappable from a
[keybinds]table inconfig.toml, including theSpace-leader ones. - Prebuilt binaries on npm and GitHub Releases for macOS (Apple silicon and
Intel) and Linux (x86-64 and arm64).npx @hyperlogue/captain-miaoruns the
matching native binary with no Rust toolchain and no runtime download.
Security
- Session state is written owner-only —
0600files under0700directories —
because state records your prompt text, working directories, and session ids.
A tree created by an earlier build is tightened in place on the next run.
Known limitations
- Remote hosts over SSH are experimental and off by default. The full
cross-host lifecycle is implemented but unverified against a real remote host,
and restart and fork remain local-only. Build with--features remoteto try
it; without it the dashboard is strictly local-only. t(move window to tab) is unsupported on zellij, which has no CLI to
reparent a pane across tabs. The key reports it and the help entry is hidden.- Linux binaries are glibc builds (built against glibc 2.35, so Ubuntu
22.04+, Debian 12+, RHEL 9+). musl/Alpine needs a source build.
Full Changelog: https://github.com/hyperlogue/captain-miao/commits/v0.2.0