TL;DR : RTK est un outil proxy CLI écrit en Rust. Il filtre et compresse automatiquement les sorties de commandes exécutées par les assistants de programmation IA (Claude Code, Cursor, Gemini CLI), réduisant la consommation de tokens de 60 à 90 %. Un seul binaire, zéro dépendance, plus de 100 commandes supportées. L'installation tient en une ligne.

Si vous utilisez quotidiennement Claude Code, Cursor, Gemini CLI ou d'autres assistants IA, vous connaissez ce problème : chaque fois que l'assistant exécute git status, ls, cat, cargo test et consorts, la sortie brute complète est injectée dans la fenêtre de contexte du LLM. Les tokens fondent à vue d'œil.

Une session de codage de 30 minutes consomme environ 118 000 tokens, dont 94 100 sont des informations redondantes.

RTK est là pour résoudre ce problème. Écrit en Rust, compact (un binaire autonome sans dépendances), il intercepte les sorties de commandes sur leur chemin d'exécution, filtre intelligemment le bruit et ne conserve que l'essentiel. La consommation de tokens passe de 118 000 à environ 23 900 pour une session de 30 minutes — soit une économie de 80 %.

Qu'est-ce que RTK ?

RTK, pour « Rust Token Killer » (le tueur de tokens en Rust), est une couche proxy CLI qui se place entre vous et le LLM. Ce n'est ni un LLM, ni un plugin d'IDE, mais un « intermédiaire » particulièrement malin.

  Sans RTK :                                 Avec RTK :

  Claude  --git status-->  shell  -->  git       Claude  --git status-->  RTK  -->  git
    ^                                   |           ^                      |          |
    |      ~2 000 tokens (sortie brute)  |           |   ~200 tokens         | Filtrage |
    +-----------------------------------+           +---- (sortie compacte) -+ intelligent

Quand un outil IA exécute une commande, RTK :

  1. Filtre intelligemment — supprime commentaires, espaces superflus, textes génériques ou répétitifs
  2. Regroupe intelligemment — agrège les éléments similaires par répertoire ou type (fichiers par dossier, erreurs par catégorie)
  3. Tronque intelligemment — conserve le contexte clé, supprime le superflu
  4. Dédoublonne — fusionne les lignes de journal répétées en un simple compteur

Fiche projet :

Attribut Valeur
GitHub rtk-ai/rtk
Langage Rust
Licence Apache 2.0
Stars 68 000+
Dernière version 0.28.2
Dépendances Zéro (binaire statique unique)

Installation de RTK

L'installation est d'une simplicité remarquable. Aucune dépendance runtime requise, un binaire autonome suffit.

macOS / Linux

Recommandé : Homebrew

BASH
brew install rtk

Script d'installation rapide :

BASH
curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh

Installation dans ~/.local/bin. Vérifiez que ce chemin est dans votre PATH : bash echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc source ~/.bashrc

Installation via Cargo :

BASH
cargo install --git https://github.com/rtk-ai/rtk

Windows

Téléchargez rtk-x86-64-pc-windows-msvc.zip depuis les GitHub Releases, extrayez-le et placez rtk.exe dans un répertoire du PATH (par ex. C:\Users\<vous>\.local\bin).

⚠️ Ne double-cliquez pas sur l'exécutable pour le lancer. Il doit être exécuté depuis un terminal (PowerShell, CMD ou Windows Terminal).

Vérifier l'installation

BASH
rtk --version   # Doit afficher "rtk 0.28.2"
rtk gain        # Doit afficher les statistiques d'économie de tokens

Attention aux conflits de nom : il existe un autre projet nommé « rtk » (Rust Type Kit) sur crates.io. Si rtk gain ne fonctionne pas, vous avez probablement installé le mauvais. Utilisez la méthode cargo install --git ci-dessus.

Prise en main : connectez votre outil IA en 3 minutes

Une fois installé, une seule commande suffit pour activer RTK avec votre assistant IA :

BASH
# Claude Code / Copilot (par défaut)
rtk init -g

# Gemini CLI
rtk init -g --gemini

# Codex (OpenAI)
rtk init -g --codex

# Cursor
rtk init -g --agent cursor

# Windsurf
rtk init -g --agent windsurf

# Cline / Roo Code
rtk init --agent cline

# Kilo Code
rtk init --agent kilocode

# Google Antigravity
rtk init --agent antigravity

Le paramètre -g (ou --global) réécrit automatiquement le fichier de configuration de votre outil IA, remplaçant toutes les commandes courantes (comme git status) par rtk git status. Redémarrez l'outil IA pour que les changements prennent effet.

BASH
# Après redémarrage de Claude Code, testez
git status  # Automatiquement réécrit en rtk git status

