Zum Hauptinhalt springen
S-EDV news
← Alle Anleitungen
📘 Anleitung Docker 25.10.2026 · 11 min Lesezeit

agentsview mit Docker: Sitzungen von Claude Code und Codex auswerten

agentsview macht Sitzungen von Claude Code, Codex und OpenCode durchsuchbar und rechnet Token in Kosten um. Die Anleitung zeigt den Betrieb mit Docker Compose, den Token-Schutz, eine Sicherung mit echter Wiederherstellung nach Totalverlust und das Update von 0.45.0 auf 0.46.1.

Geprüft am 25.10.2026 · für agentsview 0.46.1

Mit KI erstellt – redaktionelle Prüfung ausstehend

WerbelinksMit * markierte Links sind Werbelinks: Bei einem Kauf erhalten wir eine Provision, der Preis bleibt gleich. Als Amazon-Partner verdiene ich an qualifizierten Verkäufen. Mehr dazu

Titelbild: Headline Agenten-Sitzungen selbst auswerten mit Karten zu Volltextsuche, Token-Statistik und Bearer-Token neben einem Dashboard

Wer mit Claude Code, Codex oder OpenCode arbeitet, sammelt schnell Hunderte Sitzungen als JSONL-Dateien. Was hat der Agent vorige Woche an der Login-Route geändert, welches Projekt verbraucht die meisten Token? agentsview beantwortet solche Fragen über eine lokale Weboberfläche mit Volltextsuche, Sitzungsansicht und Token-Statistik. Das Go-Projekt steht unter MIT-Lizenz, hat auf GitHub rund 6.300 Sterne und lag in dieser Woche mit 137 neuen Sternen in den Go-Trends. Version 0.46.1 erschien am 23. Oktober 2026.

Diese Anleitung betreibt agentsview mit Docker Compose, liest die Sitzungsordner nur lesend ein und zeigt Token-Schutz, Sicherung, Wiederherstellung und Update. Alle Ausgaben stammen aus unserem Testlauf mit 0.45.0 und 0.46.1 und synthetischen Beispielsitzungen.

Voraussetzungen

agentsview gehört auf den Rechner, auf dem Ihre Coding-Agenten laufen: eine Entwickler-Workstation unter Linux oder ein Entwicklungsserver, auf dem Claude Code oder Codex im Terminal arbeiten. Die Sitzungsdateien müssen dort lokal liegen, denn agentsview liest sie direkt aus dem Dateisystem.

  • Linux-Rechner mit x86-64 oder ARM64 (das Image gibt es für beide Architekturen). Für Docker und agentsview reicht die Ausstattung eines üblichen Entwicklungsrechners mit 2 Kernen und 4 GB RAM; die Datenbank wächst mit der Zahl der Sitzungen und belegte im Test mit drei Sitzungen 1,9 MB.
  • Docker Engine mit Docker Compose Plugin, eingerichtet wie in der Anleitung Docker Compose unter Linux.
  • Mindestens einer der Ordner ~/.claude/projects, ~/.codex/sessions, ~/.forge oder ~/.local/share/opencode.
  • Für den Zugriff von einem anderen Rechner einen SSH-Zugang oder ein VPN; der Port bleibt auf 127.0.0.1.
EckdatenWert
Imageghcr.io/kenn-io/agentsview:0.46.1 (Tags ohne v-Präfix)
Port8080, nur an 127.0.0.1 gebunden
Volumes/data (Index, config.toml, Token), Agentenordner unter /agents/… schreibgeschützt
Wichtige VariablenCLAUDE_PROJECTS_DIR, CODEX_SESSIONS_DIR, FORGE_DIR, OPENCODE_DIR, AGENTSVIEW_AUTH_TOKEN_FILE
Im Image gesetztAGENTSVIEW_MODE=serve, AGENTSVIEW_HOST=0.0.0.0, AGENTSVIEW_REQUIRE_AUTH=true

Schritt 1: Compose-Datei anlegen und starten

Die Vorlage entspricht der docker-compose.prod.yaml aus dem Repository, allerdings mit fester Version statt latest. Legen Sie einen Projektordner an und speichern Sie darin die compose.yaml:

