Plugin „Claude-Code-Sessions“ (iris-claude-sessions): Zeigt alle Claude-Code-Sessions des Macs als Canvas mit Kurzbeschreibung #167

Closed
opened 2026-10-21 14:07:28 +00:00 by alf · 6 comments
Owner

Warum

Claude-Code-Sessions per Chat als Canvas auflisten, umbenennen, löschen und per Klick im Terminal mit dem aktuellen Agent-LLM fortsetzen

Zeigt alle Claude-Code-Sessions des Macs als Canvas mit Kurzbeschreibung. Ein Klick öffnet die Session im Terminal mit dem aktuellen Agent-LLM im passenden Verzeichnis; Sessions lassen sich umbenennen, in den Papierkorb legen und neu starten.

Entscheidungen (grill-me)

  • Zweck und Nutzer: Zweck und Abgrenzung: Was soll das Plugin tun, was ausdrücklich nicht? → das passt
  • Name und Kategorie: Name und Kategorie des Plugins → nenn das Plugin bitte iris-claude-sessions.
  • Plattformen: Welche Plattformen unterstützt das Plugin? → nur Mac ist in Ordnung
  • Zweck und Nutzer: Erweiterung des Zwecks: Brücke Iris - Hermes - Claude Code? → Das Plugin sollte auch als generelle Brücke zwischen Iris - Hermes - Claude Code funktionieren. Hermes müsste auch selbstständig Claude Code Sessions starten und bedienen können.
  • Zweck und Nutzer: Zuschnitt: ein Plugin oder zwei? → Lass uns das in zwei Plugins aufteilen. Das Plugin für den Terminal-Start und dem Canvas für die Steuerung (umbenennen, entfernen, neue Session starten). Das Chat-Interface bzw. Interface für Hermes planen wir in einem separaten Plugin.
  • Abhängigkeiten: Abhängigkeiten und App-Anbindung? → passt
  • Einstellungen und Zugangsdaten: Einstellungen, Zugangsdaten, Löschverhalten, Verzeichnis für neue Session? → passt
  • Installations-Skripte: Installations-Skripte (Hooks) nötig? → ist ok
  • Skills und Auslöser: Skills und Auslöser → passt
  • Datenschutz im Store-Material: Datenschutz im Store-Material (Bilder mit echten Session-Titeln/Pfaden)? → Im Store mache ich Originalbilder, nichts erfundenes. Die meisten Sessions drehen sich um die Entwicklung von Iris. Ich mache Iris sowieso für jeden frei zugänglich, Open-Source - Openminded. Meine Bankdaten stehen da ganz bestimmt nicht.
  • Test: Was wird automatisch getestet, was von Hand? → passt

Wie

  • Kategorie development, Plattformen: macos, braucht: nichts
  • Skills: iris-claude-sessions; Skripte: claude_sessions.py
  • Plan und Gerüst: iris-claude-sessions/PLAN.md. Die Beschreibung bleibt die Spezifikation; der Verlauf steht in den Kommentaren.

Nicht Teil

  • Hermes-, opencode- oder Remote-Sessions und der Linux-Server (V1 nur Mac)
  • Chat-Client oder Bedienung einer Session durch Hermes (eigenes Plugin iris-claude-bridge)
  • Endgültiges Löschen von Sessions (nur Papierkorb)
  • LLM-Zusammenfassung der Beschreibung (Titel und erste Nutzernachricht genügen)
  • Einstellungsseite, Zugangsdaten, Installations-Hooks
