{"id":46771672,"url":"https://github.com/spideystreet/clix","last_synced_at":"2026-04-01T17:46:46.067Z","repository":{"id":343271310,"uuid":"1176985960","full_name":"spideystreet/clix","owner":"spideystreet","description":"X from terminal. No API keys needed. Just plug your AI Agent.","archived":false,"fork":false,"pushed_at":"2026-03-18T21:22:55.000Z","size":3457,"stargazers_count":147,"open_issues_count":4,"forks_count":14,"subscribers_count":2,"default_branch":"main","last_synced_at":"2026-03-19T09:32:05.817Z","etag":null,"topics":["agents","cli","mcp","twitter","x"],"latest_commit_sha":null,"homepage":"http://clix0.dev/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/spideystreet.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-09T15:22:33.000Z","updated_at":"2026-03-19T02:24:10.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/spideystreet/clix","commit_stats":null,"previous_names":["spideystreet/x-cli"],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/spideystreet/clix","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spideystreet%2Fclix","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spideystreet%2Fclix/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spideystreet%2Fclix/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spideystreet%2Fclix/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/spideystreet","download_url":"https://codeload.github.com/spideystreet/clix/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/spideystreet%2Fclix/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31290585,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-01T13:12:26.723Z","status":"ssl_error","status_checked_at":"2026-04-01T13:12:25.102Z","response_time":53,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["agents","cli","mcp","twitter","x"],"created_at":"2026-03-09T23:38:31.579Z","updated_at":"2026-04-01T17:46:46.062Z","avatar_url":"https://github.com/spideystreet.png","language":"Python","funding_links":[],"categories":["cli"],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://github.com/user-attachments/assets/e7c0c8af-ae61-4a85-8aef-32a8367f505b\" alt=\"clix\" width=\"120\"\u003e\n\u003c/p\u003e\n\n\u003ch3 align=\"center\"\u003e\u003cb\u003eX from terminal. Built for humans and AI agents. No API keys.\u003c/b\u003e\u003c/h3\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/python-3.11+-blue?style=flat-square\u0026logo=python\u0026logoColor=white\" alt=\"Python 3.11+\"\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-MIT-blue?style=flat-square\" alt=\"MIT\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://pypi.org/project/clix0/\"\u003e\u003cimg src=\"https://img.shields.io/pypi/v/clix0?style=flat-square\u0026label=PyPI\u0026color=green\u0026cacheSeconds=3600\" alt=\"PyPI\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\n## Why?\n\nTwitter killed free API access. clix uses **cookie-based auth** — just log in with your browser, and you're in. Zero API keys, zero OAuth dance.\n\nThree interfaces, one tool: **rich terminal output** for humans, **`--json`/`--yaml`/`--compact`** for scripts, and a built-in **MCP server** for AI agents.\n\n## Quick Start\n\n```bash\n# install\nuv pip install clix0\n\n# authenticate (extracts cookies from your browser)\nclix auth login\n```\n\n## Commands\n\n### Content\n\n| Command | Description |\n|---|---|\n| `clix feed [--type for-you\\|following] [--count N]` | Timeline |\n| `clix search \u003cquery\u003e [--type top\\|latest\\|photos\\|videos]` | Search tweets |\n| `clix trending` | Trending topics |\n| `clix tweet \u003cid\u003e [--export FILE]` | View tweet + thread (export articles as Markdown) |\n| `clix tweets \u003cid1\u003e \u003cid2\u003e ...` | Batch fetch tweets |\n| `clix user \u003chandle\u003e` | Profile + recent tweets |\n| `clix users \u003chandle1\u003e \u003chandle2\u003e ...` | Batch fetch users |\n| `clix bookmarks` | List bookmarks |\n| `clix bookmarks-folders` | List bookmark folders |\n| `clix bookmarks-folder \u003cid\u003e` | View tweets in a bookmark folder |\n\n### Actions\n\n| Command | Description |\n|---|---|\n| `clix post \u003ctext\u003e [--reply-to ID\\|URL] [--image FILE]` | Post a tweet (up to 4 images) |\n| `clix delete \u003cid\u003e` | Delete a tweet |\n| `clix like \u003cid\u003e` / `clix unlike \u003cid\u003e` | Like / unlike |\n| `clix retweet \u003cid\u003e` / `clix unretweet \u003cid\u003e` | Retweet / undo |\n| `clix bookmark \u003cid\u003e` / `clix unbookmark \u003cid\u003e` | Bookmark / remove |\n| `clix follow \u003chandle\u003e` / `clix unfollow \u003chandle\u003e` | Follow / unfollow |\n| `clix block \u003chandle\u003e` / `clix unblock \u003chandle\u003e` | Block / unblock |\n| `clix mute \u003chandle\u003e` / `clix unmute \u003chandle\u003e` | Mute / unmute |\n| `clix download \u003ctweet-id\u003e [--output-dir DIR]` | Download media |\n\n### Scheduled Tweets\n\n| Command | Description |\n|---|---|\n| `clix schedule \u003ctext\u003e --at \u003ctime\u003e` | Schedule a tweet |\n| `clix scheduled` | List scheduled tweets |\n| `clix unschedule \u003cid\u003e` | Cancel scheduled tweet |\n\n### Lists\n\n| Command | Description |\n|---|---|\n| `clix lists` | View your lists |\n| `clix lists view \u003cid\u003e` | Tweets from a list |\n| `clix lists create \u003cname\u003e [--private]` | Create a list |\n| `clix lists delete \u003cid\u003e` | Delete a list |\n| `clix lists members \u003cid\u003e` | View members |\n| `clix lists add-member \u003cid\u003e \u003chandle\u003e` | Add member |\n| `clix lists remove-member \u003cid\u003e \u003chandle\u003e` | Remove member |\n| `clix lists pin \u003cid\u003e` / `clix lists unpin \u003cid\u003e` | Pin / unpin list |\n\n### Jobs\n\n| Command | Description |\n|---|---|\n| `clix jobs search \u003cquery\u003e [--location LOC] [--location-type remote\\|onsite\\|hybrid]` | Search job listings on X |\n| `clix jobs view \u003cid\u003e` | View job details |\n\n### Direct Messages\n\n| Command | Description |\n|---|---|\n| `clix dm inbox` | View conversations |\n| `clix dm send \u003chandle\u003e \u003ctext\u003e` | Send a DM |\n\n### System\n\n| Command | Description |\n|---|---|\n| `clix auth status\\|login\\|set\\|accounts\\|switch\\|import` | Authentication |\n| `clix config` | Manage config |\n| `clix doctor` | Run diagnostics |\n\n## Output Modes\n\nEvery command supports `--json` for structured output. Pipe detection is automatic — non-TTY gets JSON by default.\n\n```bash\n# structured JSON\nclix feed --json | jq '.tweets[0].text'\n\n# token-optimized for AI agents\nclix feed --compact\n\n# YAML\nclix feed --yaml\n\n# full text (no truncation)\nclix feed --full-text\n```\n\n## MCP Server\n\nclix ships as an [MCP](https://modelcontextprotocol.io) server — any MCP-compatible client can use it.\n\n```json\n{\n  \"mcpServers\": {\n    \"clix\": {\n      \"command\": \"uvx\",\n      \"args\": [\"clix0\", \"mcp\"]\n    }\n  }\n}\n```\n\nOr with explicit auth:\n\n```json\n{\n  \"mcpServers\": {\n    \"clix\": {\n      \"command\": \"uvx\",\n      \"args\": [\"clix0\", \"mcp\"],\n      \"env\": {\n        \"X_AUTH_TOKEN\": \"your-token\",\n        \"X_CT0\": \"your-ct0\"\n      }\n    }\n  }\n}\n```\n\n**46 tools** covering all commands: feed, search, trending, tweets, users, bookmarks, lists, DMs, jobs, post, delete, like, unlike, retweet, unretweet, bookmark, unbookmark, follow, unfollow, block, unblock, mute, unmute, schedule, download, and more.\n\n## Proxy Support\n\n```bash\n# via environment variable\nCLIX_PROXY=socks5://127.0.0.1:1080 clix feed\n\n# via config\nclix config set network.proxy socks5://127.0.0.1:1080\n```\n\n## Contributing\n\nSee [`CONTRIBUTING.md`](CONTRIBUTING.md).\n\n## Disclaimer\n\n\u003e 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.\n\n## License\n\n[MIT](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspideystreet%2Fclix","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fspideystreet%2Fclix","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fspideystreet%2Fclix/lists"}