Important
The server used to host the Discord bot is no longer running. You may however create your own Discord bot and self-host both the client and server.
This project detects direct messages from users in Warframe and sends you a Discord DM notification.
Warframe has a trading feature enhanced by Warframe Market, a third-party site where players list buy and sell offers. You can find a seller, message them in-game, and perform the trade. But if you're waiting for messages, you might want to minimize the game, play something else, or watch Netflix. Without constantly watching the game, you'd miss incoming messages — this project solves that.
When you receive a new direct message in-game, Warframe creates a new tab in the chat window. This event is logged in the EE.log file. The client watches this log file, detects new chat tabs, extracts the sender's username, and sends a request to the server. The server then sends you a Discord DM via the bot.
You'll only be notified for new conversations. If a message arrives in an already open chat tab, it won't be logged and won't trigger a notification. Only the username is captured — message content is not logged by Warframe.
- A Discord application with a bot
- The bot token, client ID, and client secret from your Discord application
- An OAuth2 redirect URI set to
http://localhost:8080/api/v1/discord/authorize/callbackin your Discord application - At least one mutual server between your Discord account and the bot
cp .env.example .envFill in the .env file:
| Variable | Description |
|---|---|
DISCORD_BOT_TOKEN |
Your Discord bot token |
DISCORD_BOT_CLIENT_ID |
Your Discord application client ID |
DISCORD_BOT_CLIENT_SECRET |
Your Discord application client secret |
DISCORD_BOT_REDIRECT_URI |
http://localhost:8080/api/v1/discord/authorize/callback |
CLIENT_API_BASE_URL |
http://localhost:8081 |
API_BASE_URL |
http://localhost:8080 |
WF_EE_LOG_FILE_PATH |
Path to your Warframe EE.log file |
The EE.log file is typically located at:
- Windows:
%LOCALAPPDATA%/Warframe/EE.log
docker compose up -d --buildOr using the Makefile:
make compose# Terminal 1 - server
docker run --rm -p 8080:8080 --env-file .env \
-e CLIENT_API_BASE_URL=http://localhost:8081 \
-e DISCORD_BOT_REDIRECT_URI=http://localhost:8080/api/v1/discord/authorize/callback \
ghcr.io/jamess-lucass/warframe-message-notifier-server:mainPowershell:
# Terminal 2 - client
docker run --rm -p 8081:8081 \
-e API_BASE_URL=http://host.docker.internal:8080 \
-v $env:LocalAppData/Warframe/EE.log:/tmp/warframe/EE.log \
ghcr.io/jamess-lucass/warframe-message-notifier-client:mainCommand Prompt:
# Terminal 2 - client
docker run --rm -p 8081:8081 \
-e API_BASE_URL=http://host.docker.internal:8080 \
-v %LOCALAPPDATA%/Warframe/EE.log:/tmp/warframe/EE.log \
ghcr.io/jamess-lucass/warframe-message-notifier-client:mainRequires Go 1.26+ and the dotenv CLI.
# Terminal 1 - server
make server
# Terminal 2 - client
make clientOpen the URL printed in the client logs:
Please authenticate with Discord via: http://localhost:8080/api/v1/discord/authorize
Authorize with Discord and you're done. The client will now watch your log file and send you a Discord DM when you receive an in-game message.
docker compose pull
docker compose up -dDownload the new release version from releases and run it with the required environment variables set.