Skip to main content

A command-line interface for Twitter/X using cookie-based authentication

Project description

clix

X from terminal. No API keys. No bullshit.

Python 3.11+ MIT PyPI


Why?

Twitter killed free API access. clix uses cookie-based auth — just log in with your browser, and you're in. Works for humans (rich terminal output) and AI agents (structured JSON). Zero API keys, zero OAuth dance.

Quick Start

# install
uv pip install clix0

# authenticate (extracts cookies from your browser)
clix auth login

Commands

Content

Command Description
clix feed [--type for-you|following] [--count N] Timeline
clix search <query> [--type top|latest|photos|videos] Search tweets
clix trending Trending topics
clix tweet <id> [--export FILE] View tweet + thread (export articles as Markdown)
clix tweets <id1> <id2> ... Batch fetch tweets
clix user <handle> Profile + recent tweets
clix users <handle1> <handle2> ... Batch fetch users
clix bookmarks List bookmarks

Actions

Command Description
clix post <text> [--reply-to ID] [--image FILE] Post a tweet (up to 4 images)
clix delete <id> Delete a tweet
clix like <id> / clix unlike <id> Like / unlike
clix retweet <id> / clix unretweet <id> Retweet / undo
clix bookmark <id> / clix unbookmark <id> Bookmark / remove
clix follow <handle> / clix unfollow <handle> Follow / unfollow
clix block <handle> / clix unblock <handle> Block / unblock
clix mute <handle> / clix unmute <handle> Mute / unmute
clix download <tweet-id> [--output-dir DIR] Download media

Scheduled Tweets

Command Description
clix schedule <text> --at <time> Schedule a tweet
clix scheduled List scheduled tweets
clix unschedule <id> Cancel scheduled tweet

Lists

Command Description
clix lists View your lists
clix lists view <id> Tweets from a list
clix lists create <name> [--private] Create a list
clix lists delete <id> Delete a list
clix lists members <id> View members
clix lists add-member <id> <handle> Add member
clix lists remove-member <id> <handle> Remove member

Direct Messages

Command Description
clix dm inbox View conversations
clix dm send <handle> <text> Send a DM

System

Command Description
clix auth status|login|set|accounts|switch|import Authentication
clix config Manage config
clix doctor Run diagnostics

Output Modes

Every command supports --json for structured output. Pipe detection is automatic — non-TTY gets JSON by default.

# structured JSON
clix feed --json | jq '.tweets[0].text'

# token-optimized for AI agents
clix feed --compact

# YAML
clix feed --yaml

# full text (no truncation)
clix feed --full-text

MCP Server

clix ships as an MCP server — any MCP-compatible client can use it.

{
  "mcpServers": {
    "clix": {
      "command": "uvx",
      "args": ["clix0", "mcp"]
    }
  }
}

Or with explicit auth:

{
  "mcpServers": {
    "clix": {
      "command": "uvx",
      "args": ["clix0", "mcp"],
      "env": {
        "X_AUTH_TOKEN": "your-token",
        "X_CT0": "your-ct0"
      }
    }
  }
}

38 tools covering all commands: feed, search, trending, tweets, users, bookmarks, lists, DMs, post, delete, like, unlike, retweet, unretweet, bookmark, unbookmark, follow, unfollow, block, unblock, mute, unmute, schedule, download, and more.

Proxy Support

# via environment variable
CLIX_PROXY=socks5://127.0.0.1:1080 clix feed

# via config
clix config set network.proxy socks5://127.0.0.1:1080

Contributing

See CONTRIBUTING.md.

Disclaimer

This tool is for educational and personal use only. It is not affiliated with, endorsed by, or associated with X Corp (formerly Twitter). Use at your own risk. The authors are not responsible for any consequences resulting from the use of this software. By using this tool, you agree to comply with X/Twitter's Terms of Service.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

clix0-0.3.2.tar.gz (3.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

clix0-0.3.2-py3-none-any.whl (61.5 kB view details)

Uploaded Python 3

File details

Details for the file clix0-0.3.2.tar.gz.

File metadata

  • Download URL: clix0-0.3.2.tar.gz
  • Upload date:
  • Size: 3.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for clix0-0.3.2.tar.gz
Algorithm Hash digest
SHA256 7138a13a98b2faa7dc4093a92ab2c186809f6dbd9bfe5c787b873c5028e63ab7
MD5 fca80fba82be5a8b655cf18724ee365a
BLAKE2b-256 a39b281d8e9171726ac10a216170f179e6fc2cc64f20b66a2b788e1a328b2ad6

See more details on using hashes here.

Provenance

The following attestation bundles were made for clix0-0.3.2.tar.gz:

Publisher: release.yml on spideystreet/clix

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file clix0-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: clix0-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 61.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for clix0-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 d2771e2101d878d2221e819463ae72cedcc3f91e4c2b9d98e880385cbf1aefc8
MD5 831a0d648a69c8b089ddac71dd01c965
BLAKE2b-256 e2fb81087f96f8baa6f1d96aabaee1471e603766229774d400ec5a0612776ba4

See more details on using hashes here.

Provenance

The following attestation bundles were made for clix0-0.3.2-py3-none-any.whl:

Publisher: release.yml on spideystreet/clix

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page