All notable changes to rtk (Rust Token Killer) will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.29.0 (2026-03-12)
0.28.2 (2026-03-10)
0.28.1 (2026-03-10)
- 4 critical bugs + telemetry enrichment (#462) (7d76af8)
- restore lost telemetry install_method enrichment (#469) (0c5cde9)
0.28.0 (2026-03-10)
- gt: add Graphite CLI support (#290) (7fbc4ef)
- TOML Part 1 — filter DSL engine + 14 built-in filters (#349) (adda253)
- TOML Part 2 — user-global config, shadow warning, rtk init templates, 4 new built-in filters (#351) (926e6a0)
- TOML Part 3 — 15 additional built-in filters (ping, rsync, dotnet, swift, shellcheck, hadolint, poetry, composer, brew, df, ps, systemctl, yamllint, markdownlint, uv) (#386) (b71a8d2)
0.27.2 (2026-03-06)
- gh pr edit/comment pass correct subcommand to gh (#332) (799f085)
- pass through -R/--repo flag in gh view commands (#328) (0a1bcb0), closes #223
- reduce gh diff / git diff / gh api truncation (#354) (#370) (e356c12)
- strip npx/bunx/pnpm prefixes in lint linter detection (#186) (#366) (27b35d8)
0.27.1 (2026-03-06)
- only rewrite docker compose ps/logs/build, skip unsupported subcommands (#336) (#363) (dbc9503)
- preserve -- separator for cargo commands and silence fallback (#326) (45f9344), closes #286 #287
- prettier false positive when not installed (#221) (#359) (85b0b3e)
- support git commit -am, --amend and other flags (#327) (#360) (409aed6)
0.27.0 (2026-03-05)
- bugs #196 #344 #345 #346 #347 — gh --json, hook check, RTK_DISABLED, 2>&1, json TOML (8953af0)
- RTK_DISABLED ignored, 2>&1 broken, json TOML error (#345, #346, #347) (6c13d23)
- skip rewrite for gh --json/--jq/--template (#196) (079ee9a)
0.26.0 (2026-03-05)
- add Claude Code skills for PR and issue triage (#343) (6ad6ffe)
- anonymous telemetry ping (1/day, opt-out) (#334) (baff6a2)
- toml-dsl: declarative TOML filter engine — add command filters without writing Rust (#299)
- 8 primitives:
strip_ansi,replace,match_output,strip/keep_lines_matching,truncate_lines_at,head/tail_lines,max_lines,on_empty - lookup chain:
.rtk/filters.toml(project-local) →~/.config/rtk/filters.toml(user-global) → built-in filters RTK_NO_TOML=1bypass,RTK_TOML_DEBUG=1debug mode- shadow warning when a TOML filter's match_command overlaps a Rust-handled command
rtk initgenerates commented filter templates at both project and global levelrtk verifycommand with--require-allfor inline test validation- 18 built-in filters:
tofu-plan/init/validate/fmt(#240),du(#284),fail2ban-client(#281),iptables(#282),mix-format/compile(#310),shopify-theme(#280),pio-run(#231),mvn-build(#338),pre-commit,helm,gcloud,ansible-playbook
- 8 primitives:
- hooks:
exclude_commandsconfig — exclude specific commands from auto-rewrite (#243)
- curl: skip JSON schema replacement when schema is larger than original payload (#297)
- toml-dsl: fix regex overmatch on
tofu-plan/init/validate/fmtandmix-format/compile— add(\s|$)word boundary to prevent matching subcommands (e.g.tofu planet,mix formats) (#349) - toml-dsl: remove 3 dead built-in filters (
docker-inspect,docker-compose-ps,pnpm-build) — Clap routes these commands beforerun_fallback, so the TOML filters never fire (#351) - toml-dsl:
uv-sync— removeResolvedshort-circuit; it fires before the package list is printed, hiding installed packages (#386) - toml-dsl:
dotnet-build— short-circuit only when both warning and error counts are zero; builds with warnings now pass through (#386) - toml-dsl:
poetry-install— support Poetry 2.x bullet syntax (•) andNo changes.up-to-date message (#386) - toml-dsl:
ping— add Windows format support (Pingingheader,Reply fromper-packet lines) (#386)
0.25.0 (2026-03-05)
Hook must be updated after upgrading (rtk init --global).
The Claude Code hook is now a thin delegator: all rewrite logic lives in the
rtk rewrite command (single source of truth). The old hook embedded the full
if-else mapping inline — it still works after upgrading, but won't pick up new
commands automatically.
Upgrade path:
cargo install rtk # upgrade binary
rtk init --global # replace old hook with thin delegatorRunning rtk init without --global updates the project-level hook only.
Users who skip this step keep the old hook working as before — no immediate
breakage, but future rule additions won't take effect until they migrate.
- rewrite: add
rtk rewritecommand — single source of truth for hook rewrites (#241)- New
src/discover/registry.rshandles all command → RTK mapping - Hook reduced to ~50 lines (thin delegator), no duplicate logic
- New commands automatically available in hook without hook file changes
- Supports compound commands (
&&,||,;,|,&) and env prefixes
- New
- discover: extract rules/patterns into
src/discover/rules.rs— adding a command now means editing one file only - fix: add
awsandpsqlto rewrite registry (were missing despite modules existing since 0.24.0)
- +48 regression tests covering all command categories: aws, psql, Python, Go, JS/TS, compound operators, sudo/env prefixes, registry invariants (607 total, was 559)
0.24.0 (2026-03-04)
- add AWS CLI and psql modules with token-optimized output (#216) (b934466)
- passthrough fallback when Clap parse fails + review fixes (#200) (772b501)
- security: add SHA-256 hook integrity verification (f2caca3)
- git: propagate exit codes in push/pull/fetch/stash/worktree (#234) (5cfaecc)
- playwright: fix JSON parser to match real Playwright output format (#193) (4eb6cf4)
- support additional git global options (--no-pager, --no-optional-locks, --bare, --literal-pathspecs) (68ca712)
- support git global options (-C, -c, --git-dir, --work-tree, --no-pager, --no-optional-locks, --bare, --literal-pathspecs) (a6ccefe)
- support git global options (-C, -c, --git-dir, --work-tree) (982084e)
- update version refs to 0.23.0, module count to 51, fmt upstream files (eed0188)
0.23.0 (2026-02-28)
- add mypy command with grouped error output (#109) (e8ef341)
- gain: add per-project token savings with -p flag (#128) (2b550ee)
- eliminate duplicate output when grep-ing function names from git show (#248) (a6f65f1)
- filter docker compose hook rewrites to supported subcommands (#245) (dbbf980), closes #244
- registry: "fi" in IGNORED_PREFIXES shadows find commands (#246) (48965c8)
- remove personal preferences from project CLAUDE.md (3a8044e)
- remove personal preferences from project CLAUDE.md (d362ad0)
- remove remaining personal project reference from CLAUDE.md (5b59700)
- remove remaining personal project reference from CLAUDE.md (dc09265)
- surface build failures in go test summary (#274) (b405e48)
0.22.2 (2026-02-20)
- grep: accept -n flag for grep/rg compatibility (7d561cc)
- playwright: fix JSON parser and binary resolution (#215) (461856c)
- propagate rg exit code in rtk grep for CLI parity (#227) (f1be885), closes #162
0.22.1 (2026-02-19)
- git branch creation silently swallowed by list mode (#194) (88dc752)
- git: support multiple -m flags in git commit (292225f)
- git: support multiple -m flags in git commit (c18553a)
- grep: translate BRE | alternation and strip -r flag for rg (#206) (70d1b04)
- propagate linter exit code in rtk lint (#207) (8e826fc), closes #185
- smart markdown body filter for gh issue/pr view (#188) (#214) (4208015)
0.22.0 (2026-02-18)
0.21.1 (2026-02-17)
0.21.0 (2026-02-17)
0.20.1 (2026-02-17)
0.20.0 (2026-02-16)
0.19.0 (2026-02-16)
0.18.1 (2026-02-15)
- update ARCHITECTURE.md version to 0.18.0 (398cb08)
- update version references to 0.16.0 in README.md and CLAUDE.md (ec54833)
- update version references to 0.18.0 in docs (c73ed47)
0.18.0 (2026-02-15)
0.17.0 (2026-02-15)
- cargo: add cargo nextest support with failures-only output (#107) (68fd570)
- hook: handle global options before subcommands (#99) (7401f10)
0.16.0 (2026-02-14)
0.15.4 (2026-02-14)
- git: fix for issue #82 (04e6bb0)
- git: Returns "Not a git repository" when git status is executed in a non-repo folder #82 (d4cb2c0)
0.15.3 (2026-02-13)
0.15.2 (2026-02-13)
0.15.1 (2026-02-12)
- improve CI reliability and hook coverage (#95) (ac80bfa)
- vitest: robust JSON extraction for pnpm/dotenv prefixes (#92) (e5adba8)
0.15.0 (2026-02-12)
- add Python and Go support (#88) (a005bb1)
- cargo: aggregate test output into single line (#83) (#85) (06b1049)
- make install-local.sh self-contained (#89) (b82ad16)
0.14.0 (2026-02-12)
- add website URL (rtk-ai.app) across project metadata (#81) (c84fa3c)
- update stale repo URLs from pszymkowiak/rtk to rtk-ai/rtk (#78) (55d010a)
0.13.1 (2026-02-12)
- ci: fix release artifacts not uploading (#73) (bb20b1e)
- ci: fix release workflow not uploading artifacts to GitHub releases (bd76b36)
0.13.0 (2026-02-12)
0.12.0 (2026-02-09)
- cargo: add
cargo installfiltering with 80-90% token reduction (645a773), closes #69 - cargo: add cargo install filtering (447002f)
0.11.0 (2026-02-07)
- init: auto-patch settings.json for frictionless hook installation (2db7197)
- settings.json auto-patch for frictionless hook installation
- Default
rtk init -gnow prompts to patch settings.json [y/N] --auto-patch: Patch immediately without prompting (CI/CD workflows)--no-patch: Skip patching, print manual instructions instead- Automatic backup: creates
settings.json.bakbefore modification - Idempotent: detects existing hook, skips modification if present
rtk init --shownow displays settings.json status
- Default
- Uninstall command for complete RTK removal
rtk init -g --uninstallremoves hook, RTK.md, CLAUDE.md reference, and settings.json entry- Restores clean state for fresh installation or testing
- Improved error handling with detailed context messages
- All error messages now include file paths and actionable hints
- UTF-8 validation for hook paths
- Disk space hints on write failures
- Refactored
insert_hook_entry()to use idiomatic Rustentry()API - Simplified
hook_already_present()logic with iterator chains - Improved atomic write error messages for better debugging
0.10.0 (2026-02-07)
- Hook-first installation with 99.5% token reduction (e7f80ad)
- init: refactor to hook-first with slim RTK.md (9620f66)
0.9.4 (2026-02-06)
- discover: add cargo check support, wire RtkStatus::Passthrough, enhance rtk init (d5f8a94)
0.9.3 (2026-02-06)
- P0 crashes + cargo check + dedup utilities + discover status (05078ff)
- P0 crashes + cargo check + dedup utilities + discover status (60d2d25)
0.9.2 (2026-02-05)
- git: accept native git flags in add command (including -A) (2ade8fe)
- git: accept native git flags in add command (including -A) (40e7ead)
0.9.1 (2026-02-04)
- tsc: show every TypeScript error instead of collapsing by code (3df8ce5)
- tsc: show every TypeScript error instead of collapsing by code (67e8de8)
0.9.0 (2026-02-03)
- add rtk tree + fix rtk ls + audit phase 1-2 (278cc57)
- audit phase 3 + tracking validation + rtk learn (7975624)
- git: add fallback passthrough for unsupported subcommands (32bbd02)
- grep: add extra args passthrough (-i, -A/-B/-C, etc.) (a240d1a)
- pnpm: add fallback passthrough for unsupported subcommands (614ff5c)
- read: add stdin support via "-" path (060c38b)
- rtk tree + fix rtk ls + full audit (phase 1-2-3) (cb83da1)
- docs: escape HTML tags in rustdoc comments (b13d92c)
- find: rewrite with ignore crate + fix json stdin + benchmark pipeline (fcc1462)
- ls: compact output (-72% tokens) + fix discover panic (ea7cdb7)
0.8.1 (2026-02-02)
0.8.0 (2026-02-02)
- add comprehensive security review workflow for PRs (1ca6e81)
- add comprehensive security review workflow for PRs (66101eb)
0.7.1 (2026-02-02)
- execution time tracking: Add command execution time metrics to
rtk gainanalytics- Total execution time and average time per command displayed in summary
- Time column in "By Command" breakdown showing average execution duration
- Daily breakdown (
--daily) includes time metrics per day - JSON export includes
total_time_msandavg_time_msfields - CSV export includes execution time columns
- Backward compatible: historical data shows 0ms (pre-tracking)
- Negligible overhead: <0.1ms per command
- New SQLite column:
exec_time_msin commands table
- parser infrastructure: Three-tier fallback system for robust output parsing
- Tier 1: Full JSON parsing with complete structured data
- Tier 2: Degraded parsing with regex fallback and warnings
- Tier 3: Passthrough with truncated raw output and error markers
- Guarantees RTK never returns false data silently
- migrate commands to OutputParser: vitest, playwright, pnpm now use robust parsing
- JSON parsing with safe fallbacks for all modern JS tooling
- Improved error handling and debugging visibility
- local LLM analysis: Add economics analysis and comprehensive test scripts
scripts/rtk-economics.shfor token savings ROI analysisscripts/test-all.shwith 69 assertions covering all commandsscripts/test-aristote.shfor T3 Stack project validation
- convert rtk ls from reimplementation to native proxy for better reliability
- trigger release build after release-please creates tag
- add execution time tracking test guide (TEST_EXEC_TIME.md)
- comprehensive parser infrastructure documentation (src/parser/README.md)
0.7.0 (2026-02-01)
- add discover command, auto-rewrite hook, and git show support (ff1c759)
- discover command, auto-rewrite hook, git show (c9c64cf)
- forward args in rtk git push/pull to support -u, remote, branch (4bb0130)
0.6.0 (2026-02-01)
- cargo build/test/clippy with compact output (bfd5646)
- curl with auto-JSON detection (314accb)
- gh pr create/merge/diff/comment/edit + gh api (517a93d)
- git branch, fetch, stash, worktree commands (bc31da8)
- npm/npx routing, pnpm build/typecheck, --skip-env flag (49b3cf2)
- shared infrastructure for new commands (6c60888)
- shared infrastructure for new commands (9dbc117)
0.5.2 (2026-01-30)
- release pipeline trigger and version-agnostic package URLs (108d0b5)
- release pipeline trigger and version-agnostic package URLs (264539c)
0.5.1 (2026-01-30)
- 3 issues (latest tag, ccusage fallback, versioning) (d773ec3)
- patrick's 3 issues (latest tag, ccusage fallback, versioning) (9e322e2)
0.5.0 (2026-01-30)
- add comprehensive claude code economics analysis (ec1cf9a)
- comprehensive economics analysis and code quality improvements (8e72e7a)
- comprehensive code quality improvements (5b840cc)
- optimize HashMap merge and add safety checks (3b847f8)
0.4.0 (2026-01-30)
- add comprehensive temporal audit system for token savings analytics (76703ca)
- Comprehensive Temporal Audit System for Token Savings Analytics (862047e)
0.3.1 (2026-01-29)
- improve command robustness and flag support (c2cd691)
- improve command robustness and flag support (d7d8c65)
0.3.0 (2026-01-29)
- add --quota flag to rtk gain with tier-based analysis (26b314d)
- add CI/CD automation (release management and automated metrics) (22c3017)
- add GitHub CLI integration (depends on #9) (341c485)
- add GitHub CLI integration with token optimizations (0f7418e)
- add modern JavaScript tooling support (b82fa85)
- add modern JavaScript tooling support (lint, tsc, next, prettier, playwright, prisma) (88c0174)
- add Modern JS Stack commands to benchmark script (b868987)
- add quota analysis with multi-tier support (64c0b03)
- add shared utils module for JS stack commands (0fc06f9)
- CI/CD automation (versioning, benchmarks, README auto-update) (b8bbfb8)
- ci: correct rust-toolchain action name (9526471)
prettiercommand for format checking with package manager auto-detection (pnpm/yarn/npx)- Shows only files needing formatting (~70% token reduction)
- Exit code preservation for CI/CD compatibility
playwrightcommand for E2E test output filtering (~94% token reduction)- Shows only test failures and slow tests
- Summary with pass/fail counts and timing
lintcommand with ESLint/Biome support and pnpm detection- Groups violations by rule and file (~84% token reduction)
- Shows top violators for quick navigation
tsccommand for TypeScript compiler output filtering- Groups errors by file and error code (~83% token reduction)
- Shows top 10 affected files
nextcommand for Next.js build/dev output filtering (87% token reduction)- Extracts route count and bundle sizes
- Highlights warnings and oversized bundles
prismacommand for Prisma CLI output filtering- Removes ASCII art and verbose logs (~88% token reduction)
- Supports generate, migrate (dev/status/deploy), and db push
utilsmodule with common utilities (truncate, strip_ansi, execute_command)- Shared functionality for consistent output formatting
- ANSI escape code stripping for clean parsing
- Refactored duplicated code patterns into
utils.rsmodule - Improved package manager detection across all modern JS commands
See upstream: https://github.com/pszymkowiak/rtk
- Repository: https://github.com/rtk-ai/rtk (maintained by pszymkowiak)
- Issues: https://github.com/rtk-ai/rtk/issues