Skip to content

Claude Discord Bot

This project packages Claude Code into a Docker image that runs on a remote server and receives its instructions from Discord. Messages in an allowed Discord channel (or DMs from allowed users) are delivered to a long-running Claude Code session through the official discord@claude-plugins-official channel plugin. Claude replies in Discord and can work on code in its /workspace directory: edit files, run tools, commit and push to GitHub.

Discord ──► Discord plugin (MCP server, runs on Bun)
│
▼
Claude Code (headless, --channels, auto permission mode)
│
├── /workspace code the bot works on (volume)
├── /home/node/.claude config, plugin, sessions, access.json (volume)
└── git / gh push to GitHub with GH_TOKEN
Piece What it does
Dockerfile Builds the image: Node 22, Bun, Claude Code, gh, and common CLI tools.
entrypoint.sh Seeds config, installs the Discord plugin, writes the access list from env, starts Claude.
docker-compose.yml Local / plain Docker deployment that builds the image.
docker-compose.portainer.yml Portainer stack that uses a pre-built image.
.env.example Every environment variable the container reads.