ElyzeSolutions/PolyX-CLI
GitHub: ElyzeSolutions/PolyX-CLI
PolyX 是一款命令行 X/Twitter 情报工具,提供搜索、监控、情感分析、趋势追踪和报告生成,专为研究、交易和 agent 自动化工作流设计。
Stars: 0 | Forks: 0
# PolyX
PolyX 专为研究、交易、监控和 agent 工作流而构建,在这些场景中,信号比手动浏览网页 UI 更重要。
## 为什么使用它
- 通过结构化输出,在终端中快速搜索 X。
- 搜索 X 第一方突发新闻集群,获取摘要、实体上下文、股票代码和源 Post ID。
- 当您拥有 bearer token 时,优先使用官方 X API v2。
- 当您需要非 API 路径时,回退到基于 cookie 的 GraphQL 客户端。
- 引入 Grok、Gemini 或 OpenRouter 以进行更深入的主题分析。
- 保存报告,缓存结果,并关注 API 支出。
## 安装
PyPI 发布包名称为 `polyx-cli`。可执行文件保持为 `polyx`。
```
pip install polyx-cli
# 使用 AI providers 和更丰富的终端输出
pip install "polyx-cli[ai,rich]"
```
从源码安装:
```
git clone https://github.com/ElyzeSolutions/PolyX-CLI.git
cd PolyX
pip install -e ".[ai,rich]"
```
## 认证模式
PolyX 支持两种访问路径:
1. 通过 `X_BEARER_TOKEN` 使用官方 X API v2
2. 通过 `AUTH_TOKEN` 和 `CT0` 使用基于 cookie 的 GraphQL 回退方案
GraphQL 路径是非官方的,当 X 更改内部 endpoint 时可能会失效。请尽可能使用 API v2。
## 配置
直接使用环境变量,或将 `.env.example` 复制到本地 `.env` 文件。
PolyX 会自动加载本地 `.env` 文件,且不会覆盖已导出的变量值。
| 变量 | 用途 |
| --- | --- |
| `X_BEARER_TOKEN` | 官方 X API v2 bearer token |
| `AUTH_TOKEN` | GraphQL `auth_token` cookie |
| `CT0` | GraphQL CSRF cookie |
| `XAI_API_KEY` | 用于 Grok 的 xAI key |
| `OPENROUTER_API_KEY` | OpenRouter key |
| `GOOGLE_API_KEY` | 用于 Gemini 的 Google AI key |
| `POLYX_DATA_DIR` | 用于报告、缓存和成本跟踪的基础目录 |
| `POLYX_CACHE_DIR` | 可选的缓存目录覆盖 |
| `POLYX_DAILY_BUDGET` | 每日 API 预算(以美元为单位) |
| `POLYX_CACHE_TTL` | 缓存 TTL(以秒为单位) |
支持的别名:
- 用于 GraphQL cookie 的 `TWITTER_AUTH_TOKEN` 和 `TWITTER_CT0`
- 用于 xAI 的 `GROK_API_KEY`
- 用于 Gemini 的 `GEMINI_API_KEY`
## 快速开始
检查您的配置:
```
polyx health
```
搜索最近的帖子:
```
polyx search "bitcoin" --limit 25
polyx search "ai agents" --sentiment --json
polyx search "solana" --sort likes --pages 2
```
通过官方 X API v2 搜索突发新闻:
```
polyx news "US election" --max-results 25 --max-age-hours 12
polyx --json news "gold Federal Reserve" --domain gold --max-age-hours 6
polyx --jsonl news "crypto regulation" --domain polymarket | jq -c '{domain,id,name,summary}'
polyx --markdown news "gold real yields" --domain gold
```
`polyx news` 需要 `X_BEARER_TOKEN`;基于 cookie 的 GraphQL 客户端无法
访问 X News。有关类型化响应和集成契约,请参阅 [News API 指南](docs/news.md)。新闻结果使用常规的 PolyX 缓存和成本账本;
仅当必须发起全新的付费请求时才使用 `--no-cache`。在实际请求之前,
PolyX 会强制执行 `POLYX_DAILY_BUDGET`,并在必要时减少 `--max-results`,
以确保其 $0.005/故事的安全估算值不会超过剩余预算。
独立使用时默认为 `--domain general`。诸如 Polybot 之类的集成会显式传递
`--domain polymarket` 或 `--domain gold` 以隔离其记录。
该标签是可选且可扩展的:另一个集成可以传递其自身的
小写路由标签,而无需更改 PolyX。
为 GraphQL 回退方案导入现有的 X 浏览器会话,而无需在终端中暴露
cookie 值:
```
uv tool install 'polyx-cli[browser]'
polyx auth import-browser --browser chrome
polyx --client graphql search "gold OR XAUUSD" --limit 20
```
导入的会话存储在 `~/.polyx/config.yml` 中,权限模式为 `0600`。
浏览器 cookie 授予账户访问权限,但其稳定性不如官方 API;
仅将其用作本地回退方案。
X 还发布了用于 agent 工具的托管 MCP 服务器。它是对 PolyX 类型化、缓存
摄取路径的补充,而不是替代;有关推荐的边界划分,请参阅 [X MCP 和
PolyX](docs/mcp.md)。
随时间推移监控某个主题:
```
polyx watch "breaking news" --interval 1m
polyx watch "ethereum" --interval 5m --webhook https://hooks.example.com/polyx
```
分析趋势:
```
polyx trends --location us
polyx trends --locations
```
生成分析和报告:
```
polyx analyze "stablecoins" --provider gemini
polyx report "AI agents" --pages 3 --sentiment --save
```
## 输出格式
PolyX 同时适用于人工查看和自动化流程:
- 默认输出到终端
- `--json` 用于可机器读取的 pipeline
- `--jsonl` 用于流处理
- `--csv` 用于电子表格
- `--markdown` 用于报告和分享
News 也支持 `--csv`。全局格式标志需放在命令之前,例如
`polyx --json news "gold"`。
## Docker
```
docker build -t polyx .
docker run --rm -e X_BEARER_TOKEN=your_token polyx search "bitcoin"
```
## 开发
```
uv sync --extra ai --extra rich --extra dev
uv run ruff check .
uv run pytest
uv build
```
包含 GitHub Actions,用于 CI 和基于标签的 PyPI 发布。
## 许可证
MIT
在终端获取 X/Twitter 新闻与情报。
搜索突发新闻和实时对话,监控主题,评估情感,分析趋势,并从一个 CLI 生成清晰的报告。
search
news
watch
trends
analyze
report
json
markdown
标签:Python, 代码示例, 安全规则引擎, 数据分析, 无后门, 社交媒体分析, 舆情监控, 请求拦截, 逆向工具