Discord relay for Claude Code — multi-session support via a shared bot with channel/thread routing.
Multi-session Discord bridge for Claude Code. One Discord bot, many Claude sessions — each scoped to specific channels or threads.
Discord ←→ Relay Daemon ←→ Bridge (Claude Session 1, channels: #prs)
←→ Bridge (Claude Session 2, channels: #bugs)
←→ Bridge (Claude Session 3, channels: *)
bot scope and these permissions: Send Messages, Read Message History, Manage Channels, Add Reactions, Manage Messagesmkdir -p ~/.claude/channels/discord-relay
echo "DISCORD_BOT_TOKEN=your_token_here" > ~/.claude/channels/discord-relay/.env
# Create access.json (same format as the standard Discord plugin)
cat > ~/.claude/channels/discord-relay/access.json << 'EOF'
{
"dmPolicy": "pairing",
"allowFrom": [],
"groups": {
"*": {
"requireMention": false,
"allowFrom": []
}
},
"pending": {}
}
EOF
cd /path/to/claude-discord-relay
bun install
# Option A: Use the CLI
bun src/relay-ctl.ts start
# Option B: Run directly
bun src/relay-daemon.ts
Add to your project's .mcp.json (or ~/.claude/.mcp.json):
{
"mcpServers": {
"discord-relay": {
"command": "bun",
"args": ["run", "--cwd", "/path/to/claude-discord-relay", "--shell=bun", "--silent", "start"],
"env": {
"DISCORD_RELAY_CHANNELS": "*",
"DISCORD_RELAY_LABEL": "main"
}
}
}
}
The bridge must be loaded as a channel (not a regular MCP server) for inbound notifications to work:
# Session subscribed to all channels (wildcard)
claude --dangerously-load-development-channels server:discord-relay
# To scope a session to specific channels, change the env in .mcp.json:
# "DISCORD_RELAY_CHANNELS": "123456789,987654321"
# For thread-scoped sessions:
# "DISCORD_RELAY_THREADS": "111222333"
All the standard Discord tools are available through the bridge:
| Tool | Description |
|---|---|
reply | Send a message to a Discord channel |
react | Add an emoji reaction |
edit_message | Edit a previously sent message |
fetch_messages | Fetch recent channel history |
download_attachment | Download message attachments |
create_channel | Create a new text channel |
list_channels | List all server channels |
create_thread | Start a thread from a message |
pin_message / unpin_message | Pin/unpin messages |
delete_channel | Delete a channel |
move_channel | Move a channel to a category |
set_channel_topic | Update a channel's topic |
Plus relay-specific tools:
| Tool | Description |
|---|---|
subscribe | Dynamically subscribe to more channels/threads |
unsubscribe | Stop receiving from channels/threads |
relay_status | View connected sessions and subscriptions |
spawn_session | Launch a new Claude session from Discord |
bun src/relay-ctl.ts start # Start the daemon
bun src/relay-ctl.ts stop # Stop the daemon
bun src/relay-ctl.ts restart # Restart
bun src/relay-ctl.ts status # Show status and connected bridges
Subscription priority:
*) matches any channelMIT
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
npx claudepluginhub martinstannard/claude-discord-relayDiscord channel for Claude Code — messaging bridge with built-in access control. Manage pairing, allowlists, and policy via /discord:access.
Discord channel for Claude Code — messaging bridge with built-in access control. Manage pairing, allowlists, and policy via /discord:access.
Memory compression system for Claude Code - persist context across sessions
Standalone image generation plugin using Nano Banana MCP server. Generates and edits images, icons, diagrams, patterns, and visual assets via Gemini image models. No Gemini CLI dependency required.
Streamline people operations — recruiting, onboarding, performance reviews, compensation analysis, and policy guidance. Maintain compliance and keep your team running smoothly.
Create content, plan campaigns, and analyze performance across marketing channels. Maintain brand voice consistency, track competitors, and report on what's working.
Write feature specs, plan roadmaps, and synthesize user research faster. Keep stakeholders updated and stay ahead of the competitive landscape.