feat: dashboard KDE Plasma 6 per utilizzo OpenAI Codex

Widget desktop 224x224 che mostra:
- residuo settimanale con barra e percentuale
- countdown esatto al reset (reset_at dall'API)
- piano (Plus/Free), crediti, stato limiti
- backend bash che chiama https://chatgpt.com/backend-api/wham/usage
- legge il token OAuth da ~/.pi/agent/auth.json (provider openai-codex)
This commit is contained in:
Matteo Benedetto
2026-08-20 18:48:51 +02:00
commit 3eee01f0f2
8 changed files with 555 additions and 0 deletions
+50
View File
@@ -0,0 +1,50 @@
# OpenAI Codex Usage — plasmoide KDE Plasma 6
Widget desktop 224×224 per KDE Plasma 6 che mostra il **residuo settimanale**
di [OpenAI Codex](https://openai.com/codex), autenticato via OAuth
(profilo ChatGPT).
Legge il token OAuth da `~/.pi/agent/auth.json` (provider `openai-codex`
configurato nel [pi agent](https://pi.dev)) e interroga l'endpoint
(non documentato) `GET https://chatgpt.com/backend-api/wham/usage`.
## Funzionalità
- **Piano**: Plus / Free / Team visibile nell'header.
- **Residuo settimanale** con barra di avanzamento e percentuale.
- **Countdown esatto** al reset (data/ora + giorni/ore/minuti mancanti),
direttamente dal campo `reset_at` della risposta API.
- **Crediti**: saldo crediti extra (se disponibili).
- **Stato limiti**: indicatore visivo se `limit_reached` o `spend_control.reached`.
- **Aggiornamento automatico** configurabile + pulsante di refresh manuale.
## File
```
metadata.json metadata del pacchetto (Plasma/Applet)
contents/config/main.xml schema della configurazione (kcfg)
contents/scripts/usage.sh backend: token OAuth, chiama wham/usage, stampa JSON
contents/ui/main.qml UI (dashboard 224×224)
contents/ui/configGeneral.qml pagina di configurazione
```
## Installazione
```bash
# da sorgente
kpackagetool6 --type Plasma/Applet --install /home/enne2/Dev/org.enne2.codex.usage
# da archivio
kpackagetool6 --type Plasma/Applet --install dist/org.enne2.codex.usage.tar.gz
```
## Dipendenze
- `jq` e `curl` (per lo script di backend)
- il token OAuth di OpenAI Codex in `~/.pi/agent/auth.json` sotto `openai-codex` (impostato da pi con `/login`)
## Note
- L'endpoint `/backend-api/wham/usage` è **non documentato** e potrebbe cambiare.
- Se il token OAuth scade, il plasmoide mostrerà "token scaduto". Riesegui `/login`
in pi (provider `openai-codex`) per rigenerarlo.