myGPTReader
myGPTReader is a slack bot that can read any webpage, ebook, video(YouTube) or document and summarize it with chatGPT. It can also talk to you via voice using the content in the channel.
Install Guide
Draft — community verifyingGenerated by claude-sonnet-auto · 5/27/2026
Prerequisites
Before installing myGPTReader, make sure you have the following ready:
- Python 3.9+ installed on your server or local machine
- A Slack workspace where you have permission to install apps
- An OpenAI account with access to the GPT API
- Git installed for cloning the repository
- A server or hosting environment capable of running a persistent Python process (e.g., a VPS, fly.io, or similar)
Get Your API Keys
1. OpenAI API Key
- Go to https://platform.openai.com/api-keys
- Sign in or create an account
- Click Create new secret key
- Copy and save the key — you won't be able to view it again
2. Slack Bot Token
- Go to https://api.slack.com/apps and click Create New App
- Choose From scratch, give it a name (e.g.,
myGPTReader), and select your workspace - In the left sidebar, go to OAuth & Permissions
- Under Bot Token Scopes, add the following scopes:
app_mentions:readchannels:historychat:writefiles:readim:historyim:write
- Click Install to Workspace and approve the permissions
- Copy the Bot User OAuth Token (starts with
xoxb-)
3. Slack App-Level Token
- In your Slack app settings, go to Basic Information
- Scroll to App-Level Tokens and click Generate Token and Scopes
- Add the
connections:writescope - Copy the generated token (starts with
xapp-)
4. Slack Signing Secret
- In your Slack app settings, go to Basic Information
- Under App Credentials, copy the Signing Secret
Check the project README for details on any additional Slack configuration required for voice features or file handling.
Installation
Clone the repository and set up the Python environment:
# Clone the repository
git clone https://github.com/madawei2699/myGPTReader.git
cd myGPTReader
Create and activate a virtual environment:
# Create virtual environment
python3 -m venv venv
# Activate on macOS/Linux
source venv/bin/activate
# Activate on Windows
venv\Scripts\activate
Install dependencies:
pip install -r requirements.txt
Configuration
Create a .env file in the project root directory:
cp .env.example .env # if an example file exists, otherwise create it manually
Then populate it with your values. The following environment variables are required:
| Variable | Description | Where to get it |
|----------|-------------|-----------------|
| OPENAI_API_KEY | Your OpenAI secret key for GPT API access | platform.openai.com/api-keys |
| SLACK_BOT_TOKEN | Bot User OAuth Token for your Slack app | Slack app dashboard → OAuth & Permissions |
| SLACK_APP_TOKEN | App-Level Token enabling Socket Mode | Slack app dashboard → Basic Information |
| SLACK_SIGNING_SECRET | Used to verify requests come from Slack | Slack app dashboard → Basic Information |
| OPENAI_MODEL | The GPT model to use (e.g., gpt-3.5-turbo or gpt-4) | Choose based on your OpenAI plan |
| MY_SLACK_BOT_TOKEN | Alias for the bot token if required separately | Same as SLACK_BOT_TOKEN |
Check the project README and any
.env.examplefile in the repository for the full and up-to-date list of required variables, including any keys needed for voice features (e.g., Azure Speech Services).
Running the Bot
Development Mode
With your virtual environment active, run:
python app.py
Watch the terminal output for confirmation that the bot has connected to Slack successfully.
Production Mode
For a persistent production deployment, use a process manager:
# Using gunicorn (if applicable)
gunicorn app:app
# Or keep it running with nohup
nohup python app.py &
If deploying to fly.io (as suggested by the GitHub Actions workflow in the repo):
# Install the fly CLI, then:
fly launch
fly deploy
Check the
.github/workflows/fly.ymlfile in the repository for the exact fly.io deployment configuration used by the project maintainers.
Testing
Follow these steps to verify the bot is working correctly:
-
Invite the bot to a Slack channel:
/invite @myGPTReader -
Send a basic mention to confirm the bot is responsive:
@myGPTReader helloThe bot should reply with a greeting or acknowledgement.
-
Test URL summarization by pasting a link in a message to the bot:
@myGPTReader https://en.wikipedia.org/wiki/Artificial_intelligenceExpect the bot to return a summarized version of the page content within a few seconds.
-
Check your terminal or server logs for any error output:
tail -f nohup.out # if running with nohup
Troubleshooting
| Problem | Likely cause | Fix |
|---------|-------------|-----|
| Bot does not respond in Slack | Socket Mode is not enabled or SLACK_APP_TOKEN is missing/incorrect | Go to Slack app settings → Socket Mode and enable it; verify your SLACK_APP_TOKEN in .env |
| openai.AuthenticationError in logs | OPENAI_API_KEY is invalid or not set | Double-check the key in .env matches the one at platform.openai.com/api-keys; ensure there are no extra spaces |
| Bot joins the channel but returns no summary | The URL may be behind a paywall or bot lacks internet access | Test with a publicly accessible URL; confirm your server has outbound HTTP access |
| ModuleNotFoundError on startup | Dependencies not installed or wrong Python environment is active | Run pip install -r requirements.txt inside the activated virtual environment |
| Voice feature not working | Missing third-party speech service credentials (e.g., Azure) | Check the project README for voice-specific environment variables and API key setup |
Sign in to leave feedback on this guide.