rtk-ai/rtk

GitHub: rtk-ai/rtk

高性能 CLI 代理工具,通过智能过滤和压缩终端输出,将发送给 LLM 的 token 消耗减少 60-90%。

Stars: 3947 | Forks: 224

RTK - Rust Token Killer

高性能 CLI 代理,可减少 60-90% 的 LLM token 消耗

CI Release License: MIT Discord Homebrew

网站安装故障排除架构Discord

EnglishFrancais中文日本語한국어Espanol

rtk 在命令输出到达您的 LLM 上下文之前对其进行过滤和压缩。单一 Rust 二进制文件,零依赖,开销小于 10ms。 ## Token 节省(30分钟 Claude Code 会话) | 操作 | 频率 | 标准 | rtk | 节省 | |-----------|-----------|----------|-----|---------| | `ls` / `tree` | 10x | 2,000 | 400 | -80% | | `cat` / `read` | 20x | 40,000 | 12,000 | -70% | | `grep` / `rg` | 8x | 16,000 | 3,200 | -80% | | `git status` | 10x | 3,000 | 600 | -80% | | `git diff` | 5x | 10,000 | 2,500 | -75% | | `git log` | 5x | 2,500 | 500 | -80% | | `git add/commit/push` | 8x | 1,600 | 120 | -92% | | `cargo test` / `npm test` | 5x | 25,000 | 2,500 | -90% | | `ruff check` | 3x | 3,000 | 600 | -80% | | `pytest` | 4x | 8,000 | 800 | -90% | | `go test` | 3x | 6,000 | 600 | -90% | | `docker ps` | 3x | 900 | 180 | -80% | | **总计** | | **~118,000** | **~23,900** | **-80%** | ## 安装 ### Homebrew(推荐) ``` brew install rtk ``` ### 快速安装(Linux/macOS) ``` curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh ``` ### Cargo ``` cargo install --git https://github.com/rtk-ai/rtk ``` ### 预编译二进制文件 从 [releases](https://github.com/rtk-ai/rtk/releases) 下载: - macOS: `rtk-x86_64-apple-darwin.tar.gz` / `rtk-aarch64-apple-darwin.tar.gz` - Linux: `rtk-x86_64-unknown-linux-musl.tar.gz` / `rtk-aarch64-unknown-linux-gnu.tar.gz` - Windows: `rtk-x86_64-pc-windows-msvc.zip` ### 验证安装 ``` rtk --version # Should show "rtk 0.27.1" rtk gain # Should show token savings stats ``` ## 快速开始 ``` # 1. 安装 Claude Code hook(推荐) rtk init --global # 按照说明在 ~/.claude/settings.json 中注册 # 2. 重启 Claude Code,然后测试 git status # Automatically rewritten to rtk git status ``` 该 hook 在执行前透明地重写命令(例如 `git status` -> `rtk git status`)。Claude 看不到重写过程,只会得到压缩后的输出。 ## 工作原理 ``` Without rtk: With rtk: Claude --git status--> shell --> git Claude --git status--> RTK --> git ^ | ^ | | | ~2,000 tokens (raw) | | ~200 tokens | filter | +-----------------------------------+ +------- (filtered) ---+----------+ ``` 针对每种命令类型应用四种策略: 1. **智能过滤** - 移除噪音(注释、空白、样板代码) 2. **分组** - 聚合相似项(按目录分文件,按类型分错误) 3. **截断** - 保留相关上下文,删减冗余内容 4. **去重** - 合并重复的日志行并显示计数 ## 命令 ### 文件 ``` rtk ls . # Token-optimized directory tree rtk read file.rs # Smart file reading rtk read file.rs -l aggressive # Signatures only (strips bodies) rtk smart file.rs # 2-line heuristic code summary rtk find "*.rs" . # Compact find results rtk grep "pattern" . # Grouped search results rtk diff file1 file2 # Condensed diff ``` ### Git ``` rtk git status # Compact status rtk git log -n 10 # One-line commits rtk git diff # Condensed diff rtk git add # -> "ok" rtk git commit -m "msg" # -> "ok abc1234" rtk git push # -> "ok main" rtk git pull # -> "ok 3 files +10 -2" ``` ### GitHub CLI ``` rtk gh pr list # Compact PR listing rtk gh pr view 42 # PR details + checks rtk gh issue list # Compact issue listing rtk gh run list # Workflow run status ``` ### 测试运行器 ``` rtk test cargo test # Show failures only (-90%) rtk err npm run build # Errors/warnings only rtk vitest run # Vitest compact (failures only) rtk playwright test # E2E results (failures only) rtk pytest # Python tests (-90%) rtk go test # Go tests (NDJSON, -90%) rtk cargo test # Cargo tests (-90%) ``` ### 构建与 Lint ``` rtk lint # ESLint grouped by rule/file rtk lint biome # Supports other linters rtk tsc # TypeScript errors grouped by file rtk next build # Next.js build compact rtk prettier --check . # Files needing formatting rtk cargo build # Cargo build (-80%) rtk cargo clippy # Cargo clippy (-80%) rtk ruff check # Python linting (JSON, -80%) rtk golangci-lint run # Go linting (JSON, -85%) ``` ### 包管理器 ``` rtk pnpm list # Compact dependency tree rtk pip list # Python packages (auto-detect uv) rtk pip outdated # Outdated packages rtk prisma generate # Schema generation (no ASCII art) ``` ### 容器 ``` rtk docker ps # Compact container list rtk docker images # Compact image list rtk docker logs # Deduplicated logs rtk docker compose ps # Compose services rtk kubectl pods # Compact pod list rtk kubectl logs # Deduplicated logs rtk kubectl services # Compact service list ``` ### 数据与分析 ``` rtk json config.json # Structure without values rtk deps # Dependencies summary rtk env -f AWS # Filtered env vars rtk log app.log # Deduplicated logs rtk curl # Auto-detect JSON + schema rtk wget # Download, strip progress bars rtk summary # Heuristic summary rtk proxy # Raw passthrough + tracking ``` ### Token 节省分析 ``` rtk gain # Summary stats rtk gain --graph # ASCII graph (last 30 days) rtk gain --history # Recent command history rtk gain --daily # Day-by-day breakdown rtk gain --all --format json # JSON export for dashboards rtk discover # Find missed savings opportunities rtk discover --all --since 7 # All projects, last 7 days ``` ## 全局标志 ``` -u, --ultra-compact # ASCII icons, inline format (extra token savings) -v, --verbose # Increase verbosity (-v, -vv, -vvv) ``` ## 示例 **目录列表:** ``` # ls -la(45 行,~800 tokens) # rtk ls(12 行,~150 tokens) drwxr-xr-x 15 user staff 480 ... my-project/ -rw-r--r-- 1 user staff 1234 ... +-- src/ (8 files) ... | +-- main.rs +-- Cargo.toml ``` **Git 操作:** ``` # git push(15 行,~200 tokens) # rtk git push(1 行,~10 tokens) Enumerating objects: 5, done. ok main Counting objects: 100% (5/5), done. Delta compression using up to 8 threads ... ``` **测试输出:** ``` # cargo test(失败时 200+ 行) # rtk test cargo test(~20 行) running 15 tests FAILED: 2/15 tests test utils::test_parse ... ok test_edge_case: assertion failed test utils::test_format ... ok test_overflow: panic at utils.rs:18 ... ``` ## 自动重写 Hook 使用 rtk 最有效的方式。该 hook 透明地拦截 Bash 命令,并在执行前将其重写为 rtk 等效命令。 **结果**:在所有对话和子代理中实现 100% rtk 采用率,零 token 开销。 ### 设置 ``` rtk init -g # Install hook + RTK.md (recommended) rtk init -g --auto-patch # Non-interactive (CI/CD) rtk init -g --hook-only # Hook only, no RTK.md rtk init --show # Verify installation ``` 安装后,**重启 Claude Code**。 ### 被重写的命令 | 原始命令 | 重写为 | |-------------|-------------| | `git status/diff/log/add/commit/push/pull` | `rtk git ...` | | `gh pr/issue/run` | `rtk gh ...` | | `cargo test/build/clippy` | `rtk cargo ...` | | `cat/head/tail ` | `rtk read ` | | `rg/grep ` | `rtk grep ` | | `ls` | `rtk ls` | | `vitest/jest` | `rtk vitest run` | | `tsc` | `rtk tsc` | | `eslint/biome` | `rtk lint` | | `prettier` | `rtk prettier` | | `playwright` | `rtk playwright` | | `prisma` | `rtk prisma` | | `ruff check/format` | `rtk ruff ...` | | `pytest` | `rtk pytest` | | `pip list/install` | `rtk pip ...` | | `go test/build/vet` | `rtk go ...` | | `golangci-lint` | `rtk golangci-lint` | | `docker ps/images/logs` | `rtk docker ...` | | `kubectl get/logs` | `rtk kubectl ...` | | `curl` | `rtk curl` | | `pnpm list/outdated` | `rtk pnpm ...` | 已使用 `rtk` 的命令、heredocs (`<<`) 以及无法识别的命令将保持不变。 ## 配置 ### 配置文件 `~/.config/rtk/config.toml` (macOS: `~/Library/Application Support/rtk/config.toml`): ``` [tracking] database_path = "/path/to/custom.db" # default: ~/.local/share/rtk/history.db [hooks] exclude_commands = ["curl", "playwright"] # skip rewrite for these [tee] enabled = true # save raw output on failure (default: true) mode = "failures" # "failures", "always", or "never" max_files = 20 # rotation limit ``` ### Tee:完整输出恢复 当命令失败时,RTK 会保存完整的未过滤输出,以便 LLM 无需重新执行即可读取: ``` FAILED: 2/15 tests [full output: ~/.local/share/rtk/tee/1707753600_cargo_test.log] ``` ### 卸载 ``` rtk init -g --uninstall # Remove hook, RTK.md, settings.json entry cargo uninstall rtk # Remove binary brew uninstall rtk # If installed via Homebrew ``` ## 文档 - **[TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md)** - 修复常见问题 - **[INSTALL.md](INSTALL.md)** - 详细安装指南 - **[ARCHITECTURE.md](ARCHITECTURE.md)** - 技术架构 - **[SECURITY.md](SECURITY.md)** - 安全策略与 PR 审查流程 - **[AUDIT_GUIDE.md](docs/AUDIT_GUIDE.md)** - Token 节省分析指南 ## 贡献 欢迎贡献!请参阅 **[贡献指南](CONTRIBUTING.md)** 了解分支命名、PR 流程、测试要求和编码规范。 加入 [Discord](https://discord.gg/pvHdzAec) 社区。 ## 许可证 MIT 许可证 - 详情见 [LICENSE](LICENSE)。 ## 联系方式 - 网站:https://www.rtk-ai.app - 邮箱:contact@rtk-ai.app - 问题反馈:https://github.com/rtk-ai/rtk/issues
标签:AI编程助手, DNS 反向解析, LLM工具, Rust, Token优化, 上下文压缩, 上下文管理, 二进制文件, 代理服务, 可视化界面, 威胁情报, 开发者工具, 开发辅助, 成本降低, 文档结构分析, 流量过滤, 网络流量审计, 通知系统, 零依赖