Twitter Cli

Polar Sponsor
爱发电 赞助
.NET 9.0

使用 twitter-cli 完成所有 Twitter/X 操作 — 读取推文、发布、回复、引用、点赞、转发、关注、搜索、用户查询。在需要时调用。

Twitter-cli – Twitter/X CLI工具.

功能概述

Twitter-cli – Twitter/X CLI工具.是一项面向实际任务的技能,主要用于Binary: twitter.;Credities:浏览器饼干(自动提取)或env vars.;

核心要点

  • Setup.;
  • Anthurtication.;
  • Enthurtical.;

使用与执行

IMPORANTF AGENTS:在执行任何Twitter-cli命令之前, Yo。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。

结果检查与注意事项

执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。该技能适合用于一次性任务,也可以接入自动化工作流,与其他技能或上层代理配合完成更完整的业务链路;在组合使用时,应明确每一步的输入输出关系,并避免不同步骤之间出现参数冲突。结果生成后应检查内容的完整性、准确性、一致性和可用性,必要时抽样复核并根据反馈调整配置;涉及外部服务、账号凭据、个人信息或敏感数据时,还需遵守相应的权限、安全与合规要求。

twitter-cli — Twitter/X 命令行工具

二进制文件: twitter 认证凭证: 浏览器 Cookie(自动提取)或环境变量

安装配置

# 安装(需 Python 3.8+)
uv tool install twitter-cli
# 或:pipx install twitter-cli

# 升级至最新版(推荐,避免 API 错误)
uv tool upgrade twitter-cli
# 或:pipx upgrade twitter-cli

认证机制

对 Agent 的重要提示:在执行任何 twitter-cli 命令前,你必须首先检查认证凭证是否存在。若不存在,则必须主动引导用户完成认证流程。请勿假设凭证已配置。

关键说明:写操作(发布推文、回复、引用推文)必须依赖完整浏览器 Cookie。仅通过环境变量提供 auth_token 和 ct0 可能导致 226 错误(“疑似自动化行为”)。为获得最佳效果,请使用浏览器 Cookie 提取方式。

步骤 0:检查是否已认证

twitter status --yaml >/dev/null && echo "AUTH_OK" || echo "AUTH_NEEDED"

若输出 AUTH_OK,可跳至「命令参考」章节; 若输出 AUTH_NEEDED,请继续引导用户完成以下步骤:

步骤 1:引导用户完成认证

方法 A:浏览器 Cookie 提取(推荐)

请确保用户已在 Arc、Chrome、Edge、Firefox 或 Brave 中登录 x.com。twitter-cli 支持自动提取 Cookie。 所有 Chrome 用户配置文件将被自动扫描。如需指定特定配置文件,请设置:TWITTER_CHROME_PROFILE="Profile 2" twitter feed。

twitter whoami

方法 B:环境变量方式

export TWITTER_AUTH_TOKEN="<从浏览器获取的 auth_token>"
export TWITTER_CT0="<从浏览器获取的 ct0>"
twitter whoami

方法 C:完整 Cookie 字符串(适用于云环境/远程 Agent)

请告知用户:

我需要你的 Twitter 登录凭证。请按以下步骤获取:

  1. 使用 Chrome/Edge/Firefox 打开 https://x.com(确保已登录)
  2. 按 F12 打开开发者工具 → 切换到 Network 标签页
  3. 刷新当前页面,点击任意一条 x.com 请求
  4. 在 Request Headers 区域中找到 Cookie: 行,右键 → 复制其值
  5. 将完整的 Cookie 字符串发送给我

⚠️ Cookie 包含登录敏感信息,请勿分享给他人。

随后提取并设置环境变量:

FULL_COOKIE="<用户的 Cookie 字符串>"
export TWITTER_AUTH_TOKEN=$(echo "$FULL_COOKIE" | grep -oE 'auth_token=[a-f0-9]+' | cut -d= -f2)
export TWITTER_CT0=$(echo "$FULL_COOKIE" | grep -oE 'ct0=[a-f0-9]+' | cut -d= -f2)
twitter whoami

