01The thesis
Every source in this meshup converges on one claim: teams don't lose to bad tools, they lose to the seams between good tools — and agents lose the most, because they can't act on what they can't see.
the biggest problem it solves is context. teams today spread their work across a chat tool, a code host, a CI system, and now a pile of ever-changing agent tools. every seam loses information…and agents feel it the most. they can't help with what they can't see.
Buzz's proposed fix is structural, not additive: instead of a fourth tool layered on chat + forge + CI (Continuous Integration), it's a single Nostr relay where every message, patch, review, workflow step, and approval is a signed event in one log — the same shape and audit trail whether the author is a person or an agent. Block, Inc. says it felt this first through Goose, the agent substrate it open-sourced at the start of 2025, which surfaced the seam problem daily as it went deeper into the company.
Git and GitHub are not the same thing, and the difference is exactly what NIP-34 exploits. Git's own object model — content-addressed blobs, trees, and commits — was decentralized and filesystem-native from its first commit: every clone already holds the complete history, no server required. GitHub added a centralized coordination layer on top of that already-distributed core: a web UI, an issue tracker, PR review, centralized auth. NIP-34 doesn't decentralize Git — Git needed no such thing — it decentralizes the GitHub-shaped layer instead, letting patches and repo events propagate as signed events across whichever relays a community trusts. Buzz isn't fighting Git's grain; it's building relay-based federation on top of a data structure that was already playing to the filesystem's strengths.
02The three stated principles
Directly from the launch post — the constraints the team says it designed against.
Self-sovereign
Run your own relay. Own your domain and your data. Carry your keys anywhere.
Open
Apache 2.0, built on Nostr, model-agnostic. Harnesses for Goose, Codex, and Claude Code. No lock-in — including to Block itself.
One context
A feature branch becomes a channel. Patches, CI results, review, and the merge decision live in the same thread as the conversation that shaped them.
03Value proposition breakdown
What the principles cash out to in practice, read against the repository's own architecture and README.
One audit trail for people and agents alike
A human's action and an agent's action are the same signed-event shape — accountability doesn't need a separate governance layer bolted on after the fact.
Agents are members, not bots on the side
An agent joins a channel the way a person does: its own keypair, its own memberships, the same affordances — open repos, send patches, run workflows, join huddles.
A feature branch becomes a room
NIP-34 git events land in the same channel as the discussion that motivated them, so the merge decision and its reasoning are one searchable record.
Protocol-level portability over lock-in
Nostr plus Apache-2.0 means a community's history isn't captive to Block's own hosted deployment — the same design Block dogfoods is the design anyone can self-host.
Peer AI, not companion AI or bystander AI
The post explicitly rejects "people chatting with AI companions" and "agents talking while people watch" — the bet is people and agents as equal members doing the same work.
buzz-cli and ACP harnesses
JSON-in/JSON-out CLI plus an ACP↔MCP bridge (buzz-acp) mean Goose, Codex, and Claude Code can already act as first-class channel members, not bolted-on integrations.
04Buzz vs. Slack + GitHub + a bot
| Dimension | Slack + GitHub + a bot | Buzz |
|---|---|---|
| Identity model | Three separate identity systems — a Slack account, a GitHub account, and a bot token — manually bridged per integration. | One cryptographic keypair per person or agent, valid across chat, git, and workflows on the same relay. |
| Audit trail | Chat history lives in Slack, git history in GitHub, bot actions logged nowhere consistent. | Every action — message, patch, review, approval — is a signed event in one log, one search index. |
| Git-native context | A Slack thread about a PR lives in Slack; the PR lives in GitHub; nothing ties them together but a pasted link. | NIP-34 git events land natively in the same channel as the branch's discussion. |
| Agent participation | A bot is a webhook integration with its own bespoke permission model bolted on. | An agent is a channel member with its own keypair — the same affordances as a human. |
| Data ownership / hosting | Slack and GitHub are hosted SaaS; workspace history lives on someone else's infrastructure. | Self-hostable by default — Apache 2.0, run your own relay, own your data. |
| Vendor lock-in | Migrating off Slack or GitHub means losing history and integrations built against proprietary APIs. | Built on the open Nostr protocol; a community isn't captive to any one vendor's hosted deployment. |
05What's real today vs. what's still a bet
Straight from the repository README's own status columns — worth reading before treating the thesis as already delivered.
| Status | Capability |
|---|---|
| Works today | Relay, channels, threads, DMs, canvases, media, search, audit log |
| Works today | Desktop app (Tauri + React); buzz-cli; YAML workflows; Git events (NIP-34) |
| Being wired up | Mobile clients (iOS + Android, Flutter); push notifications; huddle lifecycle events |
| Being wired up | Workflow approval gates ("infra exists, glue still drying"); full git hosting backend |
| Strong opinions, pending code | Web-of-trust reputation across federated relays; culture features |
06Open questions
Tensions the thesis creates but hasn't yet resolved in code.
Federation is a goal, not shipped code
The default deployment is one relay per community — a single point of operational trust, not yet the federated network the design points to.
Agent scoping is unfinished
"Tighter scoping for agents so they can operate in workspaces where some things stay private" is named as future work — until it lands, "agents as equal members" and "some things stay private" pull against each other.
Mobile, push, and approval gates lag
Meaningful gaps for any team evaluating Buzz as a Slack/GitHub replacement today rather than in six months.
Self-hosting shifts ops burden to the adopter
"Own your data" also means Postgres, Redis, and S3/MinIO become the adopting team's problem, absent a hosted offering.
07HowTo: self-host Buzz from source
-
Clone the repository
git clone https://github.com/block/buzz.git && cd buzz -
Activate the pinned toolchain
. ./bin/activate-hermitHermit downloads the pinned Rust/Node/pnpm/just toolchain on first use. Requires Docker and Hermit (or Rust 1.88+, Node 24+, pnpm 10+, just).
-
Bootstrap and build once
just setup && just buildjust setuprunsjust bootstrapautomatically — copies.env.exampleto.envif needed, downloads tools via Hermit, and starts Docker services + migrations. -
Run the relay and desktop app together, every day after
. ./bin/activate-hermit just dev # relay on ws://localhost:3000, desktop app pops upFor a split-terminal workflow, use
just relayin one terminal andjust desktop-devin another. -
Configure an agent to join the workspace
export BUZZ_PRIVATE_KEY=... buzz-cli # JSON in, JSON out — built for LLM tool calls
08FAQ
BUZZ_RELAY_URL before launching, or switch the relay from inside the app.just setup && just build (which bootstraps Docker services and runs migrations), then just dev — or just relay alone in its own terminal for a split relay/desktop workflow. The relay listens on ws://localhost:3000 by default; making it reachable to others just means exposing that same relay at a URL they can connect to.BUZZ_PRIVATE_KEY) and its own channel memberships, authenticating over NIP-42 exactly like a human member — scoping is by cryptographic identity, not a permission flag.BUZZ_RELAY_URL. Everyone connected to that URL is in the same community, sharing the same channels, canvases, and git repos under one signed-event log.BUZZ_RELAY_URL joins that community. In practice, 'inviting' someone today means sharing that URL the way you'd share a Wi-Fi password. The launch post names tighter agent/member scoping as future work ('the bigger work ahead'), which suggests finer-grained access control is not yet part of the shipped design.. ./bin/activate-hermit downloads and activates Buzz's pinned Rust, Node, pnpm, and just versions on first use, so every contributor — and every CI (Continuous Integration) run — builds against an identical toolchain without a separate 'install these four tools' step.just setup starts these via Docker Compose and runs migrations before just build/just dev bring up the relay and desktop app themselves — Docker isn't running Buzz's own code, just its infrastructure dependencies.09Glossary
Git
The distributed version-control system itself: repository history is a content-addressed Merkle tree of blobs, trees, and commits, and every clone already holds the complete history with no central server required. Decentralized and filesystem-native from its first commit — distinct from GitHub, the hosted service built on top of it.
GitHub
A centralized hosting platform built on top of Git — adding a web UI, issue tracker, pull-request review, and centralized authentication. A service choice layered over Git, not a property of Git itself; it's the centralized coordination layer NIP-34 replaces, not Git's own already-distributed object model.
Nostr
Notes and Other Stuff Transmitted by Relays — the open, decentralized protocol Buzz is built on: content is a signed JSON event, identity is a keypair, not a platform account. A Relay serves Nostr events, a Signed Event is a Nostr event, and NIP-34 is a Nostr extension for git.
Buzz community
The workspace reachable at a given relay URL; the URL is authoritative and all tenant-observable state under it is community-local.
Relay
The Nostr relay at the center of a deployment (buzz-relay), backed by Postgres, Redis, and S3/MinIO.
Signed event
The atomic unit of everything in Buzz — message, reaction, workflow step, review, or git action — cryptographically signed by its author's keypair.
Event log
The append-only, searchable sequence of every signed event a relay has accepted — messages, reactions, patches, reviews, workflow steps, approvals — that functions as Buzz's single audit trail. Distinct from a Signed Event (the atomic unit): the event log is the aggregate ledger those units accumulate into.
NIP-01
The base Nostr Implementation Possibility: defines the signed-event format (id, pubkey, signature, kind, tags, content) and the client-relay WebSocket protocol every other NIP — including NIP-34 and NIP-42 — builds on.
NIP-42
The Nostr Implementation Possibility for relay authentication: lets a relay require a client to prove control of a keypair before granting protected operations — the mechanism Buzz's relay uses to authenticate members, human or agent, before they can act in a community.
NIP-34
The Nostr spec for git-native events — patches, repo announcements, and status — letting git workflows live inside the same relay as chat.
buzz-cli
The agent-first CLI to Buzz: JSON in, JSON out, built for LLM tool calls.
ACP harness
buzz-acp — an ACP↔MCP bridge letting Goose, Codex, and Claude Code join a workspace as first-class channel members.
Canvas
A shared, editable surface inside a channel — media you can talk about, with comments pinned to specific frames.
Workflow
A YAML-defined automation triggered by message, reaction, schedule, or webhook events on the relay.
Huddle
A voice conversation members drop into from a channel; huddle lifecycle events are listed as "being wired up."
Goose
Block's own agent substrate, open-sourced at the start of 2025; its daily friction across tool seams is credited as the direct motivation for Buzz.
Hermit
A self-contained package manager that pins a project's exact toolchain versions inside the repository itself. Running . ./bin/activate-hermit downloads and activates Buzz's pinned Rust, Node, pnpm, and just versions on first use, so every contributor builds against an identical toolchain without a separate install step.
Docker
The container runtime the block/buzz quick-start uses to run supporting services locally — Postgres for events and full-text search, Redis for pub/sub, S3/MinIO for media — without installing and configuring each one natively. just setup starts these via Docker Compose and runs migrations before the relay's own build step.
10KG Explorer
Interactive force-directed view of every entity and relationship in the companion RDF. Click a node, its label, or an edge label to open its full description via URIBurner.