@opensourcewtf/waaah-bot
v0.1.0
Published
Unified Discord/Slack bot for WAAAH task submission and monitoring
Downloads
3
Maintainers
Readme
WAAAH Bot
Unified chat bot supporting Discord and Slack for interacting with the WAAAH agent system.
Setup
Discord
- Create a Discord application at discord.com/developers
- Enable Message Content Intent under Bot settings
- Copy the bot token
DISCORD_TOKEN=your_discord_bot_token
PLATFORM=discordSlack
- Create a Slack app at api.slack.com/apps
- Enable Socket Mode and create an app-level token with
connections:writescope - Add
app_mentions:readandchat:writebot scopes - Subscribe to
app_mentionevents
SLACK_BOT_TOKEN=xoxb-...
SLACK_SIGNING_SECRET=...
SLACK_APP_TOKEN=xapp-...
PLATFORM=slackGetting Channel IDs (Slack)
To configure SLACK_DELEGATION_CHANNEL_ID, you need the channel's ID:
- Right-click the channel name (e.g.,
#bot-logs) → Copy Link - Paste it. The link looks like:
https://workspace.slack.com/archives/C12345678 - The ID is the last segment:
C12345678
Alternative: Click the channel name → scroll to the bottom of the "About" tab → copy the Channel ID.
Note: The bot must be invited to the channel (
/invite @YourBotName) to post there.
Configuring Slash Commands (Optional)
To enable /waaah command support:
- Go to Slash Commands in your Slack App settings.
- Click Create New Command.
- Command:
/waaah - Request URL: (Leave empty if using Socket Mode)
- Description: "Interact with WAAAH"
- Usage Hint:
[task description] - Click Save and Reinstall to Workspace.
Running Both
PLATFORM=bothCommands
All commands require mentioning the bot first (@WAAAH in Discord, @waaah in Slack).
| Command | Example | Description |
|---------|---------|-------------|
| <prompt> | @WAAAH Build a login page | Enqueue task for any available agent |
| @<role> <prompt> | @WAAAH @FullStack Add OAuth | Route to specific role |
| update <agent> [name=X] [color=#HEX] | @WAAAH update pm-1 color=#FF5733 | Update agent display settings |
| clear | @WAAAH clear | Clear the task queue |
Role Aliases
Target agents using their display name or role:
@FullStack→full-stack-engineer@PM→project-manager@TestEng→test-engineer@Ops→ops-engineer@Designer→designer
Priority
Include urgent or critical in your prompt to set high priority:
@WAAAH @FullStack URGENT: Fix production bugConfiguration
| Variable | Description | Required |
|----------|-------------|----------|
| PLATFORM | discord, slack, or both | No (default: discord) |
| DISCORD_TOKEN | Discord bot token | For Discord |
| SLACK_BOT_TOKEN | Slack bot token | For Slack |
| SLACK_SIGNING_SECRET | Slack signing secret | For Slack |
| SLACK_APP_TOKEN | Slack app-level token | For Slack |
| APPROVED_USERS | Comma-separated user IDs | No |
| DELEGATION_CHANNEL_ID | Discord channel for delegation logs | No |
| SLACK_DELEGATION_CHANNEL_ID | Slack channel for delegation logs | No |
| MCP_SERVER_URL | WAAAH server URL | Yes |
| WAAAH_API_KEY | API key for server auth | Yes |
Development
# Install dependencies
pnpm install
# Build
pnpm build
# Run
PLATFORM=discord pnpm startTesting
pnpm testNote: The Discord adapter has limited automated test coverage. While
BotCoreandSlackAdapterhave good unit test coverage,DiscordAdapterrelies primarily on manual testing. Contributions to improve Discord test coverage are welcome!
Docker
docker compose up bot