Modell / Datensatz
rtk-ai/rtk avatar
rtk-ai/rtk

rtk: Ein Proxy, der die Bash-Ausgabe für KI-Agenten radikal eindampft

CLI-Proxy, der den LLM-Token-Verbrauch bei gängigen Entwicklungsbefehlen um 60–90 % reduziert. Einzelne Rust-Binärdatei, keine Abhängigkeiten.

80.502 Sterne5.108 ForksRustApache-2.0

Auf einen Blick

Was ist das?
rtk ist ein in Rust geschriebener CLI-Proxy, der die Ausgabe von über 100 Shell-Kommandos filtert und komprimiert, bevor sie in den Kontext eines LLM gelangt. Die Ersparnis von bis zu 90 Prozent bezieht sich nur auf die Bash-Ausgabe, nicht auf die gesamte Rechnung.
Für wen ist es gedacht?
rtk lohnt sich für alle, die mit Claude Code, Gemini CLI oder ähnlichen Hook-basierten Agenten arbeiten und regelmäßig lange Bash-Ausgaben wie git diff oder cargo test in den Kontext schicken. Wer jedoch primär die eingebauten Read- und Grep-Tools von Claude Code nutzt, profitiert kaum, da diese nicht durch den Hook laufen.
Darf ich es kommerziell nutzen?
Ja. Apache-2.0 ist eine freizügige Lizenz: Sie dürfen darauf aufbauende Software nutzen, verändern und verkaufen, solange Sie die Urheberrechts- und Lizenzhinweise beibehalten.
Wird es noch gepflegt?
Ja. Das Repository hat innerhalb des letzten Tages neue Commits erhalten.
In welcher Sprache ist es geschrieben?
Hauptsächlich Rust, laut der Sprachstatistik von GitHub.

Die Antworten beruhen auf den GitHub-Daten des Projekts (zuletzt abgeglichen am 15. September 2026) und auf unserer Analyse. Sie sind keine Rechtsberatung.

TIEFGEHENDE OPEN-SOURCE-ANALYSE

Das Problem: Agenten ertrinken in Konsolenrauschen

KI-gestützte Entwicklungswerkzeuge wie Claude Code oder Gemini CLI führen Shell-Kommandos aus und lesen die komplette Ausgabe. Bei `git status` mit hundert Dateien oder `cargo test` mit Dutzenden Testzeilen landet jede Zeile im LLM-Kontext und kostet Tokens. rtk setzt genau hier an: Es ist ein Proxy, der zwischen dem Agenten und der Shell sitzt. Die README nennt konkrete Zahlen: Bis zu 90 Prozent der Bash-Ausgabe können eingespart werden, bei einer Latenz von unter 10 Millisekunden. Das Tool ist als einzelne Rust-Binary gebaut, hat keine Laufzeitabhängigkeiten und unterstützt laut README über 100 Kommandos. Die Zielgruppe sind Entwickler, die mit LLM-Agenten arbeiten und dabei Token-Kosten senken wollen, ohne die Qualität der Information zu verlieren.

So arbeitet rtk: Vier Strategien pro Kommando

rtk fängt Shell-Kommandos ab, bevor sie ausgeführt werden, und leitet sie an das eigentliche Programm weiter. Die Ausgabe wird dann gefiltert und komprimiert. In der README sind vier Strategien beschrieben: Smart Filtering entfernt Rauschen wie Kommentare und Leerzeilen. Grouping fasst ähnliche Einträge zusammen, etwa Dateien nach Verzeichnis oder Fehler nach Typ. Truncation kürzt lange Zeilen, behält aber den relevanten Kontext. Deduplication ersetzt wiederholte Logzeilen durch eine Zählung. Die konkrete Umsetzung hängt vom Kommando ab. Bei `ls` oder `tree` entsteht eine Baumstruktur mit Dateizählern statt einer Zeile pro Eintrag. `git status` wird zu einem kompakten Stat-Format, gruppiert nach Status. `git log` zeigt nur noch Hash, Autor und Betreff. Bei Tests wie `cargo test` oder `pytest` werden nur noch Fehlschläge ausgegeben, bestandene Tests erscheinen als Zahl. Das ist eine bewusste Abwägung: Wer die vollständige Testausgabe sehen will, bekommt sie nicht mehr, es sei denn, er umgeht rtk.

Installation und erste Schritte: Drei Wege, eine Falle

Die README bietet mehrere Installationswege. Unter macOS geht `brew install rtk`. Für Linux und macOS gibt es ein Installationsskript, das die Binary nach `~/.local/bin` legt: `curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh`. Wer lieber mit Cargo arbeitet, nutzt `cargo install --git https://github.com/rtk-ai/rtk`. Vorgefertigte Binaries gibt es für macOS, Linux und Windows. Nach der Installation prüft man mit `rtk --version` und `rtk gain`, wobei `rtk gain` das Spar-Dashboard zeigt. Die README weist auf eine Namenskollision hin: Auf crates.io existiert ein anderes Projekt namens rtk (Rust Type Kit). Wenn `rtk gain` fehlschlägt, hat man vermutlich das falsche Paket erwischt. Dann hilft die Installation über Git. Die Integration in den Agenten erfolgt mit `rtk init -g` für Claude Code und Copilot, mit Zusatzoptionen für Gemini CLI (`--gemini`), Codex (`--codex`) und weitere Agenten. Plugin-basierte Agenten wie Hermes nutzen ihre Plugin-API, um Kommandos vor der Ausführung umzuschreiben.

