Tweet from your terminal! A simple, fast CLI for posting to X (Twitter) with support for text, images, and videos.
- 🔐 OAuth 2.0 authentication with X/Twitter
- 📝 Post text tweets
- 🖼️ Upload and post images (PNG, JPEG, GIF, WebP)
- 🎥 Upload and post videos (MP4, MOV)
- 💬 Interactive shell mode
- 🚀 Global CLI command after installation
npm install -g foundnone-xterm
macOS/Linux:
# Clone the repository
git clone https://github.com/transmental/xterm.git
cd xterm
# Run the installer
./install.sh
Windows:
# Clone the repository
git clone https://github.com/transmental/xterm.git
cd xterm
# Run the installer
install.bat
- Make sure you have Node.js installed
- Clone this repository
- Run these commands:
npm install
npm run install-global
-
Get X/Twitter API credentials (Optional):
- For most users: No setup needed! xterm includes default credentials to get you started quickly
- For advanced users: Get your own credentials at developer.twitter.com
- Create a new app and copy your Client ID and Client Secret
-
Set environment variables (Optional): If you want to use your own credentials, create a
.env
file or set these environment variables:X_CLIENT_ID=your_client_id_here # Optional - uses default if not set X_CLIENT_SECRET=your_client_secret_here # Optional for PKCE X_REDIRECT_URI=http://127.0.0.1:8787/callback # Default, can be customized
-
Start using xterm:
xterm login
xterm
This opens an interactive shell where you can run commands:
-
login
- Authenticate with X/Twitter -
whoami
- Show your account info -
post <text>
- Post a text tweet -
post-media <file-path> <text>
- Post with image/video -
help
- Show available commands -
exit
- Quit
# Post text
xterm post "Hello from the terminal! 🚀"
# Post with image
xterm post-media ./image.jpg "Check out this photo!"
# Post with video
xterm post-media ./video.mp4 "Amazing video content!"
- Images: PNG, JPEG, GIF, WebP
- Videos: MP4, MOV
# Install dependencies
npm install
# Build
npm run build
# Run in development mode
npm run dev
# Type checking
npm run typecheck
# Install globally for testing
npm run install-global
# Uninstall global version
npm run uninstall-global
macOS/Linux:
./uninstall.sh
Windows:
uninstall.bat
Or manually:
npm run uninstall-global
Variable | Description | Default |
---|---|---|
X_CLIENT_ID |
Your X/Twitter Client ID | Uses built-in default (optional) |
X_REDIRECT_URI |
OAuth redirect URI | http://127.0.0.1:8787/callback |
Tokens and OAuth state are stored in ~/.xterm/
directory.
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
ISC License
Built with:
- twitter-api-v2 - Twitter API client
- yargs - CLI framework
- TypeScript for type safety