Awesome Claude Discord Channel
An actively maintained, opinionated Discord channel plugin for Claude Code.
This project exists to make Claude-in-Discord feel reliable enough for real
daily use: visible replies, predictable access control, useful history tools,
attachments on demand, and room to add operational features that the basic
channel experience does not cover yet.
It started from the Apache-2.0 Discord plugin in
anthropics/claude-plugins-official, then turns that baseline into a public,
patchable channel implementation for people who want to run and improve their
own Claude Discord assistant.
Project direction
The goal is not to carry a one-off bug workaround. The goal is a better Discord
channel for Claude Code:
- reliable Discord-visible replies
- clear access-control behavior
- good support for guild channels, DMs, attachments, and history
- practical deployment docs for local, container, and always-on bot setups
- small, reviewable improvements that can track upstream when it makes sense
One reliability feature included here is an assistant-only delivery contract on
inbound Discord messages. It reminds Claude, through channel metadata, that
normal transcript text is not visible to Discord and that visible responses must
go through mcp__discord__reply. This avoids injecting visible
<delivery_contract> tags into user content while still keeping the delivery
rule close to the Discord message.
What is included
- Discord gateway bridge for Claude Code
- Built-in access control and pairing flow
- Tools:
reply, task_status, start_thread, react, edit_message, fetch_messages, download_attachment
- Attachment download on demand
- Typing indicator while Claude is working
- Metadata-only visible-reply delivery contract
The MCP server key remains discord, so existing /discord:* workflows and
tool names stay familiar.
Quick setup
See ACCESS.md for the full access-control model.
See EXTERNAL_CONNECTORS.md for the external
connector risk, approval, and audit model.
See CUSTOM_ACTIONS.md for the generic webhook/custom
action contract.
See KNOWLEDGE_SOURCES.md for read-only source-backed
answer behavior.
See FILE_ARTIFACTS.md for Discord attachment and
artifact workflow rules.
See GITHUB_PROJECTS.md for GitHub issue, PR, and check
workflow rules.
See TASKS_CALENDAR.md for reminder, task, and calendar
workflow rules.
See OPERATIONS.md for operations, deploy, and status
workflow rules.
-
Create a Discord application and bot in the
Discord Developer Portal.
-
Enable Message Content Intent.
-
Invite the bot to a server with:
- View Channels
- Send Messages
- Send Messages in Threads
- Read Message History
- Attach Files
- Add Reactions
-
Install dependencies:
bun install
-
Provide DISCORD_BOT_TOKEN through the environment or write it to:
~/.claude/channels/discord/.env
with:
DISCORD_BOT_TOKEN=your-token-here
-
Run the channel server from Claude Code using your normal plugin/channel
setup. For custom deployments, point the discord MCP server command at:
bun run --cwd /path/to/awesome-claude-discord-channel --silent start
Community setup packs
Generate an editable Claude behavior profile for a Discord community:
bun run setup:community -- --pack project-dev --server-name "Example Community" --output ./community-profile --enable github,docs --support-channel "#help" --announcements-channel "#announcements"
Supported packs:
project-dev for GitHub, docs, releases, contributors, bug reports, and feedback.
support-community for support triage, solved summaries, feedback, and escalation.
general-community for onboarding, events, recaps, announcements, and moderator help.
The generated files are setup artifacts. Review and edit CLAUDE.community.md
before deploying it with your bot. If any generated target file already exists,
rerun with --force; v1 does not prompt for overwrite confirmation.
Verification
Run:
bun run verify
The verifier checks that:
server.ts keeps Discord user content as the raw message content
assistant_delivery_contract is present in channel metadata
- visible
<delivery_contract> tags are not injected into user content
- plugin metadata and package metadata match this standalone repo
Contributing
Contributions are issue-first and PR-only:
- Open an issue for the bug or feature.
- Open a PR that links the issue with
Closes #123, Fixes #123, or Refs #123.
- Wait for review; direct pushes to
main are blocked.
See CONTRIBUTING.md.
Provenance