A Discord bot that posts notifications to a specified channel when someone adds a reaction to a message. It only notifies on the first reaction — subsequent reactions by the same or other users are ignored.
- Instant notification when a user reacts to a message for the first time
- Supports both emoji and custom guild emojis
- Skips bot reactions to prevent notification loops
- Configurable log levels
- Node.js >= 24
- A Discord Bot Token
- A target Discord Channel ID where notifications will be posted
- Go to the Discord Developer Portal.
- Click New Application, give it a name, and create it.
- Navigate to the Bot section and click Add Bot.
- Copy the Token — you will need it for the
.envfile.
- In Discord, enable Developer Mode: go to User Settings → Advanced → Developer Mode.
- Right-click the channel where you want notifications to appear and select Copy ID.
Create a .env file in the project root:
cp .env.example .envEdit .env and fill in your values:
DISCORD_TOKEN=your_bot_token_here
CHANNEL_ID=your_notification_channel_id_here
LOG_LEVEL=info
EMBED_COLOR=#your_preferred_hex_color
HEALTH_PORT=3000| Variable | Required | Description |
|---|---|---|
DISCORD_TOKEN |
Yes | Your Discord bot token |
CHANNEL_ID |
Yes | The channel ID where notifications will be sent |
LOG_LEVEL |
No | Log level: trace, debug, info, warn, error, fatal (default: info) |
EMBED_COLOR |
No | Hex color for the notification embed, e.g. #8B9D4F (default: #9013FE) |
HEALTH_PORT |
No | Port for the HTTP health check server (default: 3000) |
npm installProduction:
npm startDevelopment (with auto-reload):
npm run dev-
Copy
.env.exampleto.envand fill in your values (see Configure Environment Variables). -
Start the container:
docker compose up -d
-
Build the image:
docker build -t reactionsnitch . -
Run the container:
docker run -d --name reactionsnitch --env-file .env --restart unless-stopped reactionsnitch