Discord Bots
Every agent that communicates via Discord has a dedicated bot application. This document covers
the configuration, permissions, Bitwarden entries, and how to recreate each bot if a token is lost.
Bot Overview
| Agent |
Application Name |
Bot User ID |
Mention |
Public Bot |
Server |
| Codi-E |
Codi-E Agent |
1477267530946187305 |
<@1477267530946187305> |
No |
Dashecorp Agents |
| Pi-E |
Pi-E Agent |
1477270576765735024 |
<@1477270576765735024> |
No |
Dashecorp Agents |
| Volt-E |
Volt-E Agent |
1477272514332852416 |
<@1477272514332852416> |
No |
Dashecorp Agents |
| Review-E |
Review-E Agent |
1477785888095473798 |
<@1477785888095473798> |
No |
Dashecorp Agents |
| iBuild-E |
iBuild-E Agent |
1480845201978163271 |
<@1480845201978163271> |
No |
Dashecorp Agents |
| iClaw-E |
iClaw-E Agent |
1482352836242051092 |
<@1482352836242051092> |
No |
Dashecorp Agents |
| ATL-E |
ATL-E Agent |
— (webhook only) |
— |
No |
Dashecorp Agents |
Guild: Dashecorp Agents (1477259107684847708)
Standard Configuration (All Bots)
All bots share the same settings. Only deviate if noted per-agent.
Discord Developer Portal Settings
| Setting |
Value |
Where |
| Public Bot |
Off |
Bot tab |
| Presence Intent |
On |
Bot tab → Privileged Gateway Intents |
| Server Members Intent |
On |
Bot tab → Privileged Gateway Intents |
| Message Content Intent |
On |
Bot tab → Privileged Gateway Intents |
| Default Install Settings |
None |
Installation tab |
Bot Permissions
All bots are invited with Administrator permission (simplest for a closed private server).
OAuth2 scope: bot + applications.commands.
Per-Agent Details
Codi-E
| Property |
Value |
| Application Name |
Codi-E Agent |
| Bot User ID |
1477267530946187305 |
| Bitwarden Entry |
Discord Bot Token (Codi-E) |
| Runtime |
Claude Code (MacBook Air M4) |
| Channel |
#codi-e (1477263450324336705) |
| Logs Channel |
— |
| Token used by |
discord MCP (channel=discord in OpenClaw) |
Pi-E
| Property |
Value |
| Application Name |
Pi-E Agent |
| Bot User ID |
1477270576765735024 |
| Bitwarden Entry |
Discord Bot Token (Pi-E) |
| Runtime |
OpenClaw in Docker (Pi4-03) |
| Channel |
#pi-e (1477263673700651051) |
| Logs Channel |
#pi-e-logs (1481788666975092878) |
| Token used by |
OpenClaw config on Pi4-03 |
Volt-E
| Property |
Value |
| Application Name |
Volt-E Agent |
| Bot User ID |
1477272514332852416 |
| Bitwarden Entry |
Discord Bot Token (Volt-E) |
| Runtime |
agent-runner (systemd, VPS srv1099021) |
| Channel |
#volt-e (1477263777266270300) |
| Logs Channel |
#volt-e-logs (1481788607726620753) |
| Token used by |
agent-runner .env on VPS |
Review-E
| Property |
Value |
| Application Name |
Review-E Agent |
| Bot User ID |
1477785888095473798 |
| Bitwarden Entry |
Discord Bot Token (Review-E) |
| Runtime |
agent-runner (Pi4-02) |
| Channel |
#review-e (1477787408773943488) |
| Logs Channel |
#review-e-logs (1482280608364232828) |
| Token used by |
agent-runner .env on Pi4-02 |
iBuild-E
| Property |
Value |
| Application Name |
iBuild-E Agent |
| Bot User ID |
1480845201978163271 |
| Bitwarden Entry |
Discord Bot Token (iBuild-E) |
| Runtime |
Claude Code + LaunchAgent (Mac Mini M4) |
| Channel |
#ibuild-e (1478779143914262711) |
| Logs Channel |
#ibuild-e-logs (1482368579910238511) |
| Token used by |
OpenClaw config on Mac Mini |
iClaw-E
| Property |
Value |
| Application Name |
iClaw-E Agent |
| Bot User ID |
1482352836242051092 |
| Bitwarden Entry |
Discord Bot Token (iClaw-E) |
| Runtime |
OpenClaw (Mac Mini M4) |
| Channel |
#iclaw-e (1482354822492455065) |
| Logs Channel |
#iclaw-e-logs (1482354831342567494) |
| Token used by |
OpenClaw config on Mac Mini |
ATL-E
| Property |
Value |
| Application Name |
ATL-E Agent |
| Bot User ID |
— (uses webhook, not bot token) |
| Bitwarden Entry |
ATL-E Discord Webhook (URL, not bot token) |
| Runtime |
Kubernetes CronJob (Dell k3s) |
| Channel |
#tasks (1477261755125075969) |
| Token used by |
atl-agent-secrets SealedSecret in k8s |
| Docs |
https://atl-docs.pages.dev/setup/ |
ATL-E uses a Discord webhook URL, not a bot token. It does not have a bot application in the
Developer Portal. The webhook is stored in Kubernetes as a SealedSecret.
How to Recreate a Bot Token
If a token is lost or compromised:
- Go to Discord Developer Portal
- Select the application (e.g., "Pi-E Agent")
- Bot tab → Reset Token → confirm → copy the new token
- Update Bitwarden: open
Discord Bot Token (Agent-Name) → edit password field
- Update the token on the agent host:
OpenClaw agents (Pi-E, Codi-E, iClaw-E, iBuild-E):
# Edit OpenClaw config
# Find: discord.token (or equivalent)
# Replace with new token
# Restart OpenClaw / Docker container
agent-runner agents (Volt-E, Review-E):
ssh -i ~/.ssh/<key> <user>@<host>
# Edit /etc/agent-runner.env (or the .env file configured in the systemd unit)
# Replace DISCORD_TOKEN=...
sudo systemctl restart agent-runner
- Verify bot comes back online: post in the agent's private channel, confirm response.
Creating a New Bot from Scratch
Follow these steps when adding a new agent to the fleet:
- Discord Developer Portal → New Application
- Name:
{Agent-Name} Agent
- Installation tab → Default Install Settings → set Install Link to None → Save
- Bot tab → uncheck Public Bot → Save
- Bot tab → Privileged Gateway Intents → enable all 3 (Presence, Server Members, Message Content) → Save
- Bot tab → Reset Token → copy token
- Store in Bitwarden:
Discord Bot Token ({Agent-Name}), username = Application ID
- Note the Application ID from General Information (= Bot User ID, use for mentions)
- OAuth2 → URL Generator → check
bot + applications.commands → check Administrator → copy URL
- Open URL → select Dashecorp Agents → Authorize
- In Discord: create
#{agent-name} channel + #{agent-name}-logs channel
- Enable Developer Mode in Discord → right-click channels → Copy Channel IDs
- Add to
docs/infrastructure/agents.md (Discord Bot IDs table and Discord Channels table)
- Add to this file (Per-Agent Details section)
Troubleshooting
| Symptom |
Likely Cause |
Fix |
| Bot offline / not responding |
Token expired or rotated |
Reset token, update config, restart agent |
| Missing Message Content Intent |
Not enabled in Dev Portal |
Enable on Bot tab → save → no restart needed |
| "Used disallowed intents" error |
Privileged intents not enabled |
Enable all 3 on Bot tab |
| Bot not receiving DMs |
Public Bot is On |
Turn off Public Bot, reinvite bot |
| Can't invite to server |
Install Link not set to None |
Set to None under Installation tab first |
| Mentions not working |
Using name instead of ID |
Use <@BOT_USER_ID> format |