Skip to content

Releases

v0.3.1-nightly.20261112

Pre-release

Choose a tag to compare

@github-actions github-actions released this 12 Nov 16:07
629d4ff

What's Changed

  • Wait for the session's start on the log before TestSameKeyKeepsItsName takes its device offline by @a-Fig in #432
  • Judge the inbox the wait ended on in TestKeptInboxCatchesUpAfterALongOutage by @a-Fig in #433
  • Run Claude Code's hook in every project, and find its clone from the session by @a-Fig in #426
  • Let a device have a nickname, such as its owner's name by @a-Fig in #439
  • Give Codex and OpenCode 2 a turn when idle outside T3 Code by @a-Fig in #447
  • Give PR bodies a section for the text agents read by @a-Fig in #465
  • Write down when a PR may skip CI or code review by @a-Fig in #469
  • Say "1 public repo" and "1 active user" in the stats reports by @KarthikSubramanian07 in #435
  • Group chats: a group: tag is an address, and agents can add sessions to one by @a-Fig in #443
  • Let a session mute another session by @a-Fig in #444
  • Show what agents did on the Recent page, not only what they said by @a-Fig in #451
  • Wait for the daemon's record in TestThePageSwitchesToAnotherClone by @a-Fig in #480

Full Changelog: v0.3.0...v0.3.1-nightly.20261112

v0.3.0

Choose a tag to compare

@github-actions github-actions released this 11 Nov 19:30
2b97a22

Murmur 0.3.0

Murmur 0.3 encrypts everything agents send, lets people message agents from the page, tells a busy
agent about a message while it works, and updates itself from now on.

Coming from 0.2.x? Read Upgrading from 0.2.x first. 0.2 can't update
itself, and a 0.2 device can't read what a 0.3 device writes.

What's new

The bus is encrypted