Grenzen: Was rtk nicht abdeckt und was die Zahlen bedeuten

Ein wichtiger Punkt steht in der README: Die Ersparnis von bis zu 90 Prozent bezieht sich nur auf die Bash-Ausgabe, nicht auf die gesamte Token-Rechnung. Die Bash-Ausgabe ist nur ein Teil der Eingabe-Tokens, zu denen auch Prompt, System-Prompt und Konversationsverlauf gehören. Und Eingabe-Tokens sind nur ein Teil der Kosten, da auch Ausgabe-Tokens anfallen. Die tatsächliche Kostenreduktion fällt also geringer aus als die 90 Prozent. Zudem schätzt rtk die Token-Zahlen als Bytes geteilt durch 4, da es keinen Tokenizer mitliefert. Die Prozentwerte sind laut README zuverlässig, die absoluten Zahlen aber Näherungswerte. Ein weiterer Punkt: Der Hook greift nur bei Bash-Aufrufen. Die eingebauten Tools von Claude Code wie Read, Grep und Glob laufen nicht durch den Hook und werden nicht umgeschrieben. Für diese Workflows muss man explizit `rtk read`, `rtk grep` oder `rtk find` aufrufen. Wer also hauptsächlich mit den nativen Tools arbeitet, sieht kaum einen Vorteil.

Alternativen: Manuelle Kürzung versus automatischer Proxy

Die Alternative zu rtk ist, die Ausgaben von Hand zu kürzen. Man kann `head` oder `tail` verwenden, um lange Ausgaben zu begrenzen, oder `rg` mit passenden Mustern, um nur relevante Zeilen zu extrahieren. Das hat den Vorteil, dass man die volle Kontrolle behält und keine zusätzliche Abstraktionsschicht einführt. Der Nachteil ist: Jedes Kommando muss einzeln angepasst werden, und der Agent sieht trotzdem mehr Rauschen als nötig. rtk automatisiert diese Filterung und passt sie pro Kommando an. Ein anderer Ansatz wäre, die Ausgabe direkt im Agenten zu verarbeiten, etwa durch einen benutzerdefinierten System-Prompt, der den Agenten anweist, nur relevante Teile zu lesen. Das ist aber unzuverlässig, da der Agent die Ausgabe trotzdem erst erhält. rtk setzt früher an, nämlich bevor die Ausgabe den Agenten erreicht. Das ist der entscheidende Unterschied: rtk reduziert die Datenmenge, bevor sie in den Kontext gelangt, statt den Agenten zu bitten, mit weniger auszukommen.

Wartung und Lizenz: Apache-2.0 und ein aktives Entwicklungsmuster

rtk ist unter Apache-2.0 lizenziert, was kommerzielle Nutzung erlaubt, solange man die Lizenzbestimmungen einhält. Das Repository ist nicht archiviert, der letzte Push war im August 2026, und es gibt regelmäßige Releases, zuletzt v0.46.0 und mehrere Release Candidates. Das deutet auf eine aktive Entwicklung hin, aber die README erwähnt keine explizite Wartungsgarantie. Der Hauptzweig heißt `develop`, was bedeutet, dass die neuesten Funktionen dort landen, bevor sie in stable Releases übernommen werden. Wer auf Stabilität angewiesen ist, sollte die stabilen Releases verwenden und nicht den develop-Zweig. Die Installation über Homebrew oder das Installationsskript erleichtert Updates, aber man muss sich bewusst sein, dass sich die Kommando-Transformationen ändern können. Vor einem Update sollte man prüfen, ob die eigenen Workflows noch wie erwartet funktionieren.

Redaktionelles Fazit

rtk lohnt sich für alle, die mit Claude Code, Gemini CLI oder ähnlichen Hook-basierten Agenten arbeiten und regelmäßig lange Bash-Ausgaben wie git diff oder cargo test in den Kontext schicken. Wer jedoch primär die eingebauten Read- und Grep-Tools von Claude Code nutzt, profitiert kaum, da diese nicht durch den Hook laufen. Wer absolute Token-Zahlen für Abrechnungen braucht, muss sich bewusst sein, dass rtk nur auf Bytes/4 schätzt. Vor der Einführung sollte man die tatsächliche Ersparnis mit `rtk gain` über einige Tage messen und prüfen, ob die komprimierten Ausgaben für die eigenen Debugging-Workflows ausreichen. Wer kein Risiko eingehen will, kann alternativ die Ausgaben manuell mit `head` oder `rg` kürzen, verliert dann aber die automatische Filterung.

Offizielle Quellen

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Community-Notizen

Community-Notizen