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