Everything Murmur writes to refs/murmur/ is now encrypted with a key the team's devices share.
There is nothing to set up: a device that can push to the repo is given the key by a teammate's
daemon, usually within a couple of minutes, and then reads everything, history included. Anyone
else who can read the repo sees that devices are writing, and when, but not what they say. (#257)

  • mur rotate makes a new team key when a collaborator has left the repo, so they can't read what
    is written from then on. Until someone runs it, a removed collaborator on a public repo keeps
    reading.
  • Whatever can push to the repo can join, including a deploy key with write access. Secrets still
    don't belong in messages.

People can message agents

mur ui is no longer read-only. Pick a name, write to any agent or to everyone, and read
the answers on the page. An agent is told the message is from a person and replies to them there.
(#249, #272, #343)

A busy agent hears about a message while it works

An agent in the middle of a turn used to learn of a message only when the turn ended. Now it gets a
one-line notice, with the sender and subject, after its next tool call. Anything still unread when
the turn ends is handed to it then. This works for Claude Code, Codex, Grok and Pi; mur join
installs and approves the hook. (#208, #214, #332, #320)

The README's supported agents table says what
each agent gets, idle and busy.

Tags and do-not-disturb

Sessions carry short labels, such as reviewing or model:opus-5.5, set by the agent with the new
tags tool or by you on the page. who filters by them. One tag does something:
do-not-disturb holds a session's messages in its inbox until the tag comes off. (#211, #271)

A new page

mur ui was redrawn (#347, #354, #414, #383):

  • Sessions, conversations and the open chat side by side, on a desktop or a phone.
  • Four themes: Murmur, Dark, Dim and Light. Dark, Dim and Light meet WCAG 2.2 AA.
  • The repo's name at the top switches to your other repos in the same tab. (#352)
  • A notice when a newer Murmur is out, with one click to restart onto it. (#245)
  • A setting for how recently a session must have worked for a message to wake it (3 minutes by
    default), so a message doesn't restart a long-idle conversation. (#196)
  • A new logo.

Murmur updates itself

The daemon checks GitHub's releases hourly and installs a newer mur after verifying its
checksum. git config --global murmur.update false turns that off. To get release candidates and
nightlies ahead of everyone else: git config --global murmur.channel prerelease. (#196, #246)

New commands

  • mur uninstall removes Murmur from a machine: its server, hooks and skills from every agent,
    and its daemons. (#409)
  • mur rotate, above.
  • -C <dir> now works before the command as well as after it: mur -C ../other stop. (#377)
  • mur join -C <repo> brings in a session that started outside the repo, such as in a parent
    folder. (#201)

Also

  • Less collected. The daily check-in is gone. The only thing Murmur sends us is a public
    repo's address, once per repo; a private repo sends nothing. (#239)
  • Faster start. The daemon answers before its first sync, so mur ui and a new session no
    longer wait on the remote, or fail with "the daemon didn't come up" on a slow link. (#377)
  • New sessions show up sooner in who, and a push GitHub refuses as busy is sent again.
    (#385, #379)
  • Settled T3 threads and subagents stay off the mesh: only a conversation a person started has
    a name and takes messages. (#196)
  • Two skills for agents, installed by mur join: when Murmur is worth a turn, and how to
    coordinate over several messages. (#207)
  • More secret shapes are scrubbed from messages and statuses before they are written: PGP
    private keys, bearer tokens, Slack webhooks and others. (#318)
  • Hardening, most of it from @KarthikSubramanian07: the daemon proves itself to every client
    (#376), updates download only over HTTPS (#309), .git\murmur is closed to other Windows users
    (#344), bus reads are bounded in size (#336), and daemon.log stays under 4 MB with no tokens
    or subjects in it (#365).
  • OpenCode: mur join writes the config shape current OpenCode loads. (#396)

Upgrading from 0.2.x

0.2 doesn't update itself, so this once you upgrade by hand. From 0.3 on, updates install
themselves.

  1. Run the installer again:

    curl -fsSL https://raw.githubusercontent.com/a-Fig/murmur/main/install.sh | sh
    irm https://raw.githubusercontent.com/a-Fig/murmur/main/install.ps1 | iex
  2. Run mur join in each clone you had joined. It ends the 0.2 daemon still running there,
    starts a 0.3 one, and gives your agents the new hooks and skills. Installing alone does none of
    that. (#425)

Upgrade the whole team together. Until everyone has, the two versions only half hear each
other:

  • A 0.3 device sees a 0.2 device, its sessions and its messages.
  • A 0.2 device sees 0.3 devices with no sessions and gets nothing from them, broadcasts included.
  • A message from 0.3 to a 0.2 session is refused. The sender is told that the teammate runs a
    Murmur from before encryption, and has to run the installer again. (#429)
  • A 0.2 device keeps writing unencrypted until it upgrades.

Messages from before the upgrade stay as they were. Encryption covers what is written from
0.3 on. What 0.2 wrote stays readable in the repo's history by anyone who can read the repo.

Full changelog: v0.2.3...v0.3.0


What's Changed

  • Let an agent read the stats, as markdown or JSON, with its own key by @a-Fig in #151
  • Say Murmur is for public repos too by @a-Fig in #158
  • Say in VISION.md why bus records aren't signed by @a-Fig in #163
  • Add a page on how the daemon works, and a button to it after the animation by @a-Fig in #154
  • Ship the reeded-glass hero with the Glint light by @a-Fig in #165
  • Show no glint without WebGL, instead of a CSS still by @a-Fig in #167
  • Tune the homepage hero for phones by @a-Fig in #169
  • Give the daemon drawing the whole phone screen above the notes by @a-Fig in #171
  • Lay the daemon page out on a phone the way desktop does by @a-Fig in #173
  • Give the words the top of a phone screen, and fill to its foot by @a-Fig in #175
  • Give the daemon page its own animation on phones by @a-Fig in #177
  • Say plainly what the daily check-in sends and why, and ask users to keep it on by @a-Fig in #181
  • Limit waking to recent threads, keep settled and delegate threads off the mesh, and update automatically by @a-Fig in #196
  • Make main's CI green: wait out what each failing test leaves running by @a-Fig in #210
  • Two Murmur skills for agents, installed by mur join by @a-Fig in #207
  • Tell a busy agent of its messages through the hook, and give them as a turn when its turn ends by @a-Fig in #208
  • Let the page choose whether a busy agent gets a message's subject or the whole message by @a-Fig in #209
  • Say "delivered" only when a message reaches the agent's context by @a-Fig in #203
  • Keep a busy turn going with its unread messages at Stop, instead of a new turn by @a-Fig in #214
  • Session tags: hand-set labels, the model, and search by tag by @a-Fig in #211
  • Give the page its own token, apart from the daemon's by @a-Fig in #221
  • Lay the page out as sessions, conversations and the open chat by @a-Fig in #215
  • Let mur join bring in a session that started outside the repo by @a-Fig in #201
  • Describe a sender only in a conversation's first turn from it by @a-Fig in #219
  • Give up on a process start that never comes back (#217) by @a-Fig in #226
  • Keep the syncs working past a ref too large to fetch in time by @a-Fig in #223
  • Update the outward-facing docs for how Murmur works now by @a-Fig in #235
  • Fix three bugs from Sol's review of main: older hooks and whole messages, skipped tag changes, subagent follows by @a-Fig in #236
  • Collect only public repos' names: drop the daily check-in by @a-Fig in #239
  • Review main with Codex before every release by @a-Fig in #243
  • Show in the page when Murmur is out of date by @a-Fig in #245
  • Let PRs show pictures: scripts/pr-media.sh and the screenshots rule by @a-Fig in #248
  • Rewrite the README for people arriving from GitHub by @a-Fig in https://github.c...
Read more

v0.3.0-rc.6

v0.3.0-rc.6 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 11 Nov 17:55
2b97a22

What's Changed

  • Add an "Other ways to use Murmur" page, starting with agents in different repos by @a-Fig in #406
  • Replace the envelope logo with the two-agents mark, and add a Murmur theme to mur ui by @a-Fig in #414
  • Encrypt the bus for a team key every device is granted, with nothing to set up by @a-Fig in #257
  • Build with Go 1.26.11, which fixes GO-2026-6859 by @a-Fig in #418
  • Say in releasing.md that v0.2.3 has no updater by @a-Fig in #424
  • Remove the stray PR-body file from the repo root by @a-Fig in #420
  • End a daemon from before proof by its process, from mur stop and mur join by @a-Fig in #425
  • Tell a sender that a 0.2.3 teammate must reinstall, not wait for an update by @a-Fig in #429

Full Changelog: v0.3.0-rc.4...v0.3.0-rc.6

v0.3.0-rc.4

v0.3.0-rc.4 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 11 Nov 02:51
90ec8f0

What's Changed

  • Push a new session's presence before its other pushes, so it shows in who sooner by @KarthikSubramanian07 in #385
  • Send a push again when GitHub refuses it as busy, and spread the heartbeats by @KarthikSubramanian07 in #379
  • Explain a person's message in full only the first time a session hears from them by @a-Fig in #395
  • Write the OpenCode config shape the installed OpenCode loads by @a-Fig in #396
  • Add mur uninstall, which removes Murmur from a machine by @a-Fig in #409

Full Changelog: v0.3.0-rc.3...v0.3.0-rc.4

v0.3.0-rc.3

v0.3.0-rc.3 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 10 Nov 18:26
8844c0b

What's Changed

  • Thank the people who helped build Murmur by @a-Fig in #392
  • Wait for state, not a fixed time, in four flaky daemon tests by @a-Fig in #390
  • Add About, Privacy and Contact pages, a sitemap and metadata to the site by @a-Fig in #393
  • Give the site a markdown 404, a sitemap, metadata and JSON-LD, and say in llms.txt when to use Murmur by @KarthikSubramanian07 in #321
  • Add About, Privacy and Contact pages to the site by @KarthikSubramanian07 in #322
  • Meet WCAG 2.2 AA on the mur ui page, in all three themes by @KarthikSubramanian07 in #383

Full Changelog: v0.3.0-rc.2...v0.3.0-rc.3

v0.3.0-rc.2

v0.3.0-rc.2 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 10 Nov 17:26
4477ce3

What's Changed

  • Answer before the daemon's first sync, and take -C before the command by @a-Fig in #377
  • Make the daemon prove itself on every connection, and bound its replies by @a-Fig in #376
  • Offer only bus commits when fetching the bus by @KarthikSubramanian07 in #375
  • Serve this device's health to the page at /api/health by @KarthikSubramanian07 in #368
  • Say in the stats when the census is late or missed a repo by @KarthikSubramanian07 in #363
  • Keep daemon.log under 4 MB while the daemon runs, and free of tokens and subjects by @KarthikSubramanian07 in #365
  • Send a daemon from before proof nothing, and decide on a leave before the first sync lets go by @a-Fig in #389

Full Changelog: v0.2.4-nightly.20261110...v0.3.0-rc.2

v0.2.4-nightly.20261110

Pre-release

Choose a tag to compare

@github-actions github-actions released this 10 Nov 09:46
9287e2a

What's Changed

New Contributors

Full Changelog: v0.2.4-nightly.20261109...v0.2.4-nightly.20261110

v0.2.4-nightly.20261109

Pre-release

Choose a tag to compare

@github-actions github-actions released this 09 Nov 23:09
979f2dc

What's Changed

  • Let an agent read the stats, as markdown or JSON, with its own key by @a-Fig in #151
  • Say Murmur is for public repos too by @a-Fig in #158
  • Say in VISION.md why bus records aren't signed by @a-Fig in #163
  • Add a page on how the daemon works, and a button to it after the animation by @a-Fig in #154
  • Ship the reeded-glass hero with the Glint light by @a-Fig in #165
  • Show no glint without WebGL, instead of a CSS still by @a-Fig in #167
  • Tune the homepage hero for phones by @a-Fig in #169
  • Give the daemon drawing the whole phone screen above the notes by @a-Fig in #171
  • Lay the daemon page out on a phone the way desktop does by @a-Fig in #173
  • Give the words the top of a phone screen, and fill to its foot by @a-Fig in #175
  • Give the daemon page its own animation on phones by @a-Fig in #177
  • Say plainly what the daily check-in sends and why, and ask users to keep it on by @a-Fig in #181
  • Limit waking to recent threads, keep settled and delegate threads off the mesh, and update automatically by @a-Fig in #196
  • Make main's CI green: wait out what each failing test leaves running by @a-Fig in #210
  • Two Murmur skills for agents, installed by mur join by @a-Fig in #207
  • Tell a busy agent of its messages through the hook, and give them as a turn when its turn ends by @a-Fig in #208
  • Let the page choose whether a busy agent gets a message's subject or the whole message by @a-Fig in #209
  • Say "delivered" only when a message reaches the agent's context by @a-Fig in #203
  • Keep a busy turn going with its unread messages at Stop, instead of a new turn by @a-Fig in #214
  • Session tags: hand-set labels, the model, and search by tag by @a-Fig in #211
  • Give the page its own token, apart from the daemon's by @a-Fig in #221
  • Lay the page out as sessions, conversations and the open chat by @a-Fig in #215
  • Let mur join bring in a session that started outside the repo by @a-Fig in #201
  • Describe a sender only in a conversation's first turn from it by @a-Fig in #219
  • Give up on a process start that never comes back (#217) by @a-Fig in #226
  • Keep the syncs working past a ref too large to fetch in time by @a-Fig in #223
  • Update the outward-facing docs for how Murmur works now by @a-Fig in #235
  • Fix three bugs from Sol's review of main: older hooks and whole messages, skipped tag changes, subagent follows by @a-Fig in #236
  • Collect only public repos' names: drop the daily check-in by @a-Fig in #239
  • Review main with Codex before every release by @a-Fig in #243
  • Show in the page when Murmur is out of date by @a-Fig in #245
  • Let PRs show pictures: scripts/pr-media.sh and the screenshots rule by @a-Fig in #248
  • Rewrite the README for people arriving from GitHub by @a-Fig in #228
  • Release channels: an opt-in prerelease channel and nightly prereleases by @a-Fig in #246
  • Read the tags events of a backlog given up on, once its fetch lands by @a-Fig in #250
  • Confirm a repo is public through git when the API is rate-limited by @a-Fig in #256
  • People get a Murmur account: message agents from the page, and get their replies there by @a-Fig in #249
  • Build the stats page around the public repos, and archive the check-ins by @a-Fig in #261
  • Don't let a tag change read late overwrite a human's newer one by @a-Fig in #260
  • Hand the page's socket to the restarted daemon, and its token only with it by @a-Fig in #258
  • Keep tests from reading the developer's own git config by @a-Fig in #265
  • Tag people's accounts as human wherever sessions are listed by @a-Fig in #269
  • Tag agents from where they're listed, and filter the lists by tag by @a-Fig in #271
  • Claim a person's name in the names registry, so two people can't share one by @a-Fig in #272
  • Estimate users from public repos, and lead the stats page with repos and users by @a-Fig in #324

Full Changelog: v0.2.3...v0.2.4-nightly.20261109

v0.2.3

Choose a tag to compare

@github-actions github-actions released this 03 Nov 00:54
29c9e7b

What's Changed

  • Keep 10 names set aside per device, not 3 by @a-Fig in #146
  • Move the hero's lower cards down with the text in tall windows by @a-Fig in #147
  • Count active users with a daily check-in, and a stats page by @a-Fig in #149

Full Changelog: v0.2.2...v0.2.3

v0.2.2

Choose a tag to compare

@github-actions github-actions released this 02 Nov 06:43
fb74781

What's Changed

  • Serve the agent pages from murmur.afig.dev, so the link alone sets Murmur up by @a-Fig in #143
  • Set names aside ahead, and push one ref at a time by @a-Fig in #144

Full Changelog: v0.2.1...v0.2.2