0xNyk/xint-rs

GitHub: 0xNyk/xint-rs

一款 Rust 编写的 X/Twitter 情报 CLI 工具,提供搜索、监控、分析、媒体下载和 AI 增强功能,专为安全研究和自动化 Agent 集成设计。

Stars: 3 | Forks: 1

xint-rs — X Intelligence CLI

单一二进制文件,零运行时依赖。 2.5MB,启动时间不到 5ms。

License: MIT Rust Release Stars Tweet

## 为什么选择 Rust? | | TypeScript | Rust | |---|---|---| | **启动时间** | ~50ms | <5ms | | **二进制文件** | ~60MB | 2.5MB | | **内存占用** | ~40MB | ~5MB | | **部署** | Clone + Bun | 复制一个文件 | ## 安装 ``` curl -fsSL https://raw.githubusercontent.com/0xNyk/xint-rs/main/install.sh | bash ``` 可选固定版本: ``` XINT_RS_INSTALL_VERSION= \ curl -fsSL https://raw.githubusercontent.com/0xNyk/xint-rs/main/install.sh | bash ``` Homebrew(Apple Silicon 上的轻量级预构建二进制文件): ``` brew tap 0xNyk/xint brew install xint ``` 或安装显式 Rust formula: ``` brew install xint-rs ``` 或从源码构建: ``` git clone https://github.com/0xNyk/xint-rs.git cd xint-rs cargo build --release ``` ## 快速参考 | 任务 | 命令 | |------|---------| | 搜索 | `xint search "AI agents"` | | 监控 | `xint watch "solana" -i 5m` | | 流 | `xint stream` | | 用户资料 | `xint profile @elonmusk` | | 推文串 | `xint thread 123456789` | | 关注者 | `xint diff @username` | | 书签 | `xint bookmarks` | | 列表 | `xint lists` | | 屏蔽 | `xint blocks` | | 免打扰 | `xint mutes` | | 关注 | `xint follow @username` | | 媒体 | `xint media ` | | 趋势 | `xint trends` | | AI 分析 | `xint analyze "best?"` | | 报告 | `xint report "crypto"` | | 文章 | `xint article --ai "summarize"` | | 能力 | `xint capabilities --json` | | TUI | `xint tui` | ### 简写 ``` xint s "query" # search xint w "query" # watch xint p @user # profile xint tr # trends xint bm # bookmarks ``` ### TUI 自定义 ``` # 内置主题:classic | neon | minimal | ocean | amber XINT_TUI_THEME=ocean xint tui # 禁用动画 hero line XINT_TUI_HERO=0 xint tui # 禁用菜单行中的图标 XINT_TUI_ICONS=0 xint tui # 可选 theme token 文件 XINT_TUI_THEME_FILE=./tui-theme.tokens.example.json xint tui ``` ## 设置 ``` cp .env.example .env # 添加 X_BEARER_TOKEN=your_token ``` ### 可选:xAI 用于 `analyze`、`report --sentiment`、`article --ai`: ``` XAI_API_KEY=your_xai_key ``` ### 可选:OAuth 用于书签、点赞、关注、列表、屏蔽/免打扰、关注者追踪: ``` X_CLIENT_ID=your_client_id xint auth setup ``` ## 部署模式 ### 自托管 (OSS 默认) - 针对你自己的本地设置运行此二进制文件。 - 除非配置了云环境变量,否则 Package API 功能保留在本地。 - 最适合开发和私有操作者工作流。 ### 托管云控制平面 (`xint-cloud`) - 将 Package API 功能指向你的托管控制平面: - `XINT_PACKAGE_API_BASE_URL=http://localhost:8787/v1`(或你的部署 URL) - `XINT_PACKAGE_API_KEY=` - `XINT_WORKSPACE_ID=` - 用于配额/计划错误的可选计费升级 URL: - `XINT_BILLING_UPGRADE_URL=https://your-app/pricing` 注意: - 如果未设置 `XINT_PACKAGE_API_BASE_URL`,Package API MCP 工具将返回设置错误。 - 保持 `xint-cloud` 私有;`xint` 和 `xint-rs` 保持为公开 OSS 客户端。 ## Agent 原生能力清单 `xint-rs` 为 Agent 允许列表和运行时工具选择提供了机器可读的清单: ``` # 格式化 JSON xint capabilities # 适用于机器读取的紧凑 JSON xint capabilities --compact ``` ## 搜索 ``` # Quick pulse xint search "AI agents" --quick # High-engagement xint search "react 19" --since 1h --sort likes --min-likes 50 # Full-archive xint search "bitcoin ETF" --full --pages 3 # With sentiment xint search "solana" --sentiment # 导出 xint search "startups" --csv > data.csv xint search "AI" --jsonl | jq '.text' ``` ### 选项 | 标志 | 描述 | |------|-------------| | `--sort` | `likes` · `impressions` · `retweets` · `recent` | | `--since` | `1h` · `3h` · `12h` · `1d` · `7d` | | `--full` | 搜索完整归档(可追溯至 2006 年) | | `--sentiment` | 每条推文的 AI 情感分析 | | `--quick` | 带缓存的快速模式 | ## 监控 ``` xint watch "solana" -i 5m xint watch "@user" -i 1m xint watch "news" -i 30s --webhook https://example.com/webhook ``` Webhook 安全性: - 远程 Webhook 必须使用 `https://` - 仅针对 localhost/loopback 目标接受 `http://` - 可选主机白名单:`XINT_WEBHOOK_ALLOWED_HOSTS=hooks.example.com,*.internal.example` 按 `Ctrl+C` — 显示会话统计信息。 ## 流(官方过滤流) ``` # 列出当前 stream rules xint stream-rules # 添加 filtered-stream rule xint stream-rules add "from:elonmusk -is:retweet" --tag elon # 连接到 stream xint stream # JSONL 输出并在 25 个事件后停止 xint stream --jsonl --max-events 25 ``` ## 关注者追踪 ``` xint diff @user # First run: snapshot xint diff @user # Second run: changes xint diff @user --following ``` 需要 OAuth。 ## 列表 (OAuth) ``` xint lists xint lists create "AI Researchers" --description "High-signal accounts" --private xint lists members add @username xint lists members remove @username ``` ## 屏蔽 & 免打扰 (OAuth) ``` xint blocks xint blocks add @username xint blocks remove @username xint mutes xint mutes add @username xint mutes remove @username ``` ## 关注操作 (OAuth) ``` xint follow @username xint unfollow @username ``` ## 媒体下载 ``` # 从 tweet ID 下载媒体 xint media 1900100012345678901 # 从 tweet URL 下载媒体 xint media https://x.com/user/status/1900100012345678901 # 自定义输出目录 + JSON 摘要 xint media 1900100012345678901 --dir ./downloads --json # 仅下载第一个视频/gif xint media 1900100012345678901 --video-only --max-items 1 # 仅下载照片 xint media 1900100012345678901 --photos-only # 自定义文件名模板 xint media 1900100012345678901 --name-template "{username}-{created_at}-{index}" ``` ## 报告 & 分析 ``` xint report "AI agents" --save xint analyze "What's trending in crypto?" xint article "https://..." --ai "Summarize" # 来自 X tweet(自动提取链接文章 URL) xint article "https://x.com/user/status/123" --ai "Summarize" ``` ## xAI 功能 ### X 搜索(无需 X API) ``` xint x-search --queries-file queries.json --out-md report.md ``` ### 集合(知识库) ``` xint collections list xint collections upload --path file.md xint collections search --query "topic" ``` ## AI Agent 技能 为 Claude Code、OpenClaw 和其他 Agent 设计: ``` # 将二进制文件 + SKILL.md 放置在 agent skills dir 中 xint search "topic" --quick --json xint analyze --pipe "Summarize" xint report "topic" --save ``` ### MCP Server ``` xint mcp ``` ## 成本 | 操作 | 成本 | |-----------|------| | 推文读取 | $0.005/推文 | | 全文归档 | $0.01/推文 | | 写入 | $0.01/操作 | ``` xint costs # Today xint costs week # 7 days xint costs budget 2 # Set $2/day limit ``` ## 环境变量 | 变量 | 必需 | 描述 | |----------|----------|-------------| | `X_BEARER_TOKEN` | 是 | X API v2 bearer | | `XAI_API_KEY` | 否 | 用于 analyze/report 的 xAI | | `XINT_ARTICLE_TIMEOUT_SEC` | 否 | 文章获取超时秒数(默认 30,范围 5-120) | | `X_CLIENT_ID` | 否 | 用于写操作的 OAuth | ## 结构 ``` xint-rs/ ├── src/ │ ├── main.rs # Entry │ ├── cli.rs # Commands │ ├── client.rs # HTTP + rate limit │ ├── api/ # X, xAI wrappers │ └── commands/ # 20+ commands ├── data/ # cache, exports, snapshots └── SKILL.md # Agent instructions ``` ## 构建 ``` cargo build --release # 输出:target/release/xint (2.5MB) ``` ## 发布自动化 `xint-rs` 将发布委托给 `xint` 中的规范脚本。 ``` # from xint-rs/ ./scripts/release.sh --dry-run --allow-dirty # 转发所有 flags 到 canonical xint script: ./scripts/release.sh 2026.2.18.4 ./scripts/release.sh 2026.2.18.4 --no-clawdhub ./scripts/release.sh 2026.2.18.4 --skillsh ./scripts/release.sh 2026.2.18.4 --no-auto-notes ./scripts/release.sh 2026.2.18.4 --report-dir /tmp/xint-release-reports ``` 如果 `xint` 未作为同级目录检出,请设置: ``` XINT_RELEASE_SCRIPT=/absolute/path/to/xint/scripts/release.sh ``` 注意,行为由规范脚本控制: - 默认:GitHub 自动生成说明(`--generate-notes`) - 手动覆盖:设置 `CHANGELOG_ADDED`、`CHANGELOG_CHANGED`、`CHANGELOG_FIXED` 和/或 `CHANGELOG_SECURITY` - 默认:当安装了 `clawdhub` CLI 时发布到 ClawdHub(使用 `--no-clawdhub` 禁用) - 可选:使用 `--skillsh` 发布到 skills.sh(或使用 `--ai-skill` 同时发布到两者) - 发布报告:默认为 `reports/releases/.md`(使用 `--no-report` 禁用) - 报告默认作为资产上传到 GitHub releases(使用 `--no-report-asset` 禁用) - 报告默认嵌入在 GitHub release 正文中(使用 `--no-report-body` 禁用) ## 安全 - Token 来自环境变量 — 从不硬编码 - OAuth token:`chmod 600` - 无遥测,无回连 参见 [SECURITY.md](docs/security.md)。 ## 许可证 [MIT](LICENSE) · [0xNyk](https://github.com/0xNyk)

Star History

## ❤️ 支持本项目 如果你觉得这个项目有用,请考虑支持我的开源工作。 [![Buy Me A Coffee](https://img.shields.io/badge/Buy%20Me%20a%20Coffee-support-orange?logo=buymeacoffee)](https://buymeacoffee.com/nyk_builderz) **Solana 捐赠** `BYLu8XD8hGDUtdRBWpGWu5HKoiPrWqCxYFSh4oxXuvPg`
标签:ESC4, HTTP/HTTPS抓包, LangChain, OSINT, Rust, Rust编程, Twitter, X平台, 二进制文件, 信息搜集, 可视化界面, 威胁情报, 实时处理, 开发者工具, 态势感知, 性能优化, 搜索引擎, 数据流, 检测绕过, 渗透测试辅助, 用户画像, 社交媒体监控, 网络安全, 网络流量审计, 舆情分析, 轻量级, 通知系统, 隐私保护