Skip to content

blacktop/twit

Repository files navigation

twit

A terminal UI client for Twitter/X


demo

Requirements and constraints

  • 2FA must be disabled for the account you use with this tool.

Warning

This may violate Twitter/X ToS. Use a fresh burner account and do NOT reuse your primary account.

Tip

For the best experience, we recommend using Ghostty
However, twit should still look good in other modern terminals.

Getting Started

Install

Homebrew (macOS):

brew install --cask blacktop/tap/twit

GitHub Releases:

  1. Download the latest release from GitHub Releases.
  2. Extract and move the binary into your PATH:
chmod +x twit
mv twit /usr/local/bin/

Build from source

git clone https://github.com/blacktop/twit.git
cd twit
cargo build --release
./target/release/twit

Cross-build (macOS -> Linux) with cargo-zigbuild

Requires Zig and cargo-zigbuild installed.

cargo install cargo-zigbuild
rustup target add x86_64-unknown-linux-gnu
cargo zigbuild --release --target x86_64-unknown-linux-gnu --no-default-features

Note: --no-default-features disables audio playback (ALSA) for cross builds. Use a Linux build environment or cross if you need audio enabled.

Auth cookies (auth_token + ct0)

You must extract cookies from an active X session in your browser.

Firefox:

  1. Log in to X.
  2. Open DevTools → Storage → Cookies → https://x.com.
  3. Copy the auth_token and ct0 cookie values.

Chrome:

  1. Log in to X.
  2. Open DevTools → Application → Cookies → https://x.com.
  3. Copy the auth_token and ct0 cookie values.

Put these values in config.yaml (see config.yml.example).

Power features (AI + TTS)

twit can summarize links and tweets (and optionally images) with multiple AI providers, and read summaries aloud via TTS.

AI summarization

Supported providers include:

  • OpenAI
  • Anthropic
  • Google (Gemini)
  • OpenRouter
  • Copilot
  • Local (Ollama / LM Studio)
  • Apple Foundation Models (macOS only)

Behavior is configured under ai: in config.yaml:

  • enabled, provider, model
  • summary_length (short/medium/long)
  • system_prompt (controls tone/style)
  • summarize_links, summarize_tweets, summarize_images
  • max_output_tokens (0 = auto)

API keys can come from config.yaml or env vars (see config.yml.example).

Text-to-speech

Supported TTS providers include:

  • macOS say
  • OpenAI
  • Google
  • ElevenLabs

Behavior is configured under tts: in config.yaml:

  • enabled, provider, voice, rate_wpm
  • auto_speak_summaries

Use the TUI keys s to summarize and v to speak.

Configuration

Config file location:

  • macOS: ~/Library/Application Support/io.blacktop.twit/config.yaml
  • Linux: ~/.config/twit/config.yaml
  • Windows: %APPDATA%\\io.blacktop.twit\\config.yaml

Start from config.yml.example and copy it to the location above.

Debug logging

Logging is disabled by default. To enable debug logging:

# Via CLI flag (for one session)
twit --debug

# Or set in config.yaml (persistent)
debug: true

Logs are written to:

  • macOS: ~/Library/Caches/io.blacktop.twit/twit.log
  • Linux: ~/.cache/twit/twit.log

License

MIT License - see LICENSE for details.

About

A beautiful TUI client for Twitter/X

Resources

License

Stars

Watchers

Forks

Packages

No packages published