You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
Added
CLI-agnostic hooks: one hook entry (murmur hook <event> --client <cli>) for Claude Code, Codex, Gemini CLI and zcode, each speaking that CLI's hook dialect.
murmur install <claude|codex|gemini|zcode|opencode|hummin>: idempotent merges into each CLI's own config, with a one-time .bak-murmur backup of every touched file.
opencode plugin (adapters/opencode/murmur.ts): tools, push with promptAsync, presence.
Hummin extension (adapters/hummin/murmur.ts): tools, push with sendUserMessage, and a model-free /murmur.
Host-process identity (src/proc.ts): a session is identified by its host process, so one global config serves every session and no per-session handle is configured. Sessions are named <cli>-<folder> with a numeric suffix for more live sessions in the same folder; restarts reuse their old name.
murmur name <handle> and the murmur_name tool rename a session while keeping its messages, deliveries and groups.
murmur send --as <handle> and murmur reply --as <handle> for scripted agents. Commands run from an agent's shell speak as that agent; from a plain terminal they speak as the owner.
murmur slash: the /murmur backing, with a quoted-heredoc form so quotes, $(...), backticks and ; arrive verbatim, --claude-escaped for Claude Code's ! escaping, and bare discovery output (usage, peers, groups).
Delivery proof (src/proof.ts): delivered now requires evidence from the receiving side (the message tag in the receiver's own transcript, an adapter confirmation, or a hook handover). sent is never reported as delivered.
Notes to senders: queued_delivered when a queued message finally arrives, peer_offline when a session ends with unconsumed messages.
murmur_ack to tell senders a message was seen and will be answered later.
Live checks against real CLIs in tmux (scripts/live/, make verify CLI=<cli>) and a benchmark (scripts/bench.mjs).
Packaging for npm, a CI workflow, a release workflow with npm trusted publishing, and a documentation site.
Changed
Claude Code native transport corrected from the Claude binary's own injection recipe: {"type":"auth",...} then {"type":"user","message":{...}}. v0.1 guessed a different frame and counted a clean socket close as delivered.
Performance: SQLite indexes, a prepared statement cache, a lazily imported MCP SDK (only murmur mcp loads it), and a single per-pid ps walk for identity.
Wire protocol version 2.
Removed
scripts/e2e.mjs, replaced by the live checks in scripts/live/.