A command-line interface for Twitter/X using cookie-based authentication
Project description
Twitter/X from your terminal. No API keys. No bullshit.
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
Commands
| Command | Description |
|---|---|
clix feed [--type for-you|following] [--count N] |
Timeline |
clix search <query> [--type top|latest|photos|videos] |
Search tweets |
clix tweet <id> |
View tweet + thread |
clix user <handle> |
Profile + recent tweets |
clix post <text> [--reply-to ID] |
Post a tweet |
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 bookmarks |
List bookmarks |
clix auth |
Auth status / setup |
clix config |
Manage config |
Agent Mode
Every command supports --json for structured output. Pipe detection is automatic — non-TTY gets JSON by default.
# explicit
clix feed --json | jq '.tweets[0].text'
# automatic when piped
clix search "LLM" | python process.py
See SKILL.md for AI agent integration docs.
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"
}
}
}
}
14 tools: get_feed, search, get_tweet, get_user, list_bookmarks, post_tweet, delete_tweet, like, unlike, retweet, unretweet, bookmark, unbookmark, auth_status
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file clix0-0.3.0.tar.gz.
File metadata
- Download URL: clix0-0.3.0.tar.gz
- Upload date:
- Size: 128.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd972ee272712be794e00a9eb3d1b73cdc092506b872cc64c5208fc22ef7256d
|
|
| MD5 |
4e19333672b192683dbca77c0caf2bf4
|
|
| BLAKE2b-256 |
0aa85beec61bf9755653c7ed9cf85071c6349167b131d921b92541967835bc7a
|
Provenance
The following attestation bundles were made for clix0-0.3.0.tar.gz:
Publisher:
release.yml on spideystreet/clix
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
clix0-0.3.0.tar.gz -
Subject digest:
fd972ee272712be794e00a9eb3d1b73cdc092506b872cc64c5208fc22ef7256d - Sigstore transparency entry: 1106077233
- Sigstore integration time:
-
Permalink:
spideystreet/clix@97cdf3d629f858c21843c25393b8fd97c0a6f820 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/spideystreet
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@97cdf3d629f858c21843c25393b8fd97c0a6f820 -
Trigger Event:
push
-
Statement type:
File details
Details for the file clix0-0.3.0-py3-none-any.whl.
File metadata
- Download URL: clix0-0.3.0-py3-none-any.whl
- Upload date:
- Size: 59.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8321004f041c92019fa3fb977d8d5cd30936a775e02503d5bf4be186b5a0d52d
|
|
| MD5 |
571754c56293125637a4df4ec047f596
|
|
| BLAKE2b-256 |
bd1a0c64a298bf2c49e598d9613189d9b54bd4d886b3ba0afc75df206a4a73cd
|
Provenance
The following attestation bundles were made for clix0-0.3.0-py3-none-any.whl:
Publisher:
release.yml on spideystreet/clix
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
clix0-0.3.0-py3-none-any.whl -
Subject digest:
8321004f041c92019fa3fb977d8d5cd30936a775e02503d5bf4be186b5a0d52d - Sigstore transparency entry: 1106077269
- Sigstore integration time:
-
Permalink:
spideystreet/clix@97cdf3d629f858c21843c25393b8fd97c0a6f820 -
Branch / Tag:
refs/tags/v0.3.0 - Owner: https://github.com/spideystreet
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@97cdf3d629f858c21843c25393b8fd97c0a6f820 -
Trigger Event:
push
-
Statement type: