SuperAPI AI 工具集

pp-x-twitter

写作与研究

查看项目

更新于 10-15 15:42

技能介绍

用途

pp-x-twitter 是面向 X(Twitter)的命令行工具与 MCP 接口,驱动 x-twitter-pp-cli 二进制。其核心定位是在官方 X v2 API 之上加入本地 SQLite 存储,使数据可同步一次、反复离线查询,避免每次读取都消耗付费 API 额度。它适合需要读取、搜索或归档 X 数据的任务,例如构建可搜索的帖子语料、还原对话串、快照账号近期帖子及互动数据、增量监控提及。

安装与前置条件

使用前必须先确认 CLI 已安装。通过 Printing Press 安装器安装(macOS/Linux 默认二进制目录为 $HOME/.local/bin,Windows 为 %LOCALAPPDATA%\Programs\PrintingPress\bin):

npx -y @mvanhorn/printing-press-library install x-twitter --cli-only

验证:x-twitter-pp-cli --version。需确保安装目录在调用该技能的运行时 $PATH 中,验证未通过前不要执行技能命令。

若 npx 安装失败(无 Node、离线等),可回退到 Go 直接安装(需 Go 1.26.6 或更新版本),安装到 $GOPATH/bin(默认 $HOME/go/bin):

go install github.com/mvanhorn/printing-press-library/library/social-and-messaging/x-twitter/cmd/x-twitter-pp-cli@latest

主要能力

本地状态与离线检索

  • post resolve:将任意 X 帖子 URL 或原始帖子 ID 规范化为结构化记录,优先使用本地数据,必要时回退到公开 v2 读取,并在输出中包含来源信息(live、local 或 mixed),还会给出建议的后续工作流命令。适合作为智能体处理粘贴链接的第一步。
  • thread context:解析帖子 URL 或 ID,在可用时包含父帖与引用帖,并可选包含本地存储和/或近期搜索得到的有限回复。
  • thread show:完全离线地从本地已同步帖子重建完整会话串,带顺序与深度标记,不重复消耗 API 读取额度。
  • collection save/list/export:将解析后的 X 帖子保存到具名本地集合,并以 markdown、JSON、JSONL 或 CSV 列出或导出。只写本地 SQLite,不写回 X。
  • users bookmarks find:基于同步的书签,按关键词和/或作者离线搜索。X 本身没有书签搜索、其 API 也不暴露书签时间戳,此命令补上这一检索层。

监控与简报

  • monitor create/run/list:创建具名查询、URL 或账号监控,配合本地水印与去重反复运行。仅写本地 SQLite,从不发布、点赞、回复、关注或修改 X。--since last 使用保存的水印,--preview 抓取但不更新本地状态。
  • brief:从监控结果、集合或显式帖子 ID 构建有来源依据的 JSON 或 markdown 简报,打包链接、作者、文本与可用指标;它不编造结论,也不运行 LLM 摘要。

账号、链接与指标

  • account snapshot:抓取用户名或用户 ID 的资料基础信息、公开指标、置顶帖与近期帖子,对 X 只读,默认优先本地数据(除非设置 --live 或 --data-source live)。
  • url mentions:搜索近期提及某 URL、域名、仓库、文章或产品页的帖子,可选把结果存入本地集合并创建/更新本地监控。
  • performance snapshot/backfill/analyze:本地存储带时间戳的帖子指标,在授权允许时回填近期账号帖子,并按类型、小时、媒体、是否含链接或标签分析已存快照。缺失指标保持可空/缺失,不视为零。
  • timeline export:将账号或查询时间线导出为 markdown、JSON 或 JSONL。账号导出在可用时使用本地已同步推文,仅在需要或要求时实时抓取。
  • top-posts:按指标对近期帖子排序输出,例如 x-twitter-pp-cli top-posts --metric engagement --limit 10 --max-fetch 100 --json。它读取实时时间线,每页可能消耗付费 API 额度。--max-fetch 接受 1 到 1000 条帖子,并留有少量额外页预算应对稀疏响应;在该预算下返回的排行榜是部分的,每行 JSON 会带 truncated: true。--user-id 可直接选择数字账号 ID,缺省使用已认证用户。JSON 行会标明实际使用的 score_metric,缺失的展示分数为 null 而非 0。--dry-run 不发起请求。

创作工作流

  • thread compose:将 markdown 文件拆分为编号、按 280 字符打包的自回复串文;默认只打印,仅在加 --post 时发布。
  • articles-publish-md:解析带 YAML frontmatter 的 markdown 文件,转换为 X Articles 编辑器接受的 Draft.js content_state JSON;默认预览,--draft 创建新草稿,--update 编辑已有草稿,--post 公开发布。支持段落、#/## 标题(### 及更深降级为 ##)、列表、块引用、围栏代码块、表格、分隔线、图片行、独立推文 URL(原生嵌入)、粗体/斜体/行内代码(含块引用内)、text 行内链接(生成真实 LINK 实体)。HTML 注释行会被剥离,不会作为正文发布。
  • articles update-md:从 markdown 就地更新已有 X Article 草稿,一次命令更新标题(frontmatter)、正文、链接与新增行内图片。注意:它会替换目标草稿的整个正文,转换器无法再现的手工内容会被销毁;命令会预检 content_state,遇到转换器输出集(LINK、MARKDOWN、MEDIA、TWEET、DIVIDER)之外的实体类型时拒绝执行,仅在你确实想覆盖时加 --replace-unknown-entities。默认只处理草稿,已发布文章须加 --republish(流程为 Unpublish -> UpdateContent -> Publish,期间文章短暂下线)。可用 --dry-run 预览转换后的负载而不调用 API。

使用方式

命令通过 x-twitter-pp-cli 调用,例如:

x-twitter-pp-cli post resolve https://x.com/user/status/123 --agent
x-twitter-pp-cli thread context 123 --replies --depth 3 --limit 100 --agent
x-twitter-pp-cli collection save https://x.com/user/status/123 --collection ai-agents --note "Good framing" --agent
x-twitter-pp-cli monitor run ai-labs --since last --agent
x-twitter-pp-cli brief --monitor ai-labs --since 24h --agent
x-twitter-pp-cli account snapshot @username --recent 20 --agent
x-twitter-pp-cli url mentions https://example.com --since 7d --agent
x-twitter-pp-cli performance analyze --since 90d --group-by type,hour,has_media,has_link --agent
x-twitter-pp-cli timeline export --query 'ai agents' --since 7d --format jsonl
x-twitter-pp-cli users bookmarks find "rust async" --agent
x-twitter-pp-cli thread compose ./update.md
x-twitter-pp-cli articles-publish-md ./post.md
x-twitter-pp-cli articles update-md ./post.md --article-id 1750000000000000000 --agent

同步书签的一次性命令示例:

x-twitter-pp-cli sync --resources bookmarks --param tweet.fields=author_id,created_at
x-twitter-pp-cli sync --resources users

命令参考还涵盖 account-activity、activity、chat、communities、compliance、connections 等分组,例如账目活动订阅的创建/删除/计数/列表/校验、activity 事件订阅管理、chat 加密群会话与消息、communities 查询、compliance 任务、流式连接等。

适用场景

当任务涉及读取、搜索或归档 X 数据,且希望结果可离线查询而非每次重新抓取时,适合使用该 CLI,例如构建可搜索帖子语料、还原会话串、快照账号近期帖子及互动、增量监控提及。它也适合需要只读/破坏性安全提示与具名多步意图的 AI 智能体使用,而非直接堆砌原始端点调用。同一数据会被查询多次时,优先于直接 API 调用,因为本地存储可避免重复消耗每次读取的额度。

限制

  • 使用前必须安装并验证 x-twitter-pp-cli;若 --version 报 “command not found”,需先修正 $PATH,验证成功前不得继续。
  • 实时读取(如 top-posts、部分 live 模式)可能消耗付费 API 额度。
  • 本地集合与监控只写本地 SQLite,不会修改 X。
  • performance 缺失指标保持可空/缺失,不按 0 处理。
  • articles update-md 会整体替换草稿正文,可能销毁转换器无法再现的手工内容;对已发布文章需 --republish,期间文章短暂下线。
  • 其余未在资料中说明的价格、平台支持或效果暂未提供。