Discord Bridge for Autonomous Claude Code Sessions

A developer has built a Discord bridge for autonomous Claude Code sessions to solve the pull-based limitation where Claude only acts when tools fire or CLI input is sent. The system enables real-time two-way chat via WebSocket with local file queueing and push notifications on stop/error events.
Architecture
Inbound flow: Discord → WebSocket → bridge.js → discord-inbox.jsonl → PostToolUse hook → Claude
Outbound flow: Claude → Discord MCP → #claude-code-chat → phone push notification
Components
- bridge.js (~50 lines, discord.js v14): Persistent WebSocket to Discord gateway that listens to a dedicated channel and writes messages as JSONL to a local inbox file with zero API polling.
- PostToolUse hook: Reads local inbox on every tool call with no network calls or throttling — just a file read that takes microseconds versus the 2-minute polling interval used previously.
- PreToolUse hook: Auto-starts the bridge on first tool call of every session, silently doing nothing if already running.
- Outbound webhook: Sends structured STATUS updates on Stop/Error events with per-session named threads auto-created via Discord's thread_name parameter (requires ?wait=true to get channel_id back — default returns 204 empty).
Key Design Decisions
The main architectural shift was using a local file queue over API polling. JSONL with atomic truncation prevents race conditions. The bridge is session-agnostic — Discord history persists across crashes and restarts, allowing multiple agents to share the same channel.
Limitations
Permission approval prompts (1/2/3) still require terminal input since Claude is idle at that point and tools aren't firing. This works for redirecting mid-active-run but not for answering stopped prompts.
Testing Results
Tested on 27K lines analyzed overnight across two parallel sessions, finding 15 bugs and delivering a 6-month roadmap at 5:42 AM. Setup requires three bash files and approximately twenty minutes.
📖 Read the full source: r/LocalLLaMA
👀 See Also

Interactive Mind Map Visualizes Claude Tool Ecosystem
A developer created an interactive HTML mind map using D3.js to track features across Claude's Chat, Cowork, and Code tools, including platform availability, pricing differences, and connector compatibility.

Claude Code Plugin Analyzes Token Waste and Anomalies Locally
A developer built a Claude Code plugin that diagnoses token waste by detecting six anomaly types from local session data. The tool analyzed 8,392 sessions and found 1,015 anomalies, with ExcessiveToolUse being the most common.

Managing Multiple AI Agent Tasks with Kanban Boards
A developer shares their experience running multiple Claude AI agents in terminal tabs and identifies three key workflow challenges: lack of progress visibility, context loss when switching between tasks, and rate limit interruptions. Their solution involves treating AI tasks like work items on a Kanban board.

Local semantic search for AI conversations with fastembed and LanceDB
A developer indexed 368K AI conversation messages locally using fastembed for CPU-based embeddings and LanceDB as a serverless vector store, achieving 12ms p50 search latency without API keys.