步骤 2:处理常见认证问题

现象 Agent 应对措施
No Twitter cookies found 引导用户在浏览器中登录 x.com,或手动设置环境变量
读操作正常,写操作返回 226 错误 缺少完整 Cookie —— 请改用浏览器 Cookie 提取方式,而非环境变量
Cookie expired (401/403) 请用户重新登录 x.com 后重试
用户更改了密码 所有旧 Cookie 已失效 —— 需重新提取

输出格式

默认格式:富文本表格(面向人类阅读)

twitter feed                          # 美观的表格输出

YAML / JSON:结构化输出

当标准输出非 TTY(例如管道或重定向)时,默认自动使用 YAML 格式。可通过 OUTPUT=yaml|json|rich|auto 显式覆盖。

twitter feed --yaml
twitter feed --json | jq '.[0].text'

所有机器可读输出均遵循 SCHEMA.md 中定义的数据信封结构。 推文与用户数据现统一置于 .data 字段下。

完整正文:--full-text 参数(仅限富文本表格)

当用户希望在终端表格中查看完整推文内容时,请使用 --full-text。该参数影响如下富文本列表视图:feed、bookmarks、search、user-posts、likes、list,以及 tweet 命令中的回复表格。 它不会影响 --json、--yaml 或 -c(紧凑模式)输出。

twitter feed --full-text
twitter search "AI agent" --full-text
twitter user-posts elonmusk --max 20 --full-text
twitter tweet 1234567890 --full-text

紧凑模式:-c 参数(最小化 token 数量,适用于 LLM 上下文)

twitter -c feed --max 10              # 最小字段集,非常适合 LLM 上下文
twitter -c search "AI" --max 20       # token 数量比 --json 减少约 80%

紧凑模式每条推文包含字段:id、author(@handle)、text(截断至 140 字符)、likes、rts、time(简短格式)

命令参考

读操作

twitter status                         # 快速认证检查
twitter status --yaml                  # 结构化认证状态
twitter whoami                         # 当前已认证用户
twitter whoami --yaml                  # YAML 输出
twitter whoami --json                  # JSON 输出
twitter user elonmusk                  # 用户资料页
twitter user elonmusk --json           # JSON 输出
twitter feed                           # 主页时间线(For You)
twitter feed -t following              # 关注时间线
twitter feed --max 50                  # 限制结果数量
twitter feed --full-text               # 在表格中显示完整正文
twitter feed --filter                  # 启用排序过滤器
twitter feed --yaml > tweets.yaml      # 导出为 YAML 文件
twitter feed --input tweets.json       # 从本地 JSON 文件读取
twitter bookmarks                      # 已收藏推文
twitter bookmarks --full-text          # 在收藏表格中显示完整正文
twitter bookmarks --max 30 --yaml
twitter search "keyword"               # 搜索推文
twitter search "AI agent" -t Latest --max 50
twitter search "AI agent" --full-text  # 在搜索结果中显示完整正文
twitter search "topic" -o results.json # 保存至文件
twitter tweet 1234567890               # 推文详情 + 回复
twitter tweet 1234567890 --full-text   # 在回复表格中显示完整正文
twitter tweet https://x.com/user/status/12345  # 支持 URL 输入
twitter list 1539453138322673664       # 列表时间线
twitter list 1539453138322673664 --full-text
twitter user-posts elonmusk --max 20   # 用户发布的推文
twitter user-posts elonmusk --full-text
twitter likes elonmusk --max 30        # 用户点赞的推文(仅限自身账号,详见备注)
twitter likes elonmusk --full-text
twitter followers elonmusk --max 50    # 粉丝列表
twitter following elonmusk --max 50    # 关注列表

写操作