mkdir -p ~/agentsview && cd ~/agentsview
nano compose.yaml
services:
  agentsview:
    image: ghcr.io/kenn-io/agentsview:0.46.1
    restart: unless-stopped
    ports:
      - "127.0.0.1:8080:8080"
    environment:
      CLAUDE_PROJECTS_DIR: /agents/claude
      CODEX_SESSIONS_DIR: /agents/codex
      FORGE_DIR: /agents/forge
      OPENCODE_DIR: /agents/opencode
    volumes:
      - agentsview-data:/data
      - ${HOME}/.claude/projects:/agents/claude:ro
      - ${HOME}/.codex/sessions:/agents/codex:ro
      - ${HOME}/.forge:/agents/forge:ro
      - ${HOME}/.local/share/opencode:/agents/opencode:ro

volumes:
  agentsview-data:

Das :ro an jedem Agentenordner ist wichtig: agentsview braucht nur Lesezugriff, und so kann ein Fehler im Parser Ihre Sitzungsdateien nicht verändern. Nutzen Sie einen Agenten nicht, entfernen Sie die Zeile; sonst legt Docker den fehlenden Ordner beim Start leer an. Die Version schreiben Sie bewusst fest. Die Registry führt die Tags ohne v, also 0.46.1 und nicht v0.46.1. Die Version 0.46.0 fehlt in der Registry ganz, zwischen 0.45.0 und 0.46.1 gibt es dort kein Image.

docker compose up -d --pull always
docker compose logs --no-log-prefix | tail -4
Watching 9 directories for changes (2 shallow) (6ms)
Polling 137 roots every 2m0s for changes
agentsview v0.46.1 listening at http://0.0.0.0:8080, browser URL: http://127.0.0.1:8080 (started in 166ms)
Database: /data/sessions.db

Beim ersten Start meldete der Container im Test Sync complete: 3 sessions synced in 180ms: zwei Claude-Code-Sitzungen und eine Codex-Sitzung aus den Beispielordnern.

Verifizieren: docker compose exec agentsview agentsview --version gibt agentsview v0.46.1 (commit 65523169, built 2026-10-22T21:19:55-05:00) aus, docker compose ps zeigt den Dienst als Up mit 127.0.0.1:8080->8080/tcp.

Schritt 2: Token auslesen und Zugriff prüfen

Das Image setzt AGENTSVIEW_REQUIRE_AUTH=true, weil es innerhalb des Containers auf 0.0.0.0 lauscht. Beim ersten Start erzeugt agentsview ein zufälliges 256-Bit-Token und schreibt es als auth_token in /data/config.toml. Das Image enthält eine Shell, Sie lesen das Token also direkt aus:

docker compose exec agentsview sh -c 'grep ^auth_token /data/config.toml'

Speichern Sie den Wert im Passwortmanager und prüfen Sie den Schutz:

TOKEN='hier-das-token-einsetzen'
curl -s -w ' HTTP %{http_code}\n' http://127.0.0.1:8080/api/ping
curl -s -w ' HTTP %{http_code}\n' -H 'Authorization: Bearer falsch' http://127.0.0.1:8080/api/v1/sessions
curl -s -H "Authorization: Bearer $TOKEN" http://127.0.0.1:8080/api/ping
Unauthorized
 HTTP 401
Unauthorized
 HTTP 401
{"ok":true,"healthy":true,"service":"agentsview","version":"v0.46.1","pid":1}

Im Browser öffnen Sie http://127.0.0.1:8080. Die Startseite selbst lädt ohne Token, alle Daten kommen aber über die API, und so erscheint zuerst ein Anmeldedialog. Dort fügen Sie das Token ein; der Browser merkt es sich im Local Storage dieser Adresse.

Anmeldedialog von agentsview mit der Aufforderung, das auth_token einzugeben
Ohne gespeichertes Token zeigt agentsview 0.46.1 nur diesen Anmeldedialog.

