@hasna/terminal 2.0.5 → 2.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (263) hide show
  1. package/dist/cli.js +52 -21
  2. package/package.json +1 -1
  3. package/src/ai.ts +77 -130
  4. package/src/cli.tsx +51 -21
  5. package/src/command-validator.ts +11 -0
  6. package/src/context-hints.ts +291 -0
  7. package/src/discover.ts +238 -0
  8. package/src/economy.ts +53 -0
  9. package/src/output-processor.ts +7 -18
  10. package/src/output-store.ts +65 -0
  11. package/src/providers/base.ts +3 -1
  12. package/src/providers/groq.ts +108 -0
  13. package/src/providers/index.ts +26 -2
  14. package/src/providers/providers.test.ts +4 -2
  15. package/src/providers/xai.ts +108 -0
  16. package/src/sessions-db.ts +81 -0
  17. package/temp/rtk/.claude/agents/code-reviewer.md +221 -0
  18. package/temp/rtk/.claude/agents/debugger.md +519 -0
  19. package/temp/rtk/.claude/agents/rtk-testing-specialist.md +461 -0
  20. package/temp/rtk/.claude/agents/rust-rtk.md +511 -0
  21. package/temp/rtk/.claude/agents/technical-writer.md +355 -0
  22. package/temp/rtk/.claude/commands/diagnose.md +352 -0
  23. package/temp/rtk/.claude/commands/test-routing.md +362 -0
  24. package/temp/rtk/.claude/hooks/bash/pre-commit-format.sh +16 -0
  25. package/temp/rtk/.claude/hooks/rtk-rewrite.sh +70 -0
  26. package/temp/rtk/.claude/hooks/rtk-suggest.sh +152 -0
  27. package/temp/rtk/.claude/rules/cli-testing.md +526 -0
  28. package/temp/rtk/.claude/skills/issue-triage/SKILL.md +348 -0
  29. package/temp/rtk/.claude/skills/issue-triage/templates/issue-comment.md +134 -0
  30. package/temp/rtk/.claude/skills/performance.md +435 -0
  31. package/temp/rtk/.claude/skills/pr-triage/SKILL.md +315 -0
  32. package/temp/rtk/.claude/skills/pr-triage/templates/review-comment.md +71 -0
  33. package/temp/rtk/.claude/skills/repo-recap.md +206 -0
  34. package/temp/rtk/.claude/skills/rtk-tdd/SKILL.md +78 -0
  35. package/temp/rtk/.claude/skills/rtk-tdd/references/testing-patterns.md +124 -0
  36. package/temp/rtk/.claude/skills/security-guardian.md +503 -0
  37. package/temp/rtk/.claude/skills/ship.md +404 -0
  38. package/temp/rtk/.github/workflows/benchmark.yml +34 -0
  39. package/temp/rtk/.github/workflows/dco-check.yaml +12 -0
  40. package/temp/rtk/.github/workflows/release-please.yml +51 -0
  41. package/temp/rtk/.github/workflows/release.yml +343 -0
  42. package/temp/rtk/.github/workflows/security-check.yml +135 -0
  43. package/temp/rtk/.github/workflows/validate-docs.yml +78 -0
  44. package/temp/rtk/.release-please-manifest.json +3 -0
  45. package/temp/rtk/ARCHITECTURE.md +1491 -0
  46. package/temp/rtk/CHANGELOG.md +640 -0
  47. package/temp/rtk/CLAUDE.md +605 -0
  48. package/temp/rtk/CONTRIBUTING.md +199 -0
  49. package/temp/rtk/Cargo.lock +1668 -0
  50. package/temp/rtk/Cargo.toml +64 -0
  51. package/temp/rtk/Formula/rtk.rb +43 -0
  52. package/temp/rtk/INSTALL.md +390 -0
  53. package/temp/rtk/LICENSE +21 -0
  54. package/temp/rtk/README.md +386 -0
  55. package/temp/rtk/README_es.md +159 -0
  56. package/temp/rtk/README_fr.md +197 -0
  57. package/temp/rtk/README_ja.md +159 -0
  58. package/temp/rtk/README_ko.md +159 -0
  59. package/temp/rtk/README_zh.md +167 -0
  60. package/temp/rtk/ROADMAP.md +15 -0
  61. package/temp/rtk/SECURITY.md +217 -0
  62. package/temp/rtk/TEST_EXEC_TIME.md +102 -0
  63. package/temp/rtk/build.rs +57 -0
  64. package/temp/rtk/docs/AUDIT_GUIDE.md +432 -0
  65. package/temp/rtk/docs/FEATURES.md +1410 -0
  66. package/temp/rtk/docs/TROUBLESHOOTING.md +309 -0
  67. package/temp/rtk/docs/filter-workflow.md +102 -0
  68. package/temp/rtk/docs/images/gain-dashboard.jpg +0 -0
  69. package/temp/rtk/docs/tracking.md +583 -0
  70. package/temp/rtk/hooks/opencode-rtk.ts +39 -0
  71. package/temp/rtk/hooks/rtk-awareness.md +29 -0
  72. package/temp/rtk/hooks/rtk-rewrite.sh +61 -0
  73. package/temp/rtk/hooks/test-rtk-rewrite.sh +442 -0
  74. package/temp/rtk/install.sh +124 -0
  75. package/temp/rtk/release-please-config.json +10 -0
  76. package/temp/rtk/scripts/benchmark.sh +592 -0
  77. package/temp/rtk/scripts/check-installation.sh +162 -0
  78. package/temp/rtk/scripts/install-local.sh +37 -0
  79. package/temp/rtk/scripts/rtk-economics.sh +137 -0
  80. package/temp/rtk/scripts/test-all.sh +561 -0
  81. package/temp/rtk/scripts/test-aristote.sh +227 -0
  82. package/temp/rtk/scripts/test-tracking.sh +79 -0
  83. package/temp/rtk/scripts/update-readme-metrics.sh +32 -0
  84. package/temp/rtk/scripts/validate-docs.sh +73 -0
  85. package/temp/rtk/src/aws_cmd.rs +880 -0
  86. package/temp/rtk/src/binlog.rs +1645 -0
  87. package/temp/rtk/src/cargo_cmd.rs +1727 -0
  88. package/temp/rtk/src/cc_economics.rs +1157 -0
  89. package/temp/rtk/src/ccusage.rs +340 -0
  90. package/temp/rtk/src/config.rs +187 -0
  91. package/temp/rtk/src/container.rs +855 -0
  92. package/temp/rtk/src/curl_cmd.rs +134 -0
  93. package/temp/rtk/src/deps.rs +268 -0
  94. package/temp/rtk/src/diff_cmd.rs +367 -0
  95. package/temp/rtk/src/discover/mod.rs +274 -0
  96. package/temp/rtk/src/discover/provider.rs +388 -0
  97. package/temp/rtk/src/discover/registry.rs +2022 -0
  98. package/temp/rtk/src/discover/report.rs +202 -0
  99. package/temp/rtk/src/discover/rules.rs +667 -0
  100. package/temp/rtk/src/display_helpers.rs +402 -0
  101. package/temp/rtk/src/dotnet_cmd.rs +1771 -0
  102. package/temp/rtk/src/dotnet_format_report.rs +133 -0
  103. package/temp/rtk/src/dotnet_trx.rs +593 -0
  104. package/temp/rtk/src/env_cmd.rs +204 -0
  105. package/temp/rtk/src/filter.rs +462 -0
  106. package/temp/rtk/src/filters/README.md +52 -0
  107. package/temp/rtk/src/filters/ansible-playbook.toml +34 -0
  108. package/temp/rtk/src/filters/basedpyright.toml +47 -0
  109. package/temp/rtk/src/filters/biome.toml +45 -0
  110. package/temp/rtk/src/filters/brew-install.toml +37 -0
  111. package/temp/rtk/src/filters/composer-install.toml +40 -0
  112. package/temp/rtk/src/filters/df.toml +16 -0
  113. package/temp/rtk/src/filters/dotnet-build.toml +64 -0
  114. package/temp/rtk/src/filters/du.toml +16 -0
  115. package/temp/rtk/src/filters/fail2ban-client.toml +15 -0
  116. package/temp/rtk/src/filters/gcc.toml +49 -0
  117. package/temp/rtk/src/filters/gcloud.toml +22 -0
  118. package/temp/rtk/src/filters/hadolint.toml +24 -0
  119. package/temp/rtk/src/filters/helm.toml +29 -0
  120. package/temp/rtk/src/filters/iptables.toml +27 -0
  121. package/temp/rtk/src/filters/jj.toml +28 -0
  122. package/temp/rtk/src/filters/jq.toml +24 -0
  123. package/temp/rtk/src/filters/make.toml +41 -0
  124. package/temp/rtk/src/filters/markdownlint.toml +24 -0
  125. package/temp/rtk/src/filters/mix-compile.toml +27 -0
  126. package/temp/rtk/src/filters/mix-format.toml +15 -0
  127. package/temp/rtk/src/filters/mvn-build.toml +44 -0
  128. package/temp/rtk/src/filters/oxlint.toml +43 -0
  129. package/temp/rtk/src/filters/ping.toml +63 -0
  130. package/temp/rtk/src/filters/pio-run.toml +40 -0
  131. package/temp/rtk/src/filters/poetry-install.toml +50 -0
  132. package/temp/rtk/src/filters/pre-commit.toml +35 -0
  133. package/temp/rtk/src/filters/ps.toml +16 -0
  134. package/temp/rtk/src/filters/quarto-render.toml +41 -0
  135. package/temp/rtk/src/filters/rsync.toml +48 -0
  136. package/temp/rtk/src/filters/shellcheck.toml +27 -0
  137. package/temp/rtk/src/filters/shopify-theme.toml +29 -0
  138. package/temp/rtk/src/filters/skopeo.toml +45 -0
  139. package/temp/rtk/src/filters/sops.toml +16 -0
  140. package/temp/rtk/src/filters/ssh.toml +44 -0
  141. package/temp/rtk/src/filters/stat.toml +34 -0
  142. package/temp/rtk/src/filters/swift-build.toml +41 -0
  143. package/temp/rtk/src/filters/systemctl-status.toml +33 -0
  144. package/temp/rtk/src/filters/terraform-plan.toml +35 -0
  145. package/temp/rtk/src/filters/tofu-fmt.toml +16 -0
  146. package/temp/rtk/src/filters/tofu-init.toml +38 -0
  147. package/temp/rtk/src/filters/tofu-plan.toml +35 -0
  148. package/temp/rtk/src/filters/tofu-validate.toml +17 -0
  149. package/temp/rtk/src/filters/trunk-build.toml +39 -0
  150. package/temp/rtk/src/filters/ty.toml +50 -0
  151. package/temp/rtk/src/filters/uv-sync.toml +37 -0
  152. package/temp/rtk/src/filters/xcodebuild.toml +99 -0
  153. package/temp/rtk/src/filters/yamllint.toml +25 -0
  154. package/temp/rtk/src/find_cmd.rs +598 -0
  155. package/temp/rtk/src/format_cmd.rs +386 -0
  156. package/temp/rtk/src/gain.rs +723 -0
  157. package/temp/rtk/src/gh_cmd.rs +1651 -0
  158. package/temp/rtk/src/git.rs +2012 -0
  159. package/temp/rtk/src/go_cmd.rs +592 -0
  160. package/temp/rtk/src/golangci_cmd.rs +254 -0
  161. package/temp/rtk/src/grep_cmd.rs +288 -0
  162. package/temp/rtk/src/gt_cmd.rs +810 -0
  163. package/temp/rtk/src/hook_audit_cmd.rs +283 -0
  164. package/temp/rtk/src/hook_check.rs +171 -0
  165. package/temp/rtk/src/init.rs +1859 -0
  166. package/temp/rtk/src/integrity.rs +537 -0
  167. package/temp/rtk/src/json_cmd.rs +231 -0
  168. package/temp/rtk/src/learn/detector.rs +628 -0
  169. package/temp/rtk/src/learn/mod.rs +119 -0
  170. package/temp/rtk/src/learn/report.rs +184 -0
  171. package/temp/rtk/src/lint_cmd.rs +694 -0
  172. package/temp/rtk/src/local_llm.rs +316 -0
  173. package/temp/rtk/src/log_cmd.rs +248 -0
  174. package/temp/rtk/src/ls.rs +324 -0
  175. package/temp/rtk/src/main.rs +2482 -0
  176. package/temp/rtk/src/mypy_cmd.rs +389 -0
  177. package/temp/rtk/src/next_cmd.rs +241 -0
  178. package/temp/rtk/src/npm_cmd.rs +236 -0
  179. package/temp/rtk/src/parser/README.md +267 -0
  180. package/temp/rtk/src/parser/error.rs +46 -0
  181. package/temp/rtk/src/parser/formatter.rs +336 -0
  182. package/temp/rtk/src/parser/mod.rs +311 -0
  183. package/temp/rtk/src/parser/types.rs +119 -0
  184. package/temp/rtk/src/pip_cmd.rs +302 -0
  185. package/temp/rtk/src/playwright_cmd.rs +479 -0
  186. package/temp/rtk/src/pnpm_cmd.rs +573 -0
  187. package/temp/rtk/src/prettier_cmd.rs +221 -0
  188. package/temp/rtk/src/prisma_cmd.rs +482 -0
  189. package/temp/rtk/src/psql_cmd.rs +382 -0
  190. package/temp/rtk/src/pytest_cmd.rs +384 -0
  191. package/temp/rtk/src/read.rs +217 -0
  192. package/temp/rtk/src/rewrite_cmd.rs +50 -0
  193. package/temp/rtk/src/ruff_cmd.rs +402 -0
  194. package/temp/rtk/src/runner.rs +271 -0
  195. package/temp/rtk/src/summary.rs +297 -0
  196. package/temp/rtk/src/tee.rs +405 -0
  197. package/temp/rtk/src/telemetry.rs +248 -0
  198. package/temp/rtk/src/toml_filter.rs +1655 -0
  199. package/temp/rtk/src/tracking.rs +1416 -0
  200. package/temp/rtk/src/tree.rs +209 -0
  201. package/temp/rtk/src/tsc_cmd.rs +259 -0
  202. package/temp/rtk/src/utils.rs +432 -0
  203. package/temp/rtk/src/verify_cmd.rs +47 -0
  204. package/temp/rtk/src/vitest_cmd.rs +385 -0
  205. package/temp/rtk/src/wc_cmd.rs +401 -0
  206. package/temp/rtk/src/wget_cmd.rs +260 -0
  207. package/temp/rtk/tests/fixtures/dotnet/build_failed.txt +11 -0
  208. package/temp/rtk/tests/fixtures/dotnet/format_changes.json +31 -0
  209. package/temp/rtk/tests/fixtures/dotnet/format_empty.json +1 -0
  210. package/temp/rtk/tests/fixtures/dotnet/format_success.json +12 -0
  211. package/temp/rtk/tests/fixtures/dotnet/test_failed.txt +18 -0
  212. package/dist/App.js +0 -404
  213. package/dist/Browse.js +0 -79
  214. package/dist/FuzzyPicker.js +0 -47
  215. package/dist/Onboarding.js +0 -51
  216. package/dist/Spinner.js +0 -12
  217. package/dist/StatusBar.js +0 -49
  218. package/dist/ai.js +0 -368
  219. package/dist/cache.js +0 -41
  220. package/dist/command-rewriter.js +0 -64
  221. package/dist/command-validator.js +0 -77
  222. package/dist/compression.js +0 -107
  223. package/dist/diff-cache.js +0 -107
  224. package/dist/economy.js +0 -79
  225. package/dist/expand-store.js +0 -38
  226. package/dist/file-cache.js +0 -72
  227. package/dist/file-index.js +0 -62
  228. package/dist/history.js +0 -62
  229. package/dist/lazy-executor.js +0 -54
  230. package/dist/line-dedup.js +0 -59
  231. package/dist/loop-detector.js +0 -75
  232. package/dist/mcp/install.js +0 -98
  233. package/dist/mcp/server.js +0 -569
  234. package/dist/noise-filter.js +0 -86
  235. package/dist/output-processor.js +0 -136
  236. package/dist/output-router.js +0 -41
  237. package/dist/parsers/base.js +0 -2
  238. package/dist/parsers/build.js +0 -64
  239. package/dist/parsers/errors.js +0 -101
  240. package/dist/parsers/files.js +0 -78
  241. package/dist/parsers/git.js +0 -99
  242. package/dist/parsers/index.js +0 -48
  243. package/dist/parsers/tests.js +0 -89
  244. package/dist/providers/anthropic.js +0 -39
  245. package/dist/providers/base.js +0 -4
  246. package/dist/providers/cerebras.js +0 -95
  247. package/dist/providers/index.js +0 -49
  248. package/dist/recipes/model.js +0 -20
  249. package/dist/recipes/storage.js +0 -136
  250. package/dist/search/content-search.js +0 -68
  251. package/dist/search/file-search.js +0 -61
  252. package/dist/search/filters.js +0 -34
  253. package/dist/search/index.js +0 -5
  254. package/dist/search/semantic.js +0 -320
  255. package/dist/session-boot.js +0 -59
  256. package/dist/session-context.js +0 -55
  257. package/dist/sessions-db.js +0 -120
  258. package/dist/smart-display.js +0 -286
  259. package/dist/snapshots.js +0 -51
  260. package/dist/supervisor.js +0 -112
  261. package/dist/test-watchlist.js +0 -131
  262. package/dist/tree.js +0 -94
  263. package/dist/usage-cache.js +0 -65