twitter post "Hello from twitter-cli!"              # 发布推文
twitter reply 1234567890 "Great tweet!"              # 单独回复(reply)
twitter post "reply text" --reply-to 1234567890      # 通过 post 命令发起回复
twitter quote 1234567890 "Interesting take"          # 引用推文(quote-tweet)
twitter delete 1234567890                            # 删除推文
twitter like 1234567890                              # 点赞
twitter unlike 1234567890                            # 取消点赞
twitter retweet 1234567890                           # 转推
twitter unretweet 1234567890                         # 取消转推
twitter bookmark 1234567890                          # 收藏
twitter unbookmark 1234567890                        # 取消收藏
twitter follow elonmusk                              # 关注用户
twitter unfollow elonmusk                            # 取关用户

Agent 工作流示例

发布并验证

twitter post "My tweet text" 2>/dev/null
# 输出中包含推文链接:🔗 https://x.com/i/status/

回复某人最新推文

TWEET_ID=$(twitter user-posts targetuser --max 1 --json | jq -r '.data[0].id')
twitter reply "$TWEET_ID" "Nice post!"

创建多推文线程(thread)

# 发布首条推文,并捕获输出以获取 ID
twitter post "Thread 1/3: First point"
# 从输出中记录推文 ID,然后:
twitter reply  "2/3: Second point"
twitter reply  "3/3: Final point"

带评论的引用推文(Quote-tweet)

TWEET_ID=$(twitter search "interesting topic" --max 1 --json | jq -r '.data[0].id')
twitter quote "$TWEET_ID" "This is a great insight!"

批量点赞搜索结果

twitter search "interesting topic" --max 5 --json | jq -r '.data[].id' | while read id; do
  twitter like "$id"
done

获取用户信息后关注

twitter user targethandle --json | jq '.data | {username, followers, bio}'
twitter follow targethandle

查找某用户最热门的推文

twitter user-posts elonmusk --max 20 --json | jq '.data | sort_by(.metrics.likes) | reverse | .[:3] | .[] | {id, text: .text[:80], likes: .metrics.likes}'

检查关注关系

MY_NAME=$(twitter whoami --json | jq -r '.data.user.username')
twitter followers "$MY_NAME" --max 200 --json | jq -r '.data[].username' | grep -q "targetuser" && echo "Yes" || echo "No"

日常阅读工作流

# 紧凑模式:适用于 token 效率优先的 LLM 上下文
twitter -c feed -t following --max 30
twitter -c bookmarks --max 20

# 富文本表格:展示完整正文
twitter feed -t following --max 20 --full-text
twitter search "AI agent" --max 20 --full-text

# 完整 JSON:用于深度分析
twitter feed -t following --max 30 -o following.json
twitter bookmarks --max 20 -o bookmarks.json

结合 jq 的高级搜索过滤

# 筛选获赞数超过 100 的推文
twitter search "AI safety" --max 20 --json | jq '[.data[] | select(.metrics.likes > 100)]'

# 仅提取作者与正文(前 100 字符)
twitter search "rust lang" --max 10 --json | jq '.data[] | {author: .author.screenName, text: .text[:100]}'

# 获取互动最高的 5 条推文 ID
twitter search "topic" --max 20 --json | jq '.data | sort_by(.metrics.likes) | reverse | .[:5] | .[].id'

排序过滤器(Ranking Filter)

过滤功能为可选启用项,通过 --filter 开启:

twitter feed --filter
twitter bookmarks --filter

错误参考

错误 原因 修复方式
No Twitter cookies found 未完成认证 在浏览器中登录 x.com,或手动设置环境变量
HTTP 226 触发自动化行为检测 改用浏览器 Cookie 提取方式(不推荐仅设环境变量)
HTTP 401/403 Cookie 已过期 重新登录 x.com 后重试
HTTP 404 QueryId 轮换 重试即可(内置自动回退机制)
HTTP 429 请求频率超限 等待 15 分钟以上再重试
Error 187 重复推文 修改推文文本内容
Error 186 推文超长 保持在 280 字符以内

