Twitter CLI:面向终端的 X/Twitter 工具,无需 API 密钥
Twitter CLI:无需 API 密钥的终端优先 X/Twitter 工具
介绍
在社交媒体平台频繁更改 API 政策和访问要求的时代,拥有能够独立于官方 API 工作的可靠工具变得愈发重要。于是出现了 twitter-cli——一个开源的命令行界面,直接在终端提供完整的 Twitter/X 功能,无需官方 API 密钥。
该工具以 Python 包的形式开发,为开发者、内容创作者、研究人员以及需要以编程方式访问 Twitter 数据和功能的 AI 代理提供了实用的解决方案。
关键特性
阅读功能
- 时间线访问:获取 “为你推荐” 与 “关注中” 两种信息流,并支持自定义过滤
- 书签管理:列出并管理账户中已保存的推文
- 高级搜索:按关键词搜索推文,支持 “热门/最新/图片/视频” 选项卡
- 推文详情:查看单条推文及其完整的回复线程
- 用户资料:获取用户信息、推文、点赞、粉丝和关注列表
- Twitter 文章:获取长篇 Twitter 文章并导出为 Markdown
- 列表时间线:获取特定 Twitter 列表中的推文
写入操作
- 发布推文:创建新推文或回复,可附带最多 4 张图片
- 引用推文:带评论和图片转发推文
- 内容管理:删除自己的推文,管理点赞/转推,处理书签
- 结构化输出:所有写入操作均支持显式的 JSON/YAML 输出,便于脚本化使用
认证与防检测
不同于依赖官方 API 密钥的传统 Twitter 机器人,twitter-cli 采用了巧妙的认证方式:
- 浏览器 Cookie 提取:自动从 Arc、Chrome、Edge、Firefox 或 Brave 浏览器中提取 Twitter Cookie
- 环境变量:回退至
TWITTER_AUTH_TOKEN与TWITTER_CT0变量 - 防检测特性:
- 使用
curl_cffi进行 TLS 指纹冒充,并动态匹配 Chrome 版本 - 请求时间抖动以规避模式检测
- 写入操作延迟(随机 1.5–4 秒)以减轻速率限制
- 生成
x-client-transaction-id请求头 - 代理支持:通过
TWITTER_PROXY环境变量将请求路由至 HTTP 或 SOCKS5 代理
安装与设置
推荐安装方式
# 使用 uv 工具(快速、隔离)
uv tool install twitter-cli
# 使用 pipx
pipx install twitter-cli
快速入门示例
# 获取首页时间线(为你推荐)
twitter feed
# 获取关注时间线
twitter feed -t following
# 搜索特定内容
twitter search "Claude Code"
twitter search "AI agent" -t Latest --max 50
# 查看推文详情
twitter tweet 1234567890
twitter tweet https://x.com/user/status/1234567890
# 发布新推文
twitter post "Hello from twitter-cli!"
# 带图片发布
twitter post "Gallery" -i a.png -i b.jpg -i c.webp
配置与自定义
在工作目录下创建 config.yaml 文件以自定义行为:
fetch:
count: 50
filter:
mode: "topN" # "topN" | "score" | "all"
topN: 20
minScore: 50
lang: []
excludeRetweets: false
weights:
likes: 1.0
retweets: 3.0
replies: 2.0
bookmarks: 5.0
views_log: 0.5
rateLimit:
requestDelay: 2.5
maxRetries: 3
retryBaseDelay: 5.0
maxCount: 200
评分系统让你可以基于互动指标过滤内容,并可为不同交互类型配置权重。
AI 代理集成
twitter-cli 的一大亮点是对 AI 代理工作流的出色支持:
结构化输出格式
# YAML 输出(推荐用于 AI 代理)
twitter feed --yaml
# JSON 输出
twitter feed --json
# 导出文件供后续处理
twitter feed --output tweets.json
技能集成
# 安装为 AI 代理技能
npx skills add jackwener/twitter-cli
工具随附的 SKILL.md 文件专为 AI 代理执行而设计,便于将 Twitter 功能嵌入自动化工作流。
安全使用最佳实践
为避免账号受限或被封,请遵循以下指南:
- 使用代理:设置
TWITTER_PROXY以避免直接暴露 IP - 控制请求量:使用
--max 20而非--max 500 - 避免频繁重启:每次启动都会访问 x.com 以初始化防检测请求头
- 使用浏览器 Cookie 提取:提供完整的 Cookie 指纹,使流量更自然
- 优先使用住宅 IP:数据中心 IP 更容易触发速率限制
常见问题排查
认证问题
- 未找到 Twitter Cookie:确保在受支持的浏览器中已登录 x.com
- Cookie 已过期或无效:重新登录 x.com 后再试
- macOS 钥匙串问题:解锁钥匙串或修改终端应用的访问权限
API 错误
- Twitter API 错误 404:通常是 GraphQL 查询 ID 轮转导致——直接重试命令即可
- 速率限制:工具内置指数退避的自动重试机制
Windows 特定问题
- 管道/子进程输出捕获:这是 Windows Terminal 的 ConPTY 问题。使用 Git Bash 并在终端设置中将
"windowsEnableConpty": false。
项目结构与开发
代码库组织良好且持续维护:
twitter_cli/
├── cli.py # 主命令行接口
├── client.py # 带防检测的 HTTP 客户端
├── graphql.py # GraphQL 查询处理
├── parser.py # 数据解析逻辑
├── auth.py # 认证管理
├── config.py # 配置处理
├── filter.py # 内容过滤算法
└── models.py # 数据模型
贡献或修改步骤:
# 克隆仓库
git clone [email protected]:jackwener/twitter-cli.git
cd twitter-cli
# 安装开发依赖
uv sync --extra dev
# 运行测试
uv run pytest -q
相关工具
开发者还维护了多款面向其他平台的类似 CLI 工具:
- bilibili-cli:B 站视频、用户、搜索与信息流
- discord-cli:Discord 本地同步、搜索与导出
- tg-cli:Telegram 本地同步、搜索与导出
- xiaohongshu-cli:小红书笔记与账号工作流
结论
twitter-cli 采用了绕过官方 API 限制的高级方案,同时保持强大的功能性。其终端优先的设计使其非常适合:
- 开发者:需要以编程方式访问 Twitter
- 研究人员:收集社交媒体数据
- 内容创作者:管理多个账号
- AI 代理:需要结构化的 Twitter 数据
- 高级用户:偏好终端工作流
凭借开源、积极维护以及围绕防检测的细致设计,twitter-cli 为任何希望在不受官方 API 约束的情况下可靠、灵活地使用 Twitter/X 功能的用户提供了宝贵的工具。
仓库地址:https://github.com/jackwener/twitter-cli 许可证:Apache-2.0 Stars:2.4k+ 最近更新:2026 年 4 月
原始文章:
查看原文