Automate your Twitter presence. Auto Post tweets from from openAI GPT-5-nano, from a file, from a string, schedule a new tweet to be posted daily or post the tweet instantly.
This Python-based Twitter Auto-Post Bot automates tweeting, Credit to the Tweepy library for making this easy, this project enables scheduled and random tweets, offering a dynamic and engaging Twitter experience.
-
src/instantly-tweet-from-openai.py: Immediately tweets a tweet from openAI api response, currently using GPT-5-nano, but you can change the model in functions.py -
Prompt defined here
src/schedule-daily-post-from-openai.py: Automates daily tweets, Runs daily at a scheduled time and queries open ai api to create a tweet, the tweet returned is then automatically tweeted each day to fully automate twitter on auto pilot. By default the model is OPENAI GPT-5-nano but you can change the model in functions.py.-
Prompt defined here
-
Schedule time defined here
src/schedule-daily-post-from-file.py: Automates daily tweets, randomly selecting fromtweets.txt. To change the schedule time edit this.src/tweeter-random-from-file.py: Instantly posts a random tweet fromtweets.txt.
src/tweeter-from-code.py: Immediately tweets a pre-defined message with the current date, but you can change this to whatever you like.
config/keys.py: Holds both the creds for openai and twitter api.src/functions.py: Shared functions for generating tweets from openai and tweet postingrequirements.txt: Lists all necessary Python packages.
The bot now includes a powerful CLI for easy management! See the CLI Usage section below.
- Python 3.x
- Tweepy (Twitter API)
- Clone the repo:
git clone [email protected]:lewispour/Twitter-auto-Post-Bot---X.com---Tweepy-python-bot.git
- Install Python packages:
pip install -r requirements.txt
- Obtain Twitter API credentials here.
- update
config/keys.pyfile with your credentials:bearer_token = "GET_KEY_FROM_developer.twitter.com/apps" api_key = "GET_KEY_FROM_developer.twitter.com/apps" api_secret = "GET_KEY_FROM_developer.twitter.com/apps" access_token = "GET_KEY_FROM_developer.twitter.com/apps" access_token_secret = "GET_KEY_FROM_developer.twitter.com/apps" openai_key = "GET_YOUR_OPENAI_API_KEY_FROM_https://platform.openai.com/api-keys"
- Customize
data/tweets.txtwith your tweets. (SKIP: If not using tweet from file)
The easiest way to use the bot is through the browser-based web interface. See the Web UI Usage section below.
For command-line enthusiasts, see the CLI Usage section below for terminal-based commands.
Run any script using Python:
cd src/
python instantly-tweet-from-openai.pyThe Web UI provides the easiest way to manage your Twitter bot through your browser.
After installing dependencies with pip install -r requirements.txt, start the web server:
python web.pyThe web interface will be available at: http://localhost:8080
Your browser should automatically open, or you can manually navigate to the URL.
- View bot status and scheduler state
- Test Twitter API credentials
- Quick access to all features
- Monitor scheduled jobs
- AI-Generated Tweets: Generate tweets using OpenAI's GPT-5-nano with custom prompts
- Random from File: Post a random tweet from your tweets.txt library
- Custom Tweet: Write and post your own tweet with character counter
- View all tweets in your library
- Add new tweets to the library
- Edit existing tweets inline
- Delete unwanted tweets
- See library statistics
- Schedule daily AI-generated tweets at specific times
- Schedule daily posts from your tweet library
- Monitor scheduler status in real-time
- Start/stop the scheduler
- View active scheduled jobs
- The web server must remain running for scheduled tweets to work
- All times are in 24-hour format (HH:MM)
- Only one scheduler can run at a time
- The interface auto-refreshes scheduler status every 10 seconds
The CLI provides a simple and intuitive interface for all bot operations.
After installing dependencies with pip install -r requirements.txt, you can run the CLI:
python cli.py --helpTest your Twitter API credentials:
python cli.py testPost with AI (OpenAI):
python cli.py post --aiPost with custom AI prompt:
python cli.py post --ai --prompt "Create a tweet about Python programming"Post random tweet from file:
python cli.py post --filePost custom text:
python cli.py post --text "Hello Twitter! This is my custom tweet"Schedule AI-generated tweets:
python cli.py schedule-posts --ai --time "09:00"Schedule with custom prompt:
python cli.py schedule-posts --ai --time "14:30" --prompt "Create a tweet about technology"Schedule tweets from file:
python cli.py schedule-posts --file --time "12:00"List all tweets in file:
python cli.py list-tweetsAdd a new tweet to file:
python cli.py add-tweet- All times are in 24-hour format (HH:MM)
- Press
Ctrl+Cto stop the scheduler - The
--helpflag works with any command for more details - Example:
python cli.py post --help
Contributions are what make the open-source community such an amazing place to learn, inspire, and create. Any contributions you make are greatly appreciated.
Distributed under the MIT License. See LICENSE for more information.
Project Link: https://github.com/lewispour/Twitter-auto-Post-Bot---X.com---Tweepy-python-bot
- Last tested and still working on 04/12/2025 β