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 采用了巧妙的认证方式:

  1. 浏览器 Cookie 提取:自动从 Arc、Chrome、Edge、Firefox 或 Brave 浏览器中提取 Twitter Cookie
  2. 环境变量:回退至 TWITTER_AUTH_TOKENTWITTER_CT0 变量
  3. 防检测特性
  4. 使用 curl_cffi 进行 TLS 指纹冒充,并动态匹配 Chrome 版本
  5. 请求时间抖动以规避模式检测
  6. 写入操作延迟(随机 1.5–4 秒)以减轻速率限制
  7. 生成 x-client-transaction-id 请求头
  8. 代理支持:通过 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 功能嵌入自动化工作流。

安全使用最佳实践

为避免账号受限或被封,请遵循以下指南:

  1. 使用代理:设置 TWITTER_PROXY 以避免直接暴露 IP
  2. 控制请求量:使用 --max 20 而非 --max 500
  3. 避免频繁重启:每次启动都会访问 x.com 以初始化防检测请求头
  4. 使用浏览器 Cookie 提取:提供完整的 Cookie 指纹,使流量更自然
  5. 优先使用住宅 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 月

原始文章: 查看原文

分享这篇文章