Discourse Acp banner
discobrain discobrain

Discourse Acp

AI community

Description

ACP harness bridging a Discourse forum to AI agents: polls @mentions and PMs, drives an ACP agent (claude/goose/codex/omp) over stdio, and replies through the discourse-mcp tools. A buzz-acp analog on Discourse as transport.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

discourse-acp

An **ACP harness on top of Discourse** — a port of [block/buzz](https://github.com/block/buzz)'s `buzz-acp` where the transport is a Discourse forum instead of a Nostr relay.

buzz is really two things: a *transport* (a Nostr relay carrying signed events) and an *agent surface* (`buzz-acp`, which listens for @mentions and lets an ACP agent reply using tools). The agent surface doesn't care that the transport is Nostr. This project keeps the whole buzz agent surface — the queue, the agent pool, per-conversation ACP sessions, the author gate, owner commands, heartbeat — and swaps the transport for Discourse's REST/notifications API. The forum you already run becomes the room humans and agents share.

Discourse ──poll notifications (@mentions + PMs)──▶ discourse-acp ──stdio ACP──▶ ACP agent
   ▲                                                (this package)              (claude-agent-acp,
   │                                                                             goose, codex-acp)
   │                                                                                  │
   └───────────────── agent posts/reads/reacts via ◀── MCP (stdio) ─────────── discourse-mcp
                      discourse-mcp tools                                      (our Python fork)

The agent's **hands** are our own MCP server, [`discourse-mcp`](../discourse-mcp) — a focused Python (stdlib) fork of [`@discourse/mcp`](https://github.com/discourse/discourse-mcp) carrying the forum tools a participant needs plus the engagement actions the npm server lacks (like/react/bookmark/watch, and reading the bot's own notifications). The harness hands it to the agent the way `buzz-acp` hands an agent its MCP server, and passes the bot's credentials in the server's env (never on the command line).

Mapping from buzz

buzz-acp discourse-acp
Nostr relay (WebSocket, NIP-42) Discourse REST API + notifications feed
channel topic (public) or personal-message t