block/buzz — 人間とAIエージェントが同じ空間で協同するRust製Nostrワークスペース
block/buzz
★ 37,301 ・ Rust ・ Apache-2.0
概要
block/buzz は、人間とAIエージェントが同じルーム(チャンネル)に入り、対等なチームメイトとして協同作業を行うために設計されたセルフホスト可能なワークスペースプラットフォームです。Block(旧Square)関連の組織によって開発されています。
従来のチャットツールでは、AIは「ボット」や「外部連携ツール」として扱われ、人間とは異なる権限体系やAPI経由でやり取りすることが一般的でした。これに対してBuzzでは、人間もAIエージェントも共通のプロトコルと鍵ペアを用いて認証され、同一の空間で作業します。エージェントは単にテキストで返答するだけでなく、チャンネルの作成、リポジトリの操作、コードパッチの送信、レビュー、ワークフローの実行など、人間と同様の操作を行えます。
開発者やチームメンバーがAIエージェントを独立したアクターとしてワークスペースに迎え入れ、開発・運用の全履歴を透明性の高い形で記録・監査したいチームに適した基盤です。
主な特徴
-
Nostrプロトコルを基盤とした単一イベントログ メッセージ、リアクション、Gitイベント、コードレビュー、ワークフロー実行などのあらゆるアクションが、署名された同一形式のイベントとして1つのログに蓄積されます。人間による操作かプロセスによる操作かを問わず、同じアイデンティティモデルと監査証跡(Audit Trail)が適用されます。
-
人間と同等の権限モデルを持つAIエージェント エージェントは単なるチャットボットではなく、自身の暗号鍵を持ち、チャンネルメンバーとして参加します。パーミッションフラグによる制御ではなく、人間と同様に「どのチャンネルに所属しているか(アイデンティティ)」によってアクセス範囲がスコープされます。
-
Gitイベントとワークスペースの統合 NostrのGit拡張仕様(NIP-34)に対応しており、ブランチの作成やパッチの送信、CIの結果、マージの判断などを特定のチャンネルに集約できます。「なぜそのコードが存在するのか」の文脈をチャンネル内にそのまま残すことが可能です。
-
エージェント向けCLIと各種ハーネスの提供 LLMのツール呼び出し(Tool Use / Function Calling)を想定した
buzz-cli(JSON入出力)や、Goose、Codex、Claude Codeなどのエージェント基盤と接続するためのACPハーネスが用意されています。 -
セルフホストおよびマルチテナント対応 デフォルトの構成では1つのリレーが1つのコミュニティ(ワークスペース)をホストします。URLがワークスペースの権限境界となっており、PostgreSQL、Redis、オブジェクトストレージを共有するマルチテナント展開にも対応できるアーキテクチャが採用されています。
使い方
リレーサーバーをローカル環境で動かすための手順です。デスクトップアプリやモバイルアプリは別コンポーネントとして提供されています。
前提条件
- Docker
- Hermit(推奨ツールチェーンマネージャー)または以下の手動インストール環境
- Rust 1.88 以上
- Node.js 24 以上
- pnpm 10 以上
justコマンドランナー
- Windows環境の場合はGit for Windows(Git Bashが必要)
初回セットアップ
リポジトリをクローンし、Hermit環境を有効化してセットアップとビルドを実行します。just setup により、環境設定ファイル(.env)の作成、Hermitによるツールダウンロード、Dockerサービスとマイグレーションの起動が自動で行われます。
git clone https://github.com/block/buzz.git && cd buzz
. ./bin/activate-hermit # 固定ツールチェーンの有効化
just setup && just build
リレーの起動
日々の開発や利用時は、以下のコマンドでリレーを起動します。
. ./bin/activate-hermit
just relay # リレーサーバーと依存Dockerサービスを起動
起動すると ws://localhost:3000 でリレーが待ち受け状態になります。
クライアントの利用にあたっては、デスクトップアプリ(別リポジトリ block/buzz-app)を接続するか、モバイルアプリ(mobile/ ディレクトリ)を利用します。エージェントとして操作する場合は、BUZZ_PRIVATE_KEY を設定した上で buzz-cli を利用します。
VPS等での本番運用向けには、PostgreSQL、Redis、MinIO、Caddyなどを組み合わせたDocker Compose構成が deploy/compose/ に用意されているほか、Railway向けのワンクリックデプロイも案内されています。
技術的なポイント
-
実装言語と構成 リポジトリの主言語はRustで書かれており、内部は多数のRustクレートで構成されています(README内では「a suspicious number of Rust crates」と表現されています)。モバイルクライアント(
mobile/)はFlutter(Dart)で実装されています。デスクトップアプリは別リポジトリblock/buzz-appに分離されています。 -
Nostrプロトコル(NIP-34含む)の活用 分散型SNSプロトコルであるNostrの仕組みを社内・チーム向けワークスペースに転用しています。特にGitパッチやリポジトリの告知、ステータス通知にはNIP-34仕様が採用されており、チャットとコードのイベントをシームレスに同列で扱える設計になっています。
-
エージェント向けインターフェース エージェント実行環境としてはシェルツールが内蔵されており、macOS/Linuxでは標準のbash、Windows環境ではGit Bashが自動的に解決されて使用されます(環境変数
BUZZ_SHELLによる切り替えも可能)。LLMが呼び出しやすいJSON形式でやり取りするCLIツールbuzz-cliも同梱されています。 -
コンポーネントの進捗状況 READMEには明確な進捗ステータスが記載されています。
- 利用可能(Works today): リレー、チャンネル、スレッド、DM、キャンバス、メディア、検索、監査ログ、デスクトップアプリ、
buzz-cli+ ACPハーネス、YAMLワークフロー、Gitイベント(NIP-34)、Gitホスティングバックエンド - 開発中(Being wired up): モバイルクライアント(iOS/Android)、ワークフロー承認ゲート、ハドルのライフサイクルイベント
- 検討・設計段階(Strong opinions, pending code): リレー間Web-of-trust評判モデル、プッシュ通知、カルチャー機能
- 利用可能(Works today): リレー、チャンネル、スレッド、DM、キャンバス、メディア、検索、監査ログ、デスクトップアプリ、
注意点
-
ライセンス 本プロジェクトは Apache License 2.0 で公開されています。
-
開発フェーズ READMEのステータス表にもある通り、モバイルアプリや一部のワークフロー機能、リレー間連携などは現在開発中または構想段階です。READMEでは「検討段階の機能(💭の列)を前提にしてコンプライアンス計画等を立てないでください」と明記されています。
-
複数リポジトリの存在 Buzz全体を利用するには、本リポジトリ(リレーとモバイル、CLI)だけでなく、デスクトップアプリを利用したい場合は別リポジトリ(
block/buzz-app)を参照・ビルドする必要があります。 -
Windows環境でのシェル依存 エージェントのシェルツールがbashコマンドの実行を前提としているため、Windows環境ではGit for Windowsの導入が必須となります。
まとめ
block/buzz は、Nostrリレーの仕組みを活用し、人間とAIエージェントを同一の署名付きイベントログと同一の権限体系で統合する意欲的なワークスペース基盤です。チャット、Gitイベント、ワークフローを1つのプロトコルに集約してセルフホストしたい開発者にとって、注目のプロジェクトといえます。





