Files
pi-session-launcher/README.md
T
enne2 06d12b0ec0 Aggiunta rinomina sessione (F2), eseguibile portabile PyInstaller, repo pubblico su Gitea
- rinomina: append session_info (ultima entry vince, come pi); nome vuoto = cancella
- install.sh preferisce dist/pi-session-launcher se presente
- README: build PyInstaller e URL repo
2026-08-19 12:11:12 +02:00

71 lines
2.4 KiB
Markdown

# Pi Session Launcher
Piccola applicazione GUI (GTK3) per **riprendere le sessioni di Pi Agent**.
Elenco tutte le sessioni salvate in `~/.pi/agent/sessions/` e, selezionandone una:
- apre un terminale (Konsole) **nella cartella di lavoro** (`cwd`) in cui la sessione era stata avviata;
- riprende la sessione con `pi --session <file sessione>`.
## Requisiti
- Python 3 + PyGObject GTK3 (`python3-gi`, `gir1.2-gtk-3.0`)
- Konsole (KDE) — fallback: `xterm`
- `pi` nel PATH
## Installazione
```bash
./install.sh # copia la voce nel menu applicazioni KDE (.desktop)
```
Avvio manuale:
```bash
python3 pi-session-launcher.py
```
## Uso
| Azione | Come |
|---|---|
| Selezionare una sessione | clic sulla riga |
| **Riprendere** la sessione | doppio clic, Invio o pulsante **Riprendi sessione** |
| **Rinominare** la sessione | pulsante **Rinomina** o `F2` (nome vuoto = cancella) |
| Cercare | digitare nel campo di ricerca (filtra per messaggio e cartella) |
| Aprire la cartella della sessione | pulsante **Apri cartella** (Dolphin) |
| Aggiornare l'elenco | pulsante **Aggiorna** o `Ctrl+R` |
Le sessioni **con nome** (`/name` in pi) sono mostrate in **grassetto**.
## Eseguibile portabile
Build dell'eseguibile singolo (PyInstaller, non richiede `python3-dev`):
```bash
python3 -m pip install --user --break-system-packages pyinstaller
python3 -m PyInstaller --onefile --windowed --name pi-session-launcher \
--collect-all gi --collect-all cairo \
--hidden-import gi.repository.Gtk --hidden-import gi.repository.Gdk \
--hidden-import gi.repository.Gio --hidden-import gi.repository.GLib \
--hidden-import gi.repository.Pango \
pi-session-launcher.py
./dist/pi-session-launcher
```
> Nota: Nuitka richiede gli header `python3-dev` (non installabili senza sudo);
> PyInstaller è la via raccomandata dalla documentazione PyGObject per app GTK.
## Repository
Mirror pubblico su Gitea: https://git.enne2.net/enne2/pi-session-launcher
## Come funziona
- Ogni sessione è un file JSONL in `~/.pi/agent/sessions/--<percorso>--/<timestamp>_<uuid>.jsonl`.
- L'header della prima riga contiene il campo `cwd` (cartella di avvio).
- Il primo messaggio utente e il nome (`session_info`) vengono letti dal file.
- Il lancio usa:
`konsole --workdir <cwd> --hold --separate -e bash -c 'pi --session "$1"; exec bash' _ <file>`
— `exec bash` mantiene la shell aperta quando pi termina.