github rjyo/homebrew-moshi v0.4.32
moshi-hook v0.4.32

2 hours ago

What's Changed

  • New: end-to-end encryption. moshi-hook e2ee enable seals everything this host sends through Moshi (inbox entries, approvals and questions, prompts, usage) so only your phones can read them; Moshi's servers relay ciphertext and can no longer approve anything for you. Phones fetch the key over SSH when they connect and decrypt notifications, Live Activities, widgets and the Watch themselves. e2ee rotate [--revoke], disable and status manage it, and probe reports the policy. E2EE needs Moshi 4.1.0 for iOS and Android, which isn't out yet. Leave it off until your phones are on 4.1.0, because earlier versions can't read or approve anything it encrypts.
  • Easy Pair now puts this host's SSH key fingerprint in the QR code, so the Moshi app can confirm it's talking to this host from the very first connection.
  • moshi-hook host list and host revoke read authorized_keys directly, so the list shows exactly the phones that can log in. It used to keep its own record and kept listing keys as active after they were removed by hand. host revoke <host id> removes every phone paired to that host.
  • moshi-hook notify --strict now waits until Moshi confirms the push went out, and exits non-zero if it was dropped: no network, a dead proxy, or a rate limit. Before, it exited 0 once the local daemon had accepted it. The daemon log now names the source and event id for every push it delivers or drops.
  • Running the daemon as a Homebrew or systemd service no longer restarts it every 10 seconds while the Moshi app has started its own. The second serve waits and takes over when the first one exits. Pass --exit-if-running to get the old behaviour.
  • OpenCode errors now arrive as errors instead of "OpenCode blocked · Answer in terminal". Runs you stop yourself no longer send one.
  • Fixed: OpenCode no longer fills the daemon log with "socket write error … broken pipe" warnings.
  • Fixed: a Codex subagent no longer takes over its parent's session, and finishing it no longer marks the still-running parent idle.
  • Fixed: a Claude viewer (claude attach, the agents list) started through a wrapper script now shows as Claude in workspaces instead of a plain terminal.
  • Fixed: rewinding Claude in herdr no longer fails with "not in the rewind list" when the prompt is far up a long list.

Don't miss a new homebrew-moshi release

NewReleases is sending notifications on new releases.