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.
How it fits together
Section titled “How it fits together”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. |
- Docker image: what is installed and why.
- Entrypoint: the startup sequence, step by step.
- Configuration: all environment variables.
- Deployment: Docker Compose and Portainer.
- Operations: attaching, updating, persistence, troubleshooting.
- Security: what the bot can do and how to limit it.