
Flugschreiber und Secret-Scanner für KI-Coding-Agenten. Liest, was Claude Code, Codex, Gemini CLI und 9 weitere ausgeführt haben, und markiert riskante Aktionen und geleakte Schlüssel. Läuft lokal, keine Telemetrie, MIT.
Ein Flugschreiber für KI-Agenten und ein Scanner für die Befugnisse, die sie besitzen. Sicherheit für KI-Coding-Agenten für Claude Code und elf weitere Coding-Agenten, ausgeführt auf deiner eigenen Maschine. Kein Konto, keine Telemetrie, keine Abhängigkeiten.
Website und Dokumentation: https://ranwhat.com
Dein Coding-Agent hat deine Shell, deine Schlüssel und dein Repo. ranwhat liest,
was er tatsächlich ausgeführt hat, und zeigt die wenigen irreversiblen Aktionen,
die es wert sind, zu kennen.
$ ranwhat watch --days 90
ranwhat watch · local agent flight recorder
----------------------------------------------------------------------------
Read Claude Code: 4 transcripts, last 90 days
2 critical 2 high
* Credential material accessed 2026-09-30 18:13:00 Bash
cat ~/.ssh/id_rsa
-> The agent read a file whose only purpose is to hold secrets. Whatever
it read is now in a model context you do not control.
* Bulk or recursive deletion 2026-09-28 14:42:00 Bash
…rm -rf '@'
-> Recursive deletion. Recoverable only if something else was backing it
up.
* Package or release published 2026-09-21 11:05:00 Bash
npm publish
-> Something was pushed to a registry other people may install from.
Supply-chain reach, and usually irreversible.
* Destructive git operation 2026-09-15 17:30:00 Bash
git push --force origin main
-> History rewriting or branch deletion. This is the class of action
that destroys the record of what else happened.
----------------------------------------------------------------------------
Read locally. Nothing was transmitted.
Claude Code löscht das Transkript einer Sitzung, die du länger als
cleanupPeriodDays
nicht verwendet hast, standardmäßig 30 Tage. --days 90 findet also mehr, wenn
du den Wert erhöht hast, wenn eine Sitzung, die du innerhalb dieses Zeitraums
fortgesetzt hast, ältere Aktionen enthält, oder bei Sitzungen, die in Claude
Desktop oder Cowork begonnen oder zuletzt fortgesetzt wurden, die Claude Code
v2.1.248 und später
standardmäßig in jedem Alter aufbewahrt.
Führe es einmal aus, ohne etwas zu installieren:
uvx ranwhat check
Oder lege es in deinen Pfad:
pipx install ranwhat
pip install ranwhat
Dann zeigt ranwhat demo einen Befugnisscan an einem mitgelieferten Beispiel.
Python 3.9+. Keine Abhängigkeiten, und nichts wird auf deiner Maschine gebaut.
ranwhat check: alles Wissenswerte in einem einzigen schreibgeschützten DurchlaufFührt watch und clean zusammen aus und ändert nichts.
In einem Terminal halten check, watch und clean eine Statuszeile auf stderr,
während sie lesen, und zählen Transkripte in jedem Durchlauf: indexing secrets
((first run) beim ersten Mal), checking actions, looking for secrets.
Nichts wird dorthin geschrieben, wenn stderr kein Terminal ist oder mit --json.
ranwhat watch: auditiere, was Claude Code und deine anderen Agenten ausgeführt habenLiest, was Claude Code und deine anderen Coding-Agenten bereits auf die Platte geschrieben haben. Kein Wrapper, kein Proxy, nichts in deinem kritischen Pfad. Jeder unten aufgeführte Agent wird standardmäßig gelesen, jeweils von dort, wo er seinen Verlauf aufbewahrt (die Variable in Klammern verschiebt ihn, so wie sie den Agenten selbst verschiebt); einer, der nicht auf deiner Maschine ist, wird übersprungen.
| Quelle | Ort | Format |
|---|---|---|
| Claude Code | ~/.claude/projects/*/*.jsonl und subagents/**/agent-*.jsonl jeder Sitzung, oder dasselbe unter $CLAUDE_CONFIG_DIR/projects, wenn gesetzt | JSONL |
| Codex (CLI, IDE-Erweiterung, Desktop-App) | ~/.codex/sessions/YYYY/MM/DD/rollout-*.jsonl und archived_sessions/ ($CODEX_HOME); history.jsonl, shell_snapshots/ und sein SQLite-Thread-Index werden nach Secrets durchsucht | JSONL; SQLite nur lesend; .jsonl.zst nur lesend, unter Python 3.14 oder mit dem Befehl zstd |
| Gemini CLI | ~/.gemini/tmp/<project>/chats/session-*.jsonl und ältere session-*.json ($GEMINI_CLI_HOME) | JSONL, JSON |
| GitHub Copilot CLI | ~/.copilot/session-state/<session>/events.jsonl ($COPILOT_HOME) | JSONL |
| Qwen Code | ~/.qwen/projects/<project>/chats/*.jsonl und ältere tmp/<hash>/chats/session-*.json ($QWEN_RUNTIME_DIR, $QWEN_HOME) | JSONL, JSON |
| Grok Build | ~/.grok/sessions/<folder>/<session>/updates.jsonl ($GROK_HOME) | JSONL |
| Droid | ~/.factory/sessions/*.jsonl, und -<cwd>/*.jsonl und btw/*.jsonl darunter ($FACTORY_HOME_OVERRIDE) | JSONL |
| Kimi Code | ~/.kimi-code/sessions/<folder>/<session>/agents/*/wire.jsonl ($KIMI_CODE_HOME) | JSONL |
| Kimi CLI | ~/.kimi/sessions/<folder>/<session>/wire.jsonl und context*.jsonl ($KIMI_SHARE_DIR) | JSONL |
| Pi | ~/.pi/agent/sessions/--<cwd>--/*.jsonl ($PI_CODING_AGENT_DIR) | JSONL |
| Muse Code | ~/.local/share/muse/sessions/YYYY/MM/DD/<session>/session.jsonl ($XDG_DATA_HOME/muse) | JSONL |
| OpenClaw | $OPENCLAW_STATE_DIR/agents/*/agent/openclaw-agent.sqlite | SQLite, nur lesend |
Meta Muse läuft in Metas Cloud und bewahrt nichts auf deiner Maschine auf, es gibt also nichts zu lesen; Muse Code, Metas Coding-CLI, wird unterstützt. Grok Bot bewahrt seinen Verlauf in xAIs Cloud auf, selbst für Befehle, die er auf deiner Maschine ausführt; Grok Build, xAIs Coding-CLI, wird unterstützt. Das aktuelle Amp bewahrt seine Threads auf ampcode.com auf. Cursor folgt als Nächstes, sobald sein Format gegen eine Primärquelle geprüft ist.
Neun Regeln: Zugriff auf Anmeldedaten, secret-förmige Zeichenketten in Tool-Aufrufen, Paketveröffentlichung, Änderungen an Cloud-Ressourcen, finanzielle API-Aufrufe, Manipulation von Logs, destruktives git, rekursives Löschen und lokale Dateien, die mit curl hochgeladen werden. Die Tool-Aufrufe jedes Agenten werden nach denselben Regeln beurteilt; jede Aktion sagt, welcher Agent sie ausgeführt hat.
ranwhat watch --days 30
ranwhat watch --source codex # one agent (repeatable)
ranwhat watch --path codex=~/work/.codex # an agent's history elsewhere
ranwhat watch --json
ranwhat sources # every agent, where it looked, what it found
--root und --state-dir funktionieren weiterhin, als die Namen von
--path claude-code= und --path openclaw=.
ranwhat clean: finde Secrets in den Transkripten von Claude Code und anderen AgentenWenn ein Agent cat .env ausführt, wird die Ausgabe in das Transkript
geschrieben: dein Datenbankpasswort, dein JWT-Secret, deine Provider-Tokens,
im Klartext, in einer Datei, die Claude Code standardmäßig 30 Tage aufbewahrt.
ranwhat clean # report, then open a review session
ranwhat clean --apply # mask everything without asking
clean durchsucht den Verlauf jedes Agenten und maskiert einen Wert nur in
einer Datei, die der Agent umschreiben lässt: eine einfache JSONL-, JSON- oder
Textdatei, in die in den letzten zwei Minuten nichts geschrieben wurde.
Datenbanken (Codex' Thread-Index, OpenClaws Agent-Datenbanken) und komprimierte
Dateien werden nur gelesen: der Bericht nennt jede, die ein Secret enthält, und
wie man es stattdessen im Agenten entfernt.
Das Scannen eines echten Verlaufs dauert eine Weile, daher bleibt die Sitzung bei dem offen, was sie gerade gefunden hat, statt dich neu scannen zu lassen, um darauf zu reagieren:
ranwhat> list the findings again
ranwhat> show 3 where it appears, and what to roll it at
ranwhat> mask 3 mask just that one
ranwhat> mask all mask everything listed
ranwhat> keep 3 leave it alone
ranwhat> rotate what to rotate, grouped by provider