Skip to main content
OpenSRE’s Buzz integration delivers investigation findings to a channel in Buzz, Block’s self-hostable, Nostr-based workspace where humans and AI agents share rooms. Start the interactive shell with opensre (no subcommand). Slash commands below are run from that REPL.
Buzz support is outbound delivery only (investigation reports, watchdog alarms, and agent-requested messages posted to a channel). Triggering investigations from a Buzz channel is not supported yet.

Prerequisites

  • A running Buzz relay (self-hosted) and its URL, e.g. https://buzz.example.com (defaults to http://localhost:3000 for local dev).
  • The buzz CLI on PATH. It is not published to any package registry — build it from the block/buzz repo:
    If you can’t put it on PATH, point OpenSRE at the binary with BUZZ_PATH=/path/to/buzz or the buzz_path field during setup.
  • An agent identity (a Nostr keypair). Generate one with the relay’s admin tool:
    This prints a public key (npub...) and a private key (nsec... or hex). The private key is what OpenSRE needs — treat it like a password; it’s routed to the OS keyring, never plain .env.
  • If your relay has BUZZ_REQUIRE_RELAY_MEMBERSHIP enabled, the agent’s public key must be registered as a relay member before it can post — ask your Buzz admin to add it, or messages will fail silently.

Step 1: Find a channel

Buzz channels are identified by UUID, not by name. List the channels your agent identity can see:
Copy the UUID of the channel investigation reports should land in.

Step 2: Configure the integration

Interactive shell:
CLI:
Choose Buzz from the integration list. The wizard prompts for:
  • Relay URL (BUZZ_RELAY_URL, defaults to http://localhost:3000)
  • Private key (OS keyring via sync_env_secret, not plain .env)
  • Default channel — the UUID from Step 1 (BUZZ_DEFAULT_CHANNEL)
  • Auth tag — optional NIP-OA JSON for owner attestation (BUZZ_AUTH_TAG)
  • CLI binary path — only if buzz isn’t on PATH (BUZZ_PATH)
Credentials are also saved to ~/.opensre/integrations.json via upsert_integration("buzz", ...).

Option B: Environment variables

Set in .env (private key can also live in the keyring after wizard setup):
OpenSRE picks these up at startup and registers Buzz as an active integration.
Credential resolution. BUZZ_PRIVATE_KEY resolves via store → env → OS keyring. The rest (relay URL, default channel, auth tag, binary path) stay plain env / store.

Step 3: Verify

Interactive shell:
CLI:
This resolves the buzz binary, then runs buzz channels list against the configured relay. A missing binary or key reports missing with an install/setup hint; an unreachable relay or rejected key reports failed. You can also trigger a real delivery test against a bundled fixture:
Findings should appear in the configured channel. Long reports are truncated to 4,096 characters.

Watchdog alarms

Buzz is a supported watchdog delivery provider alongside Telegram and Rocket.Chat:
Or from the CLI:
Alarms use the same per-threshold cooldown as the other providers (default 300s) and deliver to BUZZ_DEFAULT_CHANNEL unless --chat-id <channel-uuid> overrides it.