docs: add README, licence WTFPL et documentation
- README.md : vision, installation, commandes, aperçu fonctionnement - LICENSE : WTFPL v2 - docs/architecture.md : composants, flux de données, index des fichiers - docs/i3-integration.md : config i3bar, switch, focus, dépannage - .gitignore : exclure .direnv/ Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
113
README.md
Normal file
113
README.md
Normal file
@@ -0,0 +1,113 @@
|
||||
# vmux
|
||||
|
||||
Cockpit pour le vibe coding. vmux surveille toutes vos sessions Claude Code actives, détecte leur état (travaille / attend input / idle), et vous notifie quand l'une d'elles a besoin de vous.
|
||||
|
||||
**Problème résolu :** savoir instantanément quelle session Claude Code attend votre attention, sans scanner manuellement vos workspaces i3.
|
||||
|
||||
## Aperçu
|
||||
|
||||
```
|
||||
2-vmux[W] 3-api[⚡ 2m] 5-front[?]
|
||||
```
|
||||
|
||||
Chaque bloc i3bar représente une session. Les indicateurs :
|
||||
- `[W]` vert — Claude travaille
|
||||
- `[⚡ 2m]` rouge — attend une permission (depuis 2 min)
|
||||
- `[?]` rouge — attend une réponse
|
||||
- `[I]` gris — idle
|
||||
|
||||
## Prérequis
|
||||
|
||||
- Linux avec i3 WM
|
||||
- Go 1.22+ (build uniquement)
|
||||
- `notify-send` (paquet `libnotify`)
|
||||
- X11
|
||||
|
||||
## Installation
|
||||
|
||||
```sh
|
||||
# Cloner et builder
|
||||
git clone https://gitea.example.com/pieMusic/vmux
|
||||
cd vmux
|
||||
make build
|
||||
|
||||
# Installer le binaire
|
||||
install -m755 vmux ~/.local/bin/vmux
|
||||
|
||||
# Configurer les hooks Claude Code (idempotent)
|
||||
vmux setup
|
||||
```
|
||||
|
||||
`vmux setup` injecte des hooks dans `~/.claude/settings.json` pour les événements `Notification`, `Stop`, `PostToolUse` et `PreToolUse`. Redémarrez vos sessions Claude Code après.
|
||||
|
||||
## Configuration i3
|
||||
|
||||
Ajoutez `vmux i3bar` comme `status_command` dans votre config i3 :
|
||||
|
||||
```
|
||||
bar {
|
||||
status_command vmux i3bar
|
||||
...
|
||||
}
|
||||
```
|
||||
|
||||
Puis rechargez i3 : `$mod+Shift+r`.
|
||||
|
||||
## Commandes
|
||||
|
||||
| Commande | Description |
|
||||
|---|---|
|
||||
| `vmux list` | Lister les sessions actives |
|
||||
| `vmux switch <query>` | Basculer vers le workspace i3 de la session |
|
||||
| `vmux label <id> <texte>` | Assigner un label à une session |
|
||||
| `vmux focus <minutes>` | Couper les notifications pendant N minutes |
|
||||
| `vmux stop` | Arrêter le daemon |
|
||||
| `vmux setup` | Configurer les hooks Claude Code |
|
||||
| `vmux i3bar` | Lancer la sortie i3bar (usage : config i3) |
|
||||
|
||||
### Exemples
|
||||
|
||||
```sh
|
||||
# Voir l'état de toutes les sessions
|
||||
vmux list
|
||||
|
||||
# Switcher vers la session "vmux" ou "api"
|
||||
vmux switch vmux
|
||||
vmux switch api
|
||||
|
||||
# Nommer une session (accepte un UUID partiel)
|
||||
vmux label abc123 "refacto auth"
|
||||
|
||||
# Couper les notifs 30 minutes (focus session de travail)
|
||||
vmux focus 30
|
||||
vmux focus 0 # réactiver immédiatement
|
||||
```
|
||||
|
||||
## Comment ça marche
|
||||
|
||||
Le daemon (`~/.vmux/vmux.sock`) tourne en arrière-plan, lancé automatiquement par la première commande `vmux`. Il :
|
||||
|
||||
1. **Scrute `/proc`** toutes les 5s pour détecter les processus `claude`
|
||||
2. **Lit les fichiers JSONL** de `~/.claude/projects/` pour obtenir l'état et le contexte de chaque session
|
||||
3. **Reçoit les hooks** de Claude Code sur `localhost:3119` pour des mises à jour temps réel
|
||||
4. **Résout les workspaces i3** via IPC + X11 (quel workspace contient quel terminal)
|
||||
5. **Envoie une notification** `notify-send` quand une session passe de "Working" à "Needs Input"
|
||||
|
||||
Voir [docs/architecture.md](docs/architecture.md) pour le détail technique.
|
||||
|
||||
## Développement
|
||||
|
||||
```sh
|
||||
# Environnement Nix
|
||||
nix-shell
|
||||
|
||||
# Build + watch
|
||||
make watch
|
||||
|
||||
# Tests
|
||||
make test
|
||||
```
|
||||
|
||||
## Licence
|
||||
|
||||
WTFPL — Do What The Fuck You Want To Public License.
|
||||
Reference in New Issue
Block a user