@@ -0,0 +1,386 @@
1
+ <p align="center">
2
+ <img src="https://avatars.githubusercontent.com/u/258253854?v=4" alt="RTK - Rust Token Killer" width="500">
3
+ </p>
4
+
5
+ <p align="center">
6
+ <strong>High-performance CLI proxy that reduces LLM token consumption by 60-90%</strong>
7
+ </p>
8
+
9
+ <p align="center">
10
+ <a href="https://github.com/rtk-ai/rtk/actions"><img src="https://github.com/rtk-ai/rtk/workflows/Security%20Check/badge.svg" alt="CI"></a>
11
+ <a href="https://github.com/rtk-ai/rtk/releases"><img src="https://img.shields.io/github/v/release/rtk-ai/rtk" alt="Release"></a>
12
+ <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"></a>
13
+ <a href="https://discord.gg/pvHdzAec"><img src="https://img.shields.io/discord/1470188214710046894?label=Discord&logo=discord" alt="Discord"></a>
14
+ <a href="https://formulae.brew.sh/formula/rtk"><img src="https://img.shields.io/homebrew/v/rtk" alt="Homebrew"></a>
15
+ </p>
16
+
17
+ <p align="center">
18
+ <a href="https://www.rtk-ai.app">Website</a> &bull;
19
+ <a href="#installation">Install</a> &bull;
20
+ <a href="docs/TROUBLESHOOTING.md">Troubleshooting</a> &bull;
21
+ <a href="ARCHITECTURE.md">Architecture</a> &bull;
22
+ <a href="https://discord.gg/pvHdzAec">Discord</a>
23
+ </p>
24
+
25
+ <p align="center">
26
+ <a href="README.md">English</a> &bull;
27
+ <a href="README_fr.md">Francais</a> &bull;
28
+ <a href="README_zh.md">中文</a> &bull;
29
+ <a href="README_ja.md">日本語</a> &bull;
30
+ <a href="README_ko.md">한국어</a> &bull;
31
+ <a href="README_es.md">Espanol</a>
32
+ </p>
33
+
34
+ ---
35
+
36
+ rtk filters and compresses command outputs before they reach your LLM context. Single Rust binary, zero dependencies, <10ms overhead.
37
+
38
+ ## Token Savings (30-min Claude Code Session)
39
+
40
+ | Operation | Frequency | Standard | rtk | Savings |
41
+ |-----------|-----------|----------|-----|---------|
42
+ | `ls` / `tree` | 10x | 2,000 | 400 | -80% |
43
+ | `cat` / `read` | 20x | 40,000 | 12,000 | -70% |
44
+ | `grep` / `rg` | 8x | 16,000 | 3,200 | -80% |
45
+ | `git status` | 10x | 3,000 | 600 | -80% |
46
+ | `git diff` | 5x | 10,000 | 2,500 | -75% |
47
+ | `git log` | 5x | 2,500 | 500 | -80% |
48
+ | `git add/commit/push` | 8x | 1,600 | 120 | -92% |
49
+ | `cargo test` / `npm test` | 5x | 25,000 | 2,500 | -90% |
50
+ | `ruff check` | 3x | 3,000 | 600 | -80% |
51
+ | `pytest` | 4x | 8,000 | 800 | -90% |
52
+ | `go test` | 3x | 6,000 | 600 | -90% |
53
+ | `docker ps` | 3x | 900 | 180 | -80% |
54
+ | **Total** | | **~118,000** | **~23,900** | **-80%** |
55
+
56
+ > Estimates based on medium-sized TypeScript/Rust projects. Actual savings vary by project size.
57
+
58
+ ## Installation
59
+
60
+ ### Homebrew (recommended)
61
+
62
+ ```bash
63
+ brew install rtk
64
+ ```
65
+
66
+ ### Quick Install (Linux/macOS)
67
+
68
+ ```bash
69
+ curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh
70
+ ```
71
+
72
+ > Installs to `~/.local/bin`. Add to PATH if needed:
73
+ > ```bash
74
+ > echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc # or ~/.zshrc
75
+ > ```
76
+
77
+ ### Cargo
78
+
79
+ ```bash
80
+ cargo install --git https://github.com/rtk-ai/rtk
81
+ ```
82
+
83
+ ### Pre-built Binaries
84
+
85
+ Download from [releases](https://github.com/rtk-ai/rtk/releases):
86
+ - macOS: `rtk-x86_64-apple-darwin.tar.gz` / `rtk-aarch64-apple-darwin.tar.gz`
87
+ - Linux: `rtk-x86_64-unknown-linux-musl.tar.gz` / `rtk-aarch64-unknown-linux-gnu.tar.gz`
88
+ - Windows: `rtk-x86_64-pc-windows-msvc.zip`
89
+
90
+ ### Verify Installation
91
+
92
+ ```bash
93
+ rtk --version # Should show "rtk 0.28.0"
94
+ rtk gain # Should show token savings stats
95
+ ```
96
+
97
+ > **Name collision warning**: Another project named "rtk" (Rust Type Kit) exists on crates.io. If `rtk gain` fails, you have the wrong package. Use `cargo install --git` above instead.
98
+
99
+ ## Quick Start
100
+
101
+ ```bash
102
+ # 1. Install hook for Claude Code (recommended)
103
+ rtk init --global
104
+ # Follow instructions to register in ~/.claude/settings.json
105
+ # Claude Code only by default (use --opencode for OpenCode)
106
+
107
+ # 2. Restart Claude Code, then test
108
+ git status # Automatically rewritten to rtk git status
109
+ ```
110
+
111
+ The hook transparently rewrites commands (e.g., `git status` -> `rtk git status`) before execution. Claude never sees the rewrite, it just gets compressed output.
112
+
113
+ ## How It Works
114
+
115
+ ```
116
+ Without rtk: With rtk:
117
+
118
+ Claude --git status--> shell --> git Claude --git status--> RTK --> git
119
+ ^ | ^ | |
120
+ | ~2,000 tokens (raw) | | ~200 tokens | filter |
121
+ +-----------------------------------+ +------- (filtered) ---+----------+
122
+ ```
123
+
124
+ Four strategies applied per command type:
125
+
126
+ 1. **Smart Filtering** - Removes noise (comments, whitespace, boilerplate)
127
+ 2. **Grouping** - Aggregates similar items (files by directory, errors by type)
128
+ 3. **Truncation** - Keeps relevant context, cuts redundancy
129
+ 4. **Deduplication** - Collapses repeated log lines with counts
130
+
131
+ ## Commands
132
+
133
+ ### Files
134
+ ```bash
135
+ rtk ls . # Token-optimized directory tree
136
+ rtk read file.rs # Smart file reading
137
+ rtk read file.rs -l aggressive # Signatures only (strips bodies)
138
+ rtk smart file.rs # 2-line heuristic code summary
139
+ rtk find "*.rs" . # Compact find results
140
+ rtk grep "pattern" . # Grouped search results
141
+ rtk diff file1 file2 # Condensed diff
142
+ ```
143
+
144
+ ### Git
145
+ ```bash
146
+ rtk git status # Compact status
147
+ rtk git log -n 10 # One-line commits
148
+ rtk git diff # Condensed diff
149
+ rtk git add # -> "ok"
150
+ rtk git commit -m "msg" # -> "ok abc1234"
151
+ rtk git push # -> "ok main"
152
+ rtk git pull # -> "ok 3 files +10 -2"
153
+ ```
154
+
155
+ ### GitHub CLI
156
+ ```bash
157
+ rtk gh pr list # Compact PR listing
158
+ rtk gh pr view 42 # PR details + checks
159
+ rtk gh issue list # Compact issue listing
160
+ rtk gh run list # Workflow run status
161
+ ```
162
+
163
+ ### Test Runners
164
+ ```bash
165
+ rtk test cargo test # Show failures only (-90%)
166
+ rtk err npm run build # Errors/warnings only
167
+ rtk vitest run # Vitest compact (failures only)
168
+ rtk playwright test # E2E results (failures only)
169
+ rtk pytest # Python tests (-90%)
170
+ rtk go test # Go tests (NDJSON, -90%)
171
+ rtk cargo test # Cargo tests (-90%)
172
+ ```
173
+
174
+ ### Build & Lint
175
+ ```bash
176
+ rtk lint # ESLint grouped by rule/file
177
+ rtk lint biome # Supports other linters
178
+ rtk tsc # TypeScript errors grouped by file
179
+ rtk next build # Next.js build compact
180
+ rtk prettier --check . # Files needing formatting
181
+ rtk cargo build # Cargo build (-80%)
182
+ rtk cargo clippy # Cargo clippy (-80%)
183
+ rtk ruff check # Python linting (JSON, -80%)
184
+ rtk golangci-lint run # Go linting (JSON, -85%)
185
+ ```
186
+
187
+ ### Package Managers
188
+ ```bash
189
+ rtk pnpm list # Compact dependency tree
190
+ rtk pip list # Python packages (auto-detect uv)
191
+ rtk pip outdated # Outdated packages
192
+ rtk prisma generate # Schema generation (no ASCII art)
193
+ ```
194
+
195
+ ### Containers
196
+ ```bash
197
+ rtk docker ps # Compact container list
198
+ rtk docker images # Compact image list
199
+ rtk docker logs <container> # Deduplicated logs
200
+ rtk docker compose ps # Compose services
201
+ rtk kubectl pods # Compact pod list
202
+ rtk kubectl logs <pod> # Deduplicated logs
203
+ rtk kubectl services # Compact service list
204
+ ```
205
+
206
+ ### Data & Analytics
207
+ ```bash
208
+ rtk json config.json # Structure without values
209
+ rtk deps # Dependencies summary
210
+ rtk env -f AWS # Filtered env vars
211
+ rtk log app.log # Deduplicated logs
212
+ rtk curl <url> # Auto-detect JSON + schema
213
+ rtk wget <url> # Download, strip progress bars
214
+ rtk summary <long command> # Heuristic summary
215
+ rtk proxy <command> # Raw passthrough + tracking
216
+ ```
217
+
218
+ ### Token Savings Analytics
219
+ ```bash
220
+ rtk gain # Summary stats
221
+ rtk gain --graph # ASCII graph (last 30 days)
222
+ rtk gain --history # Recent command history
223
+ rtk gain --daily # Day-by-day breakdown
224
+ rtk gain --all --format json # JSON export for dashboards
225
+
226
+ rtk discover # Find missed savings opportunities
227
+ rtk discover --all --since 7 # All projects, last 7 days
228
+ ```
229
+
230
+ ## Global Flags
231
+
232
+ ```bash
233
+ -u, --ultra-compact # ASCII icons, inline format (extra token savings)
234
+ -v, --verbose # Increase verbosity (-v, -vv, -vvv)
235
+ ```
236
+
237
+ ## Examples
238
+
239
+ **Directory listing:**
240
+ ```
241
+ # ls -la (45 lines, ~800 tokens) # rtk ls (12 lines, ~150 tokens)
242
+ drwxr-xr-x 15 user staff 480 ... my-project/
243
+ -rw-r--r-- 1 user staff 1234 ... +-- src/ (8 files)
244
+ ... | +-- main.rs
245
+ +-- Cargo.toml
246
+ ```
247
+
248
+ **Git operations:**
249
+ ```
250
+ # git push (15 lines, ~200 tokens) # rtk git push (1 line, ~10 tokens)
251
+ Enumerating objects: 5, done. ok main
252
+ Counting objects: 100% (5/5), done.
253
+ Delta compression using up to 8 threads
254
+ ...
255
+ ```
256
+
257
+ **Test output:**
258
+ ```
259
+ # cargo test (200+ lines on failure) # rtk test cargo test (~20 lines)
260
+ running 15 tests FAILED: 2/15 tests
261
+ test utils::test_parse ... ok test_edge_case: assertion failed
262
+ test utils::test_format ... ok test_overflow: panic at utils.rs:18
263
+ ...
264
+ ```
265
+
266
+ ## Auto-Rewrite Hook
267
+
268
+ The most effective way to use rtk. The hook transparently intercepts Bash commands and rewrites them to rtk equivalents before execution.
269
+
270
+ **Result**: 100% rtk adoption across all conversations and subagents, zero token overhead.
271
+
272
+ ### Setup
273
+
274
+ ```bash
275
+ rtk init -g # Install hook + RTK.md (recommended)
276
+ rtk init -g --opencode # OpenCode plugin (instead of Claude Code)
277
+ rtk init -g --auto-patch # Non-interactive (CI/CD)
278
+ rtk init -g --hook-only # Hook only, no RTK.md
279
+ rtk init --show # Verify installation
280
+ ```
281
+
282
+ After install, **restart Claude Code**.
283
+
284
+ ## OpenCode Plugin (Global)
285
+
286
+ OpenCode supports plugins that can intercept tool execution. RTK provides a global plugin that mirrors the Claude auto-rewrite behavior by rewriting Bash tool commands to `rtk ...` before they execute. This plugin is **not** installed by default.
287
+
288
+ > **Note**: This plugin uses OpenCode's `tool.execute.before` hook. Known limitation: plugin hooks do not intercept subagent tool calls ([upstream issue](https://github.com/sst/opencode/issues/5894)). See [OpenCode plugin docs](https://open-code.ai/en/docs/plugins) for API details.
289
+
290
+ **Install OpenCode plugin:**
291
+ ```bash
292
+ rtk init -g --opencode
293
+ ```
294
+
295
+ **What it creates:**
296
+ - `~/.config/opencode/plugins/rtk.ts`
297
+
298
+ **Restart Required**: Restart OpenCode, then test with `git status` in a session.
299
+
300
+ **Manual install (fallback):**
301
+ ```bash
302
+ mkdir -p ~/.config/opencode/plugins
303
+ cp hooks/opencode-rtk.ts ~/.config/opencode/plugins/rtk.ts
304
+ ```
305
+
306
+ ### Commands Rewritten
307
+
308
+ | Raw Command | Rewritten To |
309
+ |-------------|-------------|
310
+ | `git status/diff/log/add/commit/push/pull` | `rtk git ...` |
311
+ | `gh pr/issue/run` | `rtk gh ...` |
312
+ | `cargo test/build/clippy` | `rtk cargo ...` |
313
+ | `cat/head/tail <file>` | `rtk read <file>` |
314
+ | `rg/grep <pattern>` | `rtk grep <pattern>` |
315
+ | `ls` | `rtk ls` |
316
+ | `vitest/jest` | `rtk vitest run` |
317
+ | `tsc` | `rtk tsc` |
318
+ | `eslint/biome` | `rtk lint` |
319
+ | `prettier` | `rtk prettier` |
320
+ | `playwright` | `rtk playwright` |
321
+ | `prisma` | `rtk prisma` |
322
+ | `ruff check/format` | `rtk ruff ...` |
323
+ | `pytest` | `rtk pytest` |
324
+ | `pip list/install` | `rtk pip ...` |
325
+ | `go test/build/vet` | `rtk go ...` |
326
+ | `golangci-lint` | `rtk golangci-lint` |
327
+ | `docker ps/images/logs` | `rtk docker ...` |
328
+ | `kubectl get/logs` | `rtk kubectl ...` |
329
+ | `curl` | `rtk curl` |
330
+ | `pnpm list/outdated` | `rtk pnpm ...` |
331
+
332
+ Commands already using `rtk`, heredocs (`<<`), and unrecognized commands pass through unchanged.
333
+
334
+ ## Configuration
335
+
336
+ ### Config File
337
+
338
+ `~/.config/rtk/config.toml` (macOS: `~/Library/Application Support/rtk/config.toml`):
339
+
340
+ ```toml
341
+ [tracking]
342
+ database_path = "/path/to/custom.db" # default: ~/.local/share/rtk/history.db
343
+
344
+ [hooks]
345
+ exclude_commands = ["curl", "playwright"] # skip rewrite for these
346
+
347
+ [tee]
348
+ enabled = true # save raw output on failure (default: true)
349
+ mode = "failures" # "failures", "always", or "never"
350
+ max_files = 20 # rotation limit
351
+ ```
352
+
353
+ ### Tee: Full Output Recovery
354
+
355
+ When a command fails, RTK saves the full unfiltered output so the LLM can read it without re-executing:
356
+
357
+ ```
358
+ FAILED: 2/15 tests
359
+ [full output: ~/.local/share/rtk/tee/1707753600_cargo_test.log]
360
+ ```
361
+
362
+ ### Uninstall
363
+
364
+ ```bash
365
+ rtk init -g --uninstall # Remove hook, RTK.md, settings.json entry
366
+ cargo uninstall rtk # Remove binary
367
+ brew uninstall rtk # If installed via Homebrew
368
+ ```
369
+
370
+ ## Documentation
371
+
372
+ - **[TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md)** - Fix common issues
373
+ - **[INSTALL.md](INSTALL.md)** - Detailed installation guide
374
+ - **[ARCHITECTURE.md](ARCHITECTURE.md)** - Technical architecture
375
+ - **[SECURITY.md](SECURITY.md)** - Security policy and PR review process
376
+ - **[AUDIT_GUIDE.md](docs/AUDIT_GUIDE.md)** - Token savings analytics guide
377
+
378
+ ## Contributing
379
+
380
+ Contributions welcome! Please open an issue or PR on [GitHub](https://github.com/rtk-ai/rtk).
381
+
382
+ Join the community on [Discord](https://discord.gg/pvHdzAec).
383
+
384
+ ## License
385
+
386
+ MIT License - see [LICENSE](LICENSE) for details.
@@ -0,0 +1,159 @@
1
+ <p align="center">
2
+ <img src="https://avatars.githubusercontent.com/u/258253854?v=4" alt="RTK - Rust Token Killer" width="500">
3
+ </p>
4
+
5
+ <p align="center">
6
+ <strong>Proxy CLI de alto rendimiento que reduce el consumo de tokens LLM en un 60-90%</strong>
7
+ </p>
8
+
9
+ <p align="center">
10
+ <a href="https://github.com/rtk-ai/rtk/actions"><img src="https://github.com/rtk-ai/rtk/workflows/Security%20Check/badge.svg" alt="CI"></a>
11
+ <a href="https://github.com/rtk-ai/rtk/releases"><img src="https://img.shields.io/github/v/release/rtk-ai/rtk" alt="Release"></a>
12
+ <a href="https://opensource.org/licenses/MIT"><img src="https://img.shields.io/badge/License-MIT-yellow.svg" alt="License: MIT"></a>
13
+ <a href="https://discord.gg/gFwRPEKq4p"><img src="https://img.shields.io/discord/1478373640461488159?label=Discord&logo=discord" alt="Discord"></a>
14
+ <a href="https://formulae.brew.sh/formula/rtk"><img src="https://img.shields.io/homebrew/v/rtk" alt="Homebrew"></a>
15
+ </p>
16
+
17
+ <p align="center">
18
+ <a href="https://www.rtk-ai.app">Sitio web</a> &bull;
19
+ <a href="#instalacion">Instalar</a> &bull;
20
+ <a href="docs/TROUBLESHOOTING.md">Solucion de problemas</a> &bull;
21
+ <a href="ARCHITECTURE.md">Arquitectura</a> &bull;
22
+ <a href="https://discord.gg/gFwRPEKq4p">Discord</a>
23
+ </p>
24
+
25
+ <p align="center">
26
+ <a href="README.md">English</a> &bull;
27
+ <a href="README_fr.md">Francais</a> &bull;
28
+ <a href="README_zh.md">中文</a> &bull;
29
+ <a href="README_ja.md">日本語</a> &bull;
30
+ <a href="README_ko.md">한국어</a> &bull;
31
+ <a href="README_es.md">Espanol</a>
32
+ </p>
33
+
34
+ ---
35
+
36
+ rtk filtra y comprime las salidas de comandos antes de que lleguen al contexto de tu LLM. Binario Rust unico, cero dependencias, <10ms de overhead.
37
+
38
+ ## Ahorro de tokens (sesion de 30 min en Claude Code)
39
+
40
+ | Operacion | Frecuencia | Estandar | rtk | Ahorro |
41
+ |-----------|------------|----------|-----|--------|
42
+ | `ls` / `tree` | 10x | 2,000 | 400 | -80% |
43
+ | `cat` / `read` | 20x | 40,000 | 12,000 | -70% |
44
+ | `grep` / `rg` | 8x | 16,000 | 3,200 | -80% |
45
+ | `git status` | 10x | 3,000 | 600 | -80% |
46
+ | `cargo test` / `npm test` | 5x | 25,000 | 2,500 | -90% |
47
+ | **Total** | | **~118,000** | **~23,900** | **-80%** |
48
+
49
+ ## Instalacion
50
+
51
+ ### Homebrew (recomendado)
52
+
53
+ ```bash
54
+ brew install rtk
55
+ ```
56
+
57
+ ### Instalacion rapida (Linux/macOS)
58
+
59
+ ```bash
60
+ curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh
61
+ ```
62
+
63
+ ### Cargo
64
+
65
+ ```bash
66
+ cargo install --git https://github.com/rtk-ai/rtk
67
+ ```
68
+
69
+ ### Verificacion
70
+
71
+ ```bash
72
+ rtk --version # Debe mostrar "rtk 0.27.x"
73
+ rtk gain # Debe mostrar estadisticas de ahorro
74
+ ```
75
+
76
+ ## Inicio rapido
77
+
78
+ ```bash
79
+ # 1. Instalar hook para Claude Code (recomendado)
80
+ rtk init --global
81
+
82
+ # 2. Reiniciar Claude Code, luego probar
83
+ git status # Automaticamente reescrito a rtk git status
84
+ ```
85
+
86
+ ## Como funciona
87
+
88
+ ```
89
+ Sin rtk: Con rtk:
90
+
91
+ Claude --git status--> shell --> git Claude --git status--> RTK --> git
92
+ ^ | ^ | |
93
+ | ~2,000 tokens (crudo) | | ~200 tokens | filtro |
94
+ +-----------------------------------+ +------- (filtrado) ---+----------+
95
+ ```
96
+
97
+ Cuatro estrategias:
98
+
99
+ 1. **Filtrado inteligente** - Elimina ruido (comentarios, espacios, boilerplate)
100
+ 2. **Agrupacion** - Agrega elementos similares (archivos por directorio, errores por tipo)
101
+ 3. **Truncamiento** - Mantiene contexto relevante, elimina redundancia
102
+ 4. **Deduplicacion** - Colapsa lineas de log repetidas con contadores
103
+
104
+ ## Comandos
105
+
106
+ ### Archivos
107
+ ```bash
108
+ rtk ls . # Arbol de directorios optimizado
109
+ rtk read file.rs # Lectura inteligente
110
+ rtk find "*.rs" . # Resultados compactos
111
+ rtk grep "pattern" . # Busqueda agrupada por archivo
112
+ ```
113
+
114
+ ### Git
115
+ ```bash
116
+ rtk git status # Estado compacto
117
+ rtk git log -n 10 # Commits en una linea
118
+ rtk git diff # Diff condensado
119
+ rtk git push # -> "ok main"
120
+ ```
121
+
122
+ ### Tests
123
+ ```bash
124
+ rtk test cargo test # Solo fallos (-90%)
125
+ rtk vitest run # Vitest compacto
126
+ rtk pytest # Tests Python (-90%)
127
+ rtk go test # Tests Go (-90%)
128
+ ```
129
+
130
+ ### Build & Lint
131
+ ```bash
132
+ rtk lint # ESLint agrupado por regla
133
+ rtk tsc # Errores TypeScript agrupados
134
+ rtk cargo build # Build Cargo (-80%)
135
+ rtk ruff check # Lint Python (-80%)
136
+ ```
137
+
138
+ ### Analiticas
139
+ ```bash
140
+ rtk gain # Estadisticas de ahorro
141
+ rtk gain --graph # Grafico ASCII (30 dias)
142
+ rtk discover # Descubrir ahorros perdidos
143
+ ```
144
+
145
+ ## Documentacion
146
+
147
+ - **[TROUBLESHOOTING.md](docs/TROUBLESHOOTING.md)** - Resolver problemas comunes
148
+ - **[INSTALL.md](INSTALL.md)** - Guia de instalacion detallada
149
+ - **[ARCHITECTURE.md](ARCHITECTURE.md)** - Arquitectura tecnica
150
+
151
+ ## Contribuir
152
+
153
+ Las contribuciones son bienvenidas. Abre un issue o PR en [GitHub](https://github.com/rtk-ai/rtk).
154
+
155
+ Unete a la comunidad en [Discord](https://discord.gg/pvHdzAec).
156
+
157
+ ## Licencia
158
+
159
+ Licencia MIT - ver [LICENSE](LICENSE) para detalles.