⚠️ Les hooks ne s'appliquent qu'aux appels d'outils Bash. Les outils intégrés de Claude Code (Read, Grep, Glob) ne passent pas par le hook Bash et ne sont donc pas réécrits automatiquement. Pour bénéficier de la compression dans ces cas-là, utilisez directement les commandes shell (cat/rg/find) ou appelez manuellement rtk read, rtk grep, rtk find.

Commandes supportées par RTK

RTK prend en charge plus de 100 commandes, couvrant les opérations sur les fichiers, Git, les tests, la compilation, la gestion de paquets, les services cloud et bien plus.

Opérations sur les fichiers

BASH
rtk ls .                        # Arborescence intelligente (-80 % de tokens)
rtk read file.rs                # Lecture intelligente de fichier
rtk read file.rs -l aggressive  # Signatures de fonctions uniquement (corps supprimé)
rtk smart file.rs               # Résumé heuristique en 2 lignes
rtk find "*.rs" .               # Résultat find compressé
rtk grep "pattern" .            # Résultats de recherche groupés
rtk diff file1 file2            # Diff compressé (exit 1 si fichiers différents)

Opérations Git

BASH
rtk git status                  # État compact
rtk git log -n 10               # Commits en une ligne
rtk git diff                    # Diff compressé
rtk git add                     # → "ok"
rtk git commit -m "msg"         # → "ok abc1234"
rtk git push                    # → "ok main"
rtk git pull                    # → "ok 3 fichiers +10 -2"

La comparaison pour git push est impressionnante :

BASH
# git push (15 lignes, ~200 tokens)          # rtk git push (1 ligne, ~10 tokens)
Enumerating objects: 5, done.               ok main
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 456 bytes | 456.00 KiB/s, done.
...

De 15 lignes à 1 ligne, soit une réduction de 95 % des tokens.

Exécuteurs de tests

BASH
rtk pytest                      # Tests Python (-90 %)
rtk cargo test                  # Tests Rust (-90 %)
rtk go test                     # Tests Go (NDJSON, -90 %)
rtk jest                        # Sortie Jest compacte
rtk vitest                      # Sortie Vitest compacte
rtk playwright test             # Résultats E2E (échecs uniquement)
rtk err <cmd>                   # Extraction d'erreurs depuis n'importe quelle commande
rtk test <cmd>                  # Wrapper test universel — échecs uniquement (-90 %)

Compilation et Lint

BASH
rtk tsc                         # Erreurs TypeScript groupées par fichier
rtk cargo build                 # Compilation Cargo (-80 %)
rtk cargo clippy                # Clippy Cargo (-80 %)
rtk ruff check                  # Lint Python (JSON, -80 %)
rtk golangci-lint run           # Lint Go (JSON, -85 %)
rtk next build                  # Compilation Next.js compressée
rtk prettier --check .          # Fichiers nécessitant un formatage

Docker et conteneurs

BASH
rtk docker ps                   # Liste de conteneurs compacte
rtk docker images               # Liste d'images compacte
rtk docker logs <container>     # Journaux dédupliqués
rtk kubectl pods                # Liste de Pods compacte
rtk kubectl logs <pod>          # Journaux dédupliqués

AWS CLI

BASH
rtk aws sts get-caller-identity # Identité en une ligne
rtk aws ec2 describe-instances  # Liste d'instances compacte
rtk aws lambda list-functions   # Nom/runtime/mémoire (clés masquées)
rtk aws s3 ls                   # Liste tronquée + restauration via tee
rtk aws dynamodb scan           # Annotations de type déroulées

Analyse de données

BASH
rtk json config.json            # Affichage de structure (valeurs masquées)
rtk deps                        # Résumé des dépendances
rtk env -f AWS                  # Variables d'environnement filtrées
rtk log app.log                 # Journaux dédupliqués
rtk summary <commande longue>   # Résumé heuristique

Analyse des économies de tokens : quel est votre gain avec RTK ?

RTK intègre des statistiques détaillées pour visualiser vos économies :

BASH
rtk gain                        # Statistiques résumé
rtk gain --graph                # Graphique ASCII (30 derniers jours)
rtk gain --history              # Historique des commandes récentes
rtk gain --daily                # Détail quotidien
rtk gain --all --format json    # Export JSON (pour tableaux de bord)

rtk discover                    # Découvrez les opportunités d'économies inexploitées
rtk discover --all --since 7    # Tous les projets, 7 derniers jours

rtk session                     # Taux d'adoption RTK de vos sessions récentes

Paramètres globaux

BASH
-u, --ultra-compact    # Icônes ASCII + format en ligne (tokens supplémentaires économisés)
-v, --verbose          # Augmente la verbosité (-v, -vv, -vvv)

En situation réelle : une journée avec RTK + Claude Code

Imaginons que vous soyez un développeur full-time sur un projet Rust. Voici à quoi ressemble votre journée type :

Matin : revue de code

BASH
# Voir les commits du jour
git log --oneline --since="today"   # RTK compresse en résumé single-line

# Vérifier la liste des PR
gh pr list                          # RTK : tableau PR compact