## Warum Claude-Code-Sessions per Chat als Canvas auflisten, umbenennen, löschen und per Klick im Terminal mit dem aktuellen Agent-LLM fortsetzen Zeigt alle Claude-Code-Sessions des Macs als Canvas mit Kurzbeschreibung. Ein Klick öffnet die Session im Terminal mit dem aktuellen Agent-LLM im passenden Verzeichnis; Sessions lassen sich umbenennen, in den Papierkorb legen und neu starten. ## Entscheidungen (grill-me) - **Zweck und Nutzer:** Zweck und Abgrenzung: Was soll das Plugin tun, was ausdrücklich nicht? → das passt - **Name und Kategorie:** Name und Kategorie des Plugins → nenn das Plugin bitte iris-claude-sessions. - **Plattformen:** Welche Plattformen unterstützt das Plugin? → nur Mac ist in Ordnung - **Zweck und Nutzer:** Erweiterung des Zwecks: Brücke Iris - Hermes - Claude Code? → Das Plugin sollte auch als generelle Brücke zwischen Iris - Hermes - Claude Code funktionieren. Hermes müsste auch selbstständig Claude Code Sessions starten und bedienen können. - **Zweck und Nutzer:** Zuschnitt: ein Plugin oder zwei? → Lass uns das in zwei Plugins aufteilen. Das Plugin für den Terminal-Start und dem Canvas für die Steuerung (umbenennen, entfernen, neue Session starten). Das Chat-Interface bzw. Interface für Hermes planen wir in einem separaten Plugin. - **Abhängigkeiten:** Abhängigkeiten und App-Anbindung? → passt - **Einstellungen und Zugangsdaten:** Einstellungen, Zugangsdaten, Löschverhalten, Verzeichnis für neue Session? → passt - **Installations-Skripte:** Installations-Skripte (Hooks) nötig? → ist ok - **Skills und Auslöser:** Skills und Auslöser → passt - **Datenschutz im Store-Material:** Datenschutz im Store-Material (Bilder mit echten Session-Titeln/Pfaden)? → Im Store mache ich Originalbilder, nichts erfundenes. Die meisten Sessions drehen sich um die Entwicklung von Iris. Ich mache Iris sowieso für jeden frei zugänglich, Open-Source - Openminded. Meine Bankdaten stehen da ganz bestimmt nicht. - **Test:** Was wird automatisch getestet, was von Hand? → passt ## Wie - Kategorie `development`, Plattformen: macos, braucht: nichts - Skills: `iris-claude-sessions`; Skripte: `claude_sessions.py` - Plan und Gerüst: `iris-claude-sessions/PLAN.md`. Die Beschreibung bleibt die Spezifikation; der Verlauf steht in den Kommentaren. ## Nicht Teil - Hermes-, opencode- oder Remote-Sessions und der Linux-Server (V1 nur Mac) - Chat-Client oder Bedienung einer Session durch Hermes (eigenes Plugin iris-claude-bridge) - Endgültiges Löschen von Sessions (nur Papierkorb) - LLM-Zusammenfassung der Beschreibung (Titel und erste Nutzernachricht genügen) - Einstellungsseite, Zugangsdaten, Installations-Hooks
Author
Owner

Stand

Vorhaben: iris-claude-sessions — Claude-Code-Sessions per Chat als Canvas auflisten, umbenennen, löschen und per Klick im Terminal mit dem aktuellen Agent-LLM fortsetzen
Stufe: 6/9 Umsetzung
Fehlt: TODO-Marker entfernen, Tests grün
Belege: keine

Stand nach grill-me und Plan

  • grill-me abgeschlossen, Plan freigegeben ("Plan passt"), Gerüst erzeugt, Repo/PR angelegt.
  • Entscheidungen: Plugin nur Mac in V1; Canvas mit Sessions (Titel, erste Nutzernachricht, Verzeichnis, Datum), umbenennen, Papierkorb statt Löschen, neue Session; keine Hooks, keine Einstellungen, keine Pakete. Hermes-Bedienung von Claude Code wird ein eigenes Plugin (iris-claude-bridge).
  • Klick im Canvas: Buttons kommen als Chatnachricht ("Canvas-Auswahl bestätigt") beim Agenten an; der ruft dann claude_sessions.py start. Ein Hermes-Durchlauf pro Klick.
  • Laufende Sessions: ~/.claude/sessions/<pid>.json (sessionId, cwd, status, name) plus PID-Prüfung.
  • Umbenennen: eigene Namensdatei im Plugin; beim Fortsetzen --name. Wie Claude Code nachträgliche Titel in der Sitzungsdatei ablegt, ist nicht bestätigt.
  • Terminal-Start braucht App-Endpunkt: iris/Iris#132.

Offen: Skript und Tests ausfüllen (TODO-Marker), pruefen, Praxistest nach App-Endpunkt.

