ElyzeSolutions/PolyX-CLI

GitHub: ElyzeSolutions/PolyX-CLI

PolyX 是一款命令行 X/Twitter 情报工具,提供搜索、监控、情感分析、趋势追踪和报告生成,专为研究、交易和 agent 自动化工作流设计。

Stars: 0 | Forks: 0

# PolyX
PolyX terminal interface showing search, monitoring, trends, sentiment, and report generation

在终端获取 X/Twitter 新闻与情报。

搜索突发新闻和实时对话,监控主题,评估情感,分析趋势,并从一个 CLI 生成清晰的报告。

search news watch trends analyze report json markdown

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
标签:Python, 代码示例, 安全规则引擎, 数据分析, 无后门, 社交媒体分析, 舆情监控, 请求拦截, 逆向工具