# Détails d'un PR spécifique
gh pr view 42                       # RTK : détails PR + état des vérifications

Avant-midi : développement de fonctionnalités

BASH
# Explorer la structure du projet
ls -la                              # RTK arborescence (~150 tokens vs ~800)

# Voir le fichier principal
read src/main.rs                    # RTK lecture intelligente (signatures + logique clé)

# Lancer les tests
cargo test                          # RTK échecs uniquement (-90 %)

# Commit et push
git commit -m "feat: add auth"      # RTK → "ok abc1234"
git push                            # RTK → "ok main"

Après-midi : débogage CI

BASH
# Voir les résultats CI
gh run list                         # RTK état compact des workflows

# Diagnostiquer un échec
docker ps                           # RTK liste compacte de conteneurs
docker logs my-container            # RTK journaux dédupliqués

# Corriger et retester
rtk test pytest                     # Wrapper universel, échecs uniquement

Bilan de la journée

Scénario Tokens bruts Tokens RTK Économie
Navigation fichiers/répertoires 50 000 10 000 -80 %
Opérations Git 18 100 3 700 -80 %
Exécution de tests 41 000 4 100 -90 %
Compilation/Lint 18 000 3 600 -80 %
Autres 10 000 2 000 -80 %
Total 137 100 23 400 -83 %

Au tarif de Claude 3.5 Sonnet (10 $ / million de tokens), vous économisez environ 1,14 $ par jour. Sur 20 jours ouvrés par mois, cela fait ~22,8 $. Pas grand-chose ? Mais pour une équipe de 10 personnes ? 228 $ par mois, 2 736 $ par an.

Avec des modèles plus coûteux comme Claude Opus, les économies sont encore plus significatives.

Principes architecturaux

La philosophie de conception de RTK est simple : ne pas faire ce que le LLM peut faire, ne montrer que ce que le LLM n'a pas besoin de voir.

RUST
// Pseudo-code : le flux de traitement central de RTK
fn process_command(cmd: &str, output: &str) -> String {
    match cmd_type(cmd) {
        CmdType::GitStatus => compact_git_status(output),
        CmdType::TestRunner => failures_only(output),
        CmdType::FileList => group_by_dir(output),
        CmdType::Logs => deduplicate(output),
        CmdType::Build => errors_only(output),
        _ => heuristic_summary(output),
    }
}

RTK applique une stratégie de compression différente pour chaque type de commande :

  • git status : conserve uniquement la liste succincte des fichiers modifiés, supprime les détails staged/unstaged
  • cargo test : affiche uniquement les tests échoués, les tests réussis sont regroupés en une ligne de statistiques
  • ls/find : regroupe par répertoire, affiche uniquement les noms de fichiers, sans permissions/taille/date
  • docker logs : supprime les lignes dupliquées, les lignes identiques sont affichées une fois avec un compteur
  • aws describe-* : supprime les métadonnées, ne conserve que les attributs essentiels (et filtre automatiquement les données sensibles)

Le binaire RTK ne pèse que quelques Mo une fois compilé, avec un temps de démarrage < 10 ms, pratiquement imperceptible.

Cas d'utilisation et limites

✅ Idéal pour

  • Utilisateurs intensifs d'assistants IA : 4+ heures par jour avec Claude Code, Cursor, Gemini CLI
  • Projets multi-langages : environnements Rust/Go/Python/TypeScript avec divers runners de tests
  • Travail d'équipe : budget de tokens unifié, réduction des coûts LLM en CI/CD
  • Déploiement cloud : utilisation d'outils IA dans des pipelines CI (facturation au token)

⚠️ Points de vigilance

  • Les hooks ne couvrent que les appels Bash : les outils intégrés de Claude Code ne passent pas par RTK
  • Une compression excessive peut perdre du contexte : pour le débogage complexe, utilisez --verbose pour voir la sortie complète
  • Courbe d'adaptation : des sorties plus courtes signifient que vous devrez peut-être ajuster la façon dont vous posez vos questions à l'IA

Conclusion

RTK est l'un des outils d'assistance à la programmation IA les plus pragmatiques et efficaces que j'aie rencontrés. Pas de battage marketing, pas d'interface tape-à-l'œil — juste un binaire Rust discret qui vous fait économiser des tokens, de l'argent et du temps, chaque jour.

30 secondes d'installation, un bénéfice permanent. C'est ça, l'esprit open source : résoudre les problèmes les plus concrets avec le moins de code possible.

Pour démarrer rapidement :

BASH
brew install rtk      # macOS
rtk init -g           # Active l'intégration Claude Code
# Redémarrez Claude Code et profitez des économies de tokens

Si votre assistant IA exécute des dizaines ou des centaines de commandes par jour, RTK mérite vraiment votre attention. Les 68 000+ stars GitHub parlent d'elles-mêmes — maintenant, c'est à votre tour de l'essayer.


Liens utiles :