Wer das Token nicht in der config.toml haben möchte, legt es als Datei ab und setzt AGENTSVIEW_AUTH_TOKEN_FILE: /run/secrets/agentsview_token plus einen schreibgeschützten Mount dieser Datei. Im Test akzeptierte 0.46.1 das Token aus der Datei (HTTP 200, ohne Token 401) und schrieb dann kein auth_token mehr in die Konfiguration. Fehlt die Datei, startet der Dienst nicht. Wie Sie solche Geheimnisse sauber ablegen, zeigt die Anleitung Docker Compose absichern.

Verifizieren: Ohne und mit falschem Token liefert die API HTTP 401, mit Ihrem Token antwortet /api/ping mit "healthy":true und der Versionsnummer.

Schritt 3: Sitzungen durchsuchen

Nach der Anmeldung zeigt die linke Spalte alle erkannten Sitzungen mit Agent, Projekt und Alter. Das Projekt leitet agentsview aus dem Arbeitsverzeichnis der Sitzung ab, im Test also webshop und api. Mit Strg+K öffnen Sie die Suche. Wir hatten in einer Testsitzung das Markerwort „Fliederbaum“ versteckt; die Volltextsuche fand es sofort.

Suchdialog von agentsview mit dem Suchbegriff Fliederbaum und einem Treffer aus einer Claude-Code-Sitzung
Die Volltextsuche findet das Markerwort in der Claude-Code-Sitzung des Projekts webshop.

Dieselbe Suche steht als API bereit, praktisch für Skripte oder einen Bot:

curl -s -H "Authorization: Bearer $TOKEN" 'http://127.0.0.1:8080/api/v1/search?q=Fliederbaum'
{"query":"Fliederbaum","results":[{"session_id":"7d1e2f30-1111-4a2b-9c3d-000000000001","project":"webshop","agent":"claude","snippet":"Bitte den Fehler im Warenkorb beheben, Stichwort <mark>Fliederbaum</mark>"}],"count":1,"next":0}

Ein Klick auf den Treffer öffnet die Sitzung mit allen Nachrichten, Werkzeugaufrufen wie Read src/cart.ts, Modellname und Token je Antwort. Über den Stern markieren Sie wichtige Sitzungen; diese Markierung nutzen wir später als Prüfzeichen für die Wiederherstellung.

Sitzungsansicht in agentsview mit Nachrichtenverlauf, Modellname, Token-Werten und Kosten
Die Sitzungsansicht zeigt Verlauf, Werkzeugaufrufe, Kontext- und Ausgabe-Token sowie die errechneten Kosten.

Verifizieren: Die Sitzungsliste nennt so viele Sitzungen wie Dateien in den Agentenordnern liegen, und die Suche nach einem Wort aus einer Ihrer Sitzungen liefert "count" größer 0.

Schritt 4: Token-Statistik auswerten

Die Startseite zeigt Sitzungen, Nachrichten, aktive Tage und eine Aktivitäts-Heatmap. Interessanter für die Kostenkontrolle ist die Ansicht Usage. agentsview liest die Token-Angaben aus den Sitzungsdateien und rechnet sie mit einer Preistabelle in Kosten um. Im Test ergaben die drei Beispielsitzungen 10.200 Eingabe-Token, davon 5.500 aus dem Cache, 1.300 Ausgabe-Token und rechnerisch 0,08 US-Dollar, aufgeteilt nach Projekt, Modell und Agent.

Usage-Ansicht von agentsview mit Kennzahlen zu Kosten, Eingabe- und Ausgabe-Token sowie einem Kostenverlauf
Die Usage-Ansicht rechnet Token in Kosten um und zeigt Cache-Trefferquote und Verlauf.

Die Kosten sind eine Schätzung nach Listenpreisen. Bei Abos sagt die Zahl nichts über Ihre Rechnung, zeigt aber, welche Projekte und Modelle den Verbrauch treiben.

Verifizieren: curl -s -H "Authorization: Bearer $TOKEN" http://127.0.0.1:8080/api/v1/analytics/summary liefert unter anderem total_sessions, total_output_tokens und die erkannten Modelle.

Schritt 5: Daten sichern

Laut Dokumentation gehören sessions.db, der Ordner assets/, die config.toml und telemetry-install-id in die Sicherung. Am einfachsten sichern Sie das ganze Volume. Die Datenbank läuft im WAL-Modus, deshalb stoppen Sie den Dienst vorher, damit keine halb geschriebenen Seiten im Archiv landen:

docker compose stop
mkdir -p backup
docker run --rm -v agentsview_agentsview-data:/data:ro -v "$PWD/backup":/backup \
  alpine tar czf /backup/agentsview-data.tgz -C /data .
docker compose start

Der Volume-Name setzt sich aus Ordnername und agentsview-data zusammen, docker volume ls zeigt ihn. Das Archiv war im Test knapp 300 KB groß.

Verifizieren: tar tzf backup/agentsview-data.tgz | grep -E 'sessions.db|config.toml' listet beide Dateien.

Schritt 6: Wiederherstellung nach Totalverlust

Um die Sicherung ehrlich zu prüfen, haben wir das Volume komplett gelöscht und neu gestartet:

docker compose down -v
docker compose up -d

Das Ergebnis ist aufschlussreich: Die drei Sitzungen waren sofort wieder da, weil agentsview sie aus den Quelldateien neu einliest. Verloren waren dagegen der Stern an der Sitzung und das Token. agentsview hatte ein neues erzeugt, das alte Token bekam HTTP 401. Ohne Sicherung fallen Markierungen, das Token und Sitzungen weg, deren Quelldateien inzwischen gelöscht sind. Die Wiederherstellung läuft wieder über einen Hilfscontainer:

docker compose stop
docker run --rm -v agentsview_agentsview-data:/data -v "$PWD/backup":/backup:ro alpine \
  sh -c 'rm -rf /data/* /data/.[!.]* 2>/dev/null; tar xzf /backup/agentsview-data.tgz -C /data'
docker compose start
curl -s -w ' HTTP %{http_code}\n' -H "Authorization: Bearer $TOKEN" http://127.0.0.1:8080/api/v1/starred
curl -s -w ' HTTP %{http_code}\n' -H "Authorization: Bearer $TOKEN_NEU" http://127.0.0.1:8080/api/v1/starred
{"session_ids":["7d1e2f30-1111-4a2b-9c3d-000000000001"]} HTTP 200
Unauthorized
 HTTP 401

Die erste Zeile verwendet das ursprüngliche Token, die zweite das Token, das die leere Neuinstallation erzeugt hatte.

Verifizieren: Nach der Rücksicherung funktioniert das alte Token wieder, /api/v1/starred listet die markierte Sitzung, und die Suche nach Ihrem Markerwort liefert denselben Treffer wie vorher.

Schritt 7: Update einspielen

Für den Update-Weg haben wir mit 0.45.0 begonnen, Sitzungen eingelesen und dann den Tag auf 0.46.1 gesetzt. Sichern Sie vorher wie in Schritt 5, ändern Sie die Versionsnummer in der compose.yaml und starten Sie neu:

sed -i 's/agentsview:0.45.0/agentsview:0.46.1/' compose.yaml
docker compose up -d --pull always
docker compose exec agentsview agentsview --version

Der Container wurde neu erstellt, der Index blieb erhalten, und das Token in /data/config.toml war vor und nach dem Update identisch. Ein wichtiger Unterschied zeigte sich aber beim Zugriffsschutz: Das Image 0.45.0 startete per Einstiegsskript nur mit --host 0.0.0.0 --no-browser und ohne Token-Pflicht. Ein curl ohne und sogar mit falschem Token bekam die komplette Sitzungsliste mit HTTP 200. Ab 0.46.1 lehnt dieselbe Anfrage mit HTTP 401 ab. Betreiben Sie noch ein älteres Image, aktualisieren Sie zügig oder setzen Sie AGENTSVIEW_REQUIRE_AUTH: "true" selbst. Prüfen Sie danach unbedingt den Fall ohne Token.

Automatische Updates per Watchtower sind hier wenig sinnvoll, weil Sie nach jedem Versionswechsel den Token-Schutz prüfen sollten. Ein Benachrichtigungsdienst wie Diun passt besser, siehe Container-Updates mit Diun und WUD.

Verifizieren: --version meldet agentsview v0.46.1, /api/ping mit Token zeigt "version":"v0.46.1", und ohne Token antwortet die API mit 401.

Troubleshooting

MeldungUrsache und Lösung
failed to resolve reference "ghcr.io/kenn-io/agentsview:v0.46.1": not foundDie Tags tragen kein v. Schreiben Sie 0.46.1.
Forbidden: request Host "127.0.0.1:28080" is not in the allowed set [0.0.0.0:8080 127.0.0.1:8080 [::1]:8080 localhost:8080], HTTP 403Schutz gegen DNS-Rebinding: Die API prüft den Host-Header. Im Test trat das mit dem Image 0.45.0 ohne Token-Pflicht auf, als der Port auf dem Host anders als 8080 lautete. Lassen Sie den Port bei 8080 oder tragen Sie die tatsächliche Browser-Adresse als public_url bzw. public_origins in die config.toml ein. Mit 0.46.1 und gültigem Token ließ agentsview im Test auch Anfragen über einen Reverse Proxy mit anderem Hostnamen zu.
loading config: AGENTSVIEW_AUTH_TOKEN_FILE: reading secret file: open /run/secrets/agentsview_token: no such file or directoryDie Token-Datei ist nicht gemountet. agentsview fällt bewusst nicht auf die config.toml zurück und startet nicht.
fatal: invalid serve config: host = "0.0.0.0" exposes the API beyond this machine; set require_auth = true …AGENTSVIEW_REQUIRE_AUTH wurde auf false gesetzt. Mit AGENTSVIEW_HOST=0.0.0.0 verweigert agentsview den Start ohne Token-Pflicht, und das ist gut so.
Container läuft, aber Healthcheck mit /api/ping schlägt fehlAuch /api/ping verlangt das Token und antwortet sonst mit 401. Die Dokumentation empfiehlt eine TCP-Prüfung auf Port 8080 oder 401 als Lebenszeichen zu werten.

Häufige Fragen

Wie greife ich vom Laptop auf einen Entwicklungsserver zu?

Lassen Sie den Port auf 127.0.0.1 und nutzen Sie einen SSH-Tunnel mit gleicher Portnummer: ssh -L 8080:127.0.0.1:8080 server, dann http://127.0.0.1:8080 im lokalen Browser öffnen. Den Port direkt ins Netz zu stellen ist keine gute Idee, auch mit Token, denn die Sitzungen enthalten Quelltext, Pfade und mitunter Geheimnisse aus Werkzeugausgaben.

Schreibt agentsview in meine Sitzungsdateien?

Mit den :ro-Mounts kann es das nicht. Index, Markierungen und Einstellungen liegen ausschließlich im Volume /data.

Sendet agentsview Daten nach außen?

Laut README sendet agentsview anonyme Nutzungsereignisse an PostHog, ohne Sitzungsinhalte, Projekte oder Pfade. Abschalten lässt sich das mit DO_NOT_TRACK=1 oder AGENTSVIEW_TELEMETRY_ENABLED=0 im Abschnitt environment. Die Preistabelle für die Kostenberechnung lädt der Dienst aus dem Netz; im Test meldete die API "source":"fetched".

Welche Agenten werden unterstützt?

Laut Projekt mehr als 50, darunter Claude Code, Codex, OpenCode, Forge, Cursor, Copilot CLI und Gemini. Weitere Ordner binden Sie schreibgeschützt ein und setzen die Variable aus der Konfigurationsdokumentation.

Fazit

agentsview macht aus verstreuten JSONL-Dateien ein durchsuchbares Archiv mit brauchbarer Kostenübersicht, und der Container ist in wenigen Minuten eingerichtet. Zwei Dinge sollten Sie aus dem Test mitnehmen: Sichern Sie /data und nicht nur die Quellordner, denn Token und Markierungen gibt es nur dort. Und verwenden Sie mindestens 0.46.1, denn das Image 0.45.0 lieferte die API im Test ohne Token aus.

Weiterführende Anleitungen und Quellen

agentsviewClaude CodeCodexCoding-AgentenDocker ComposeTokenKI