限制说明

  • 纯文本支持 — 不支持媒体/图片上传
  • 无私信功能 — 不支持 Direct Message(DM)
  • 无通知读取 — 无法读取通知中心内容
  • 无投票功能 — 不支持创建投票(polls)
  • 单账户限制 — 同一时间仅支持一套认证凭证
  • 点赞隐私化 — 自 2024 年 6 月起,Twitter/X 已将所有点赞设为私密。twitter likes 仅对当前登录账号有效

安全注意事项

  • 写操作内置随机延迟(1.5–4 秒),以规避频率限制。
  • TLS 指纹与 User-Agent 将自动匹配所用 Chrome 版本。
  • 切勿要求用户在聊天日志中直接发送原始 Cookie 值。
  • 优先采用本地浏览器 Cookie 提取,避免手动复制粘贴敏感凭据。
  • Agent 应将 Cookie 值视为机密信息(避免不必要的 stdout 输出)。

相关专题

更多
OpenJDK JVM参数怎么调优
OpenJDK JVM参数怎么调优

Java应用运行缓慢,如何调整JVM参数?本专题介绍OpenJDK JVM性能调优的基本流程,涵盖性能指标确认、运行数据采集、内存配置和垃圾回收分析,帮助你先定位瓶颈,再通过对照测试验证效果,避免直接套用参数而影响应用稳定性。

2026.10.16

0

10

OpenJDK怎么配置Java开发环境
OpenJDK怎么配置Java开发环境

怎样用OpenJDK搭建开发环境?本专题介绍版本选择、下载安装、环境变量配置和编译运行验证,帮助你理清JDK的作用及基本配置流程,并通过简单程序检查环境是否可用,为后续项目开发做好准备。

2026.10.16

0

10

OpenJDK怎么部署Java应用
OpenJDK怎么部署Java应用

Java项目开发完成后,怎样部署到目标环境并正常运行?本专题介绍OpenJDK应用部署流程,涵盖运行环境准备、版本兼容检查、应用打包、启动参数配置和日志查看,帮助你理清部署前后的操作顺序,减少环境差异造成的运行问题。

2026.10.16

0

10

Revel框架模板渲染与表单验证
Revel框架模板渲染与表单验证

本专题围绕Revel框架视图层开发,介绍模板语法、变量输出、布局复用、表单提交、参数绑定与验证规则,帮助开发者完成安全规范的页面交互。

2026.10.16

0

15

Revel框架MVC路由与控制器
Revel框架MVC路由与控制器

本专题聚焦Revel框架MVC核心机制,讲解路由定义、控制器Action、参数绑定、请求响应和反向路由,并结合常见场景梳理接口请求处理流程。

2026.10.16

0

15

Revel框架入门与安装配置
Revel框架入门与安装配置

本专题从Revel框架环境搭建讲起,系统介绍命令行工具安装、项目创建、目录结构、配置文件及热代码重载,帮助开发者快速完成首个Go Web应用。

2026.10.16

0

15

Linux 新手先学哪些命令
Linux 新手先学哪些命令

Linux新手命令专题汇集终端基础、文件目录操作、文本查看、软件安装和权限管理等入门文章,帮助按实际任务练习常用命令并建立命令行操作习惯。

2026.10.15

0

20

MySQL 忘记密码怎么办
MySQL 忘记密码怎么办

MySQL忘记密码专题汇集不同版本与系统下的root密码重置方法,覆盖MySQL 5.7、8.0、Mac、Linux及本地集成环境,并提示恢复权限与重新登录的检查步骤。

2026.10.15

0

18

Vue.js 中 ref 和 reactive 的区别
Vue.js 中 ref 和 reactive 的区别

Vue.js中ref和reactive的区别专题汇集两种响应式API的定义、访问方式、对象解构、侦听与性能取舍等文章,帮助结合实际状态类型选择合适写法。

2026.10.15

0

20

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
麦子学院bootstrap入门视频教程
麦子学院bootstrap入门视频教程

共32课时 | 10.5万人学习

黑马程序员bootstrap视频教程
黑马程序员bootstrap视频教程

共23课时 | 7.7万人学习

李炎恢bootstrap视频教程
李炎恢bootstrap视频教程

共26课时 | 10.9万人学习