Still Waiting Discord keeps chats alive by nudging mentioned users who don’t reply or react within 24 hours. Self-host to tweak reminders and timing to fit your server.
- Click here to add the bot to your server.
- Mention someone in a message.
- If they don't either leave a stamp directly on the mentioned message, or leave a message in the channel/thread within 24 hours, the bot will remind them.
- If you like this bot, feel free to share it using the link below:
https://koichin.com/still-waiting/
You can self-host this bot for more control and customization. This is completely optional and requires some basic knowledge of Python and .env files.
- Never expose your Discord token or database credentials. Always add your
secretsfolder to.gitignoreand keep sensitive information private. - Do not share your bot publicly while running it locally. If you want to make changes after sharing, create a new bot application and token, and temporarily replace the token to prevent others from using your test bot.
- You can self-host this bot for almost free using services that offer free tiers. It's currently running on a GCP VM for hosting, with Firestore as the database, and these are highly recommended.
- You can also use other services, but you need to make sure the hosting and database services are compatible with both IPv4 and IPv6.
- If you want to use a different database service, you may need to modify the code, since it's designed to work with Firestore.
The following steps are for using a GCP VM and Firestore.
- Star this repo.
- Clone this repo.
- Run
git clone https://github.com/koichincom/still-waiting-discord.gitin your terminal. - Or download the ZIP file and extract it.
- Run
- Install requirements.
- If you use UV, you don't need to do anything at this step.
- If you use PIP, run
pip install -r requirements.txt.
- Create a
secretsfolder by duplicatingsecrets/.env.example. - Set up Firestore.
- Go to Google Cloud Console.
- Create a new project or select an existing one.
- Enable Firestore for your project.
- Create a service account and download the JSON key file.
- Place the JSON key file in the
secretsfolder and rename it tofirestore-credentials.json. - Reference: Google Cloud Firestore Documentation
- Create your Discord bot and add your bot token to the
.envfile:- Go to Discord Developers and create a new application.
- In the "Bot" tab, enable "PUBLIC BOT" if needed, reset the token, and copy it to your
.envfile. - In the "Bot" tab, enable all three intents: Presence, Server Members, and Message Content.
- Reference: Tech with Tim on YouTube
- Add your bot to your server:
- Go to the "OAuth2" tab and scroll to "OAuth 2 URL Generator."
- Select the "bot" scope and set the following permissions:
- View Channels
- Send Messages
- Send Messages in Threads
- Embed Links
- Copy the generated URL and use it in your browser to add the bot to your server (the bot must be set to public to share with others).
- Reference: Tech with Tim on YouTube
- Edit
config.pyto adjust any settings as needed. - Deploy to a hosting service; GCP VM is recommended.
This project is open-source under the MIT License. Contributions are welcome! If you have ideas, suggestions, or improvements, feel free to open an issue or submit a pull request.
The project includes comprehensive test coverage for all major components. See tests/README.md for detailed testing documentation.
This bot does not store any message content. It only stores data for sending reminders and for project statistics.
After sending a reminder, this data is deleted automatically:
- IDs of mentioned users
- IDs of the messages
- IDs of the channels
- Timestamps of the messages received
This data is stored permanently and may be used to publicly share bot usage statistics, but it does not include any personal information or message content:
- The number of servers the bot is in
- The number of users who have used the bot
- The number of messages processed by the bot
This bot is provided as-is with no guarantees. Use at your own risk. The author and any contributors are not responsible for any issues that arise from using this bot.
