CLI proxy that reduces LLM token consumption by 60-90% on common dev commands. Single Rust binary, zero dependencies
languages detected by GitHub · % code
every merged PR, grouped by type, newest first
Adds `src/hook_cmd.rs` processing Gemini CLI BeforeTool hooks from stdin JSON, delegating to `rewrite_command()` in `discover/registry.rs`, plus `--gemini` flag in `init.rs` patching `~/.gemini/settings.json`.
Adds `rtk session` subcommand reusing `ClaudeProvider` from `discover` module to list last 10 Claude Code sessions with ASCII adoption bar, and fixes missing `truncate` import in `cargo_cmd.rs`.
Tightens `head`/`tail` regexes in `src/discover/registry.rs` (`\S+$` instead of `(.+)$`); `rewrite_line_range` returns `None` for multi-file calls, letting native `head`/`tail` emit the `==> name <==` banners `rtk read --max-lines` cannot reproduce.
Adds `normalize_diff_args()` in `src/cmds/git/git.rs` re-inserting `--` before first path-like arg (via `looks_like_path` heuristic) silently consumed by clap's `trailing_var_arg`.
Drops `short = 'u'` from the global `--ultra-compact` flag in `src/main.rs` so `git push -u origin <branch>` no longer gets swallowed by clap and actually writes the upstream entry to `.git/config`.
In `glob_matches`, adds a `remaining.ends_with(part.trim_end())` fallback in the middle-segment branch, fixing `git -C * diff:*` failing to match bare `git -C /path diff` with no trailing args.
Detects `-name` patterns starting with `.` to switch `WalkBuilder::hidden(false)` instead of `hidden(true)`, since the default skipped .claude.json/.gitignore and always returned 0 matches.
In `src/cmds/go/go_cmd.rs`, `total_pkg_fail` now counts only pure package-level fails (timeout, panic, signal) excluding those with test-level failures, and the `[FAIL]` block skips packages already shown below.
Rewrites `filter_cargo_clippy` as a state machine collecting up to 10 blocks of 15 lines (headline, `-->`, `|` snippet, `note:`/`help:`) instead of truncating only the first line to 160 chars.
Adds stderr warning in the rewrite hook when `RTK_DISABLED=1` is detected, breaking the pattern where agents bypass the filter on 30% of commands (243/801), dropping savings from 65% to 48%.
Splits `compact_ls()` into (entries, summary) tuple and makes `run()` print the summary only when `stdout().is_terminal()`; `rtk gain` no longer counts the 📊 line when piped.
Replaces `.take(2).join(" ")` with line-by-line iteration over `error_message` in `format_compact()` at `parser/formatter.rs`, exposing Playwright Expected/Received diff and call log previously truncated, fixing 170-call/3.6M-token agent loop.
Adds `Language::Data` variant with no comment patterns for JSON/YAML/TOML/XML/CSV/Markdown, preventing `/*` and `*/` inside strings like `"packages/*"` from being treated as block comment delimiters that silently delete content between them.
Adds guard in `restore_double_dash()` to skip re-inserting `--` when Clap's `trailing_var_arg=true` already preserved it via `-p` flags, preventing `cargo clippy -p crate -- -- -D warnings`.
Removes double truncation in `run_log()`/`filter_log_output()`: `--oneline` without `-N` now yields 50 entries, `.take(limit)` no longer re-caps when `-N` is explicit, line width 80→120 chars.