## Stand > Vorhaben: iris-claude-sessions — Claude-Code-Sessions per Chat als Canvas auflisten, umbenennen, löschen und per Klick im Terminal mit dem aktuellen Agent-LLM fortsetzen > Stufe: 6/9 Umsetzung > Fehlt: TODO-Marker entfernen, Tests grün > Belege: keine ## Stand nach grill-me und Plan - grill-me abgeschlossen, Plan freigegeben ("Plan passt"), Gerüst erzeugt, Repo/PR angelegt. - Entscheidungen: Plugin nur Mac in V1; Canvas mit Sessions (Titel, erste Nutzernachricht, Verzeichnis, Datum), umbenennen, Papierkorb statt Löschen, neue Session; keine Hooks, keine Einstellungen, keine Pakete. Hermes-Bedienung von Claude Code wird ein eigenes Plugin (iris-claude-bridge). - Klick im Canvas: Buttons kommen als Chatnachricht ("Canvas-Auswahl bestätigt") beim Agenten an; der ruft dann `claude_sessions.py start`. Ein Hermes-Durchlauf pro Klick. - Laufende Sessions: `~/.claude/sessions/<pid>.json` (sessionId, cwd, status, name) plus PID-Prüfung. - Umbenennen: eigene Namensdatei im Plugin; beim Fortsetzen `--name`. Wie Claude Code nachträgliche Titel in der Sitzungsdatei ablegt, ist nicht bestätigt. - Terminal-Start braucht App-Endpunkt: iris/Iris#132. Offen: Skript und Tests ausfüllen (TODO-Marker), `pruefen`, Praxistest nach App-Endpunkt.
Author
Owner

Stand

Vorhaben: iris-claude-sessions — Claude-Code-Sessions per Chat als Canvas auflisten, umbenennen, löschen und per Klick im Terminal mit dem aktuellen Agent-LLM fortsetzen
Stufe: 7/9 Geprüft
Fehlt: Manifest und Build prüfen, Praxistest vom Nutzer bestätigen lassen
Belege: pruefung: ok, umsetzung: ok

Umsetzung (Commit 5394829)

  • claude_sessions.py mit list, canvas, rename, trash, restore, start; Standardbibliothek. Sessions aus ~/.claude/projects/*/*.jsonl (nur Dateikopf gelesen), laufende aus ~/.claude/sessions/<pid>.json plus PID-Prüfung. Meta-Nachrichten (/clear, Fortsetzungs-Zusammenfassung) werden für Titel und Beschreibung übersprungen.
  • Namen in namen.json im Plugin-Datenordner; Papierkorb verschiebt Datei samt Beigaben-Ordner, Restore überschreibt nichts; laufende Sessions werden nie gelöscht oder doppelt geöffnet.
  • start ruft POST /claude-code/terminal der App (Issue iris/Iris#132, noch nicht gebaut) mit session_id, cwd, name; Anbindung vorerst über IRIS_REMOTE_URL/IRIS_REMOTE_TOKEN, ohne Keychain.
  • Gemessen: 16 Tests grün (erfundene Sitzungsdateien, Mock-Server für die App). pruefen: 0 TODO, Tests grün, Manifest ohne Fehler, Paket baut. Schreibgeschützter Lauf gegen die echten Sessions: 101 Sessions in 0,1 s.
  • Grenzen: Endpunkt und Auth-Weg stehen noch aus (#132), deshalb ist der Terminal-Start nur gegen den Mock getestet. Nachträgliches Umbenennen wirkt nur im Plugin-Canvas; /resume zeigt den Namen erst nach start (über --name).
  • Offen: App-Endpunkt (#132), Praxistest von Hand (Canvas, Klick, Terminal), Store-Seite und -Bilder.
## Stand > Vorhaben: iris-claude-sessions — Claude-Code-Sessions per Chat als Canvas auflisten, umbenennen, löschen und per Klick im Terminal mit dem aktuellen Agent-LLM fortsetzen > Stufe: 7/9 Geprüft > Fehlt: Manifest und Build prüfen, Praxistest vom Nutzer bestätigen lassen > Belege: pruefung: ok, umsetzung: ok ## Umsetzung (Commit 5394829) - `claude_sessions.py` mit list, canvas, rename, trash, restore, start; Standardbibliothek. Sessions aus `~/.claude/projects/*/*.jsonl` (nur Dateikopf gelesen), laufende aus `~/.claude/sessions/<pid>.json` plus PID-Prüfung. Meta-Nachrichten (/clear, Fortsetzungs-Zusammenfassung) werden für Titel und Beschreibung übersprungen. - Namen in `namen.json` im Plugin-Datenordner; Papierkorb verschiebt Datei samt Beigaben-Ordner, Restore überschreibt nichts; laufende Sessions werden nie gelöscht oder doppelt geöffnet. - `start` ruft `POST /claude-code/terminal` der App (Issue iris/Iris#132, noch nicht gebaut) mit `session_id`, `cwd`, `name`; Anbindung vorerst über `IRIS_REMOTE_URL`/`IRIS_REMOTE_TOKEN`, ohne Keychain. - Gemessen: 16 Tests grün (erfundene Sitzungsdateien, Mock-Server für die App). `pruefen`: 0 TODO, Tests grün, Manifest ohne Fehler, Paket baut. Schreibgeschützter Lauf gegen die echten Sessions: 101 Sessions in 0,1 s. - Grenzen: Endpunkt und Auth-Weg stehen noch aus (#132), deshalb ist der Terminal-Start nur gegen den Mock getestet. Nachträgliches Umbenennen wirkt nur im Plugin-Canvas; `/resume` zeigt den Namen erst nach `start` (über `--name`). - Offen: App-Endpunkt (#132), Praxistest von Hand (Canvas, Klick, Terminal), Store-Seite und -Bilder.
Author
Owner

PR #168 gemergt (Rebase, main = c9e2e13)

Inhalt: das Plugin iris-claude-sessions in Version 0.1.8: Skript claude_sessions.py (list, canvas, auswahl, rename, trash, restore, start), Iris-Systemprompt, Skill, Tests (33), PLAN.md, store-page.json, Gerüst-Dateien (.dev/, AUFTRAG.md). Beide Letzteren gehören nicht ins Paket (build-irisplugin.sh schließt sie aus).

Geprüft: pruefen grün (0 TODO, 33 Tests, Manifest, Paketbau). Auf dem MacBook von Hand bestätigt: Fortsetzen, Umbenennen, Papierkorb, Neue Session (legt das Projektverzeichnis an). Papierkorb-Ansicht mit Zurückholen (0.1.8) ist gebaut und getestet, von Hand noch nicht bestätigt.

Grenzen: Nur Mac. Der Terminal-Start braucht die App-Route POST /claude-code/terminal (iris/Iris#132, ab App-Stand 415322f). Nicht veröffentlicht: kein Eintrag in iris-plugin-registry, keine .include, keine Store-Seite mit Bildern, kein Praxistest-Beleg im Skill (Stufe 7 von 9).

Offen: Praxistest bestätigen, Store-Seite mit Originalbildern, dann "Veröffentliche" (inkl. .include und Versionsprüfung). Fragen zum Werkzeug selbst stehen in #171. Das Issue bleibt offen.

## PR #168 gemergt (Rebase, `main` = c9e2e13) **Inhalt:** das Plugin `iris-claude-sessions` in Version 0.1.8: Skript `claude_sessions.py` (list, canvas, auswahl, rename, trash, restore, start), Iris-Systemprompt, Skill, Tests (33), `PLAN.md`, `store-page.json`, Gerüst-Dateien (`.dev/`, `AUFTRAG.md`). Beide Letzteren gehören nicht ins Paket (`build-irisplugin.sh` schließt sie aus). **Geprüft:** `pruefen` grün (0 TODO, 33 Tests, Manifest, Paketbau). Auf dem MacBook von Hand bestätigt: Fortsetzen, Umbenennen, Papierkorb, Neue Session (legt das Projektverzeichnis an). Papierkorb-Ansicht mit Zurückholen (0.1.8) ist gebaut und getestet, von Hand noch nicht bestätigt. **Grenzen:** Nur Mac. Der Terminal-Start braucht die App-Route `POST /claude-code/terminal` (iris/Iris#132, ab App-Stand 415322f). Nicht veröffentlicht: kein Eintrag in `iris-plugin-registry`, keine `.include`, keine Store-Seite mit Bildern, kein Praxistest-Beleg im Skill (Stufe 7 von 9). **Offen:** Praxistest bestätigen, Store-Seite mit Originalbildern, dann "Veröffentliche" (inkl. `.include` und Versionsprüfung). Fragen zum Werkzeug selbst stehen in #171. Das Issue bleibt offen.
Author
Owner

Veröffentlicht

iris-claude-sessions 0.1.8 ist in der Registry (Commit ec36d4e2). Freigabe des Nutzers: „ja bitte“.

── iris-claude-sessions: baue …
✓ iris-claude-sessions 0.1.8: neu

Veröffentlicht und gepusht.
## Veröffentlicht `iris-claude-sessions` 0.1.8 ist in der Registry (Commit `ec36d4e2`). Freigabe des Nutzers: „ja bitte“. ``` ── iris-claude-sessions: baue … ✓ iris-claude-sessions 0.1.8: neu Veröffentlicht und gepusht. ```
Author
Owner

Veröffentlicht: iris-claude-sessions 0.1.8

Registry: iris/iris-plugin-registry, Commit ec36d4e2. Geprüft gegen die Registry selbst: Eintrag im index.json (Kategorie development, Plattform macos, iris_min_version 2.0.0), Paket packages/iris-claude-sessions/iris-claude-sessions-0.1.8.irisplugin (11 652 Byte, Prüfsumme im Index), Store-Dateien description.md, hero.html, icon.svg.

Weg: Praxistest bestätigt („Jetzt funktioniert alles perfekt. Nächste Stufe freigeben“), PR #168 (Plugin) und PR #172 (Store-Seite, .include) per Rebase gemergt, dann veroeffentlichen mit Dry-Run.

Grenzen: Nur Mac; der Terminal-Start braucht die App-Route POST /claude-code/terminal (iris/Iris#132, ab App-Stand 415322f). Keine Bilder im Store (kommen später von Hand, custom.md und _attachments/, ohne neue Version möglich). Das Zurückholen über die Papierkorb-Ansicht (0.1.8) hat der Nutzer nicht ausdrücklich bestätigt.

Der Zustand „veröffentlicht“ liegt nur lokal im Vorhaben; repo senden pusht nach dem Merge auf den alten Branch (siehe #171). Das Issue bleibt offen.

## Veröffentlicht: iris-claude-sessions 0.1.8 **Registry:** `iris/iris-plugin-registry`, Commit `ec36d4e2`. Geprüft gegen die Registry selbst: Eintrag im `index.json` (Kategorie `development`, Plattform `macos`, `iris_min_version` 2.0.0), Paket `packages/iris-claude-sessions/iris-claude-sessions-0.1.8.irisplugin` (11 652 Byte, Prüfsumme im Index), Store-Dateien `description.md`, `hero.html`, `icon.svg`. **Weg:** Praxistest bestätigt („Jetzt funktioniert alles perfekt. Nächste Stufe freigeben“), PR #168 (Plugin) und PR #172 (Store-Seite, `.include`) per Rebase gemergt, dann `veroeffentlichen` mit Dry-Run. **Grenzen:** Nur Mac; der Terminal-Start braucht die App-Route `POST /claude-code/terminal` (iris/Iris#132, ab App-Stand 415322f). Keine Bilder im Store (kommen später von Hand, `custom.md` und `_attachments/`, ohne neue Version möglich). Das Zurückholen über die Papierkorb-Ansicht (0.1.8) hat der Nutzer nicht ausdrücklich bestätigt. **Der Zustand „veröffentlicht“** liegt nur lokal im Vorhaben; `repo senden` pusht nach dem Merge auf den alten Branch (siehe #171). Das Issue bleibt offen.
Author
Owner

PR #180 gemergt: chore(iris-claude-sessions): Stand 'veröffentlicht 0.1.8' im Vorhaben nachgetragen (iris-plugins#167)
#180

Commits:

  • chore(iris-claude-sessions): Stand 'veröffentlicht 0.1.8' im Vorhaben nachgetragen (iris-plugins#167)
PR #180 gemergt: chore(iris-claude-sessions): Stand 'veröffentlicht 0.1.8' im Vorhaben nachgetragen (iris-plugins#167) https://forgejo.lewerken.duckdns.org/iris/iris-plugins/pulls/180 Commits: - chore(iris-claude-sessions): Stand 'veröffentlicht 0.1.8' im Vorhaben nachgetragen (iris-plugins#167)
alf closed this issue 2026-10-21 23:14:33 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
iris/iris-plugins#167
No description provided.