13 KiB
Feature Research
Domain: AI session management / desktop workspace orchestration Researched: 2026-03-23 Confidence: HIGH
Feature Landscape
Table Stakes (Users Expect These)
Features users assume exist. Missing these = product feels incomplete.
| Feature | Why Expected | Complexity | Notes |
|---|---|---|---|
| Session discovery | Sans detection automatique des sessions Claude Code, l'outil n'a aucun sens. Tous les concurrents (agent-deck, dmux, amux, agentdock) font ca. | MEDIUM | Poll des process claude via /proc + lecture des fichiers JSONL dans ~/.claude/projects/. Refresh toutes les 2-3s. |
| State detection (working / waiting / idle) | Le coeur de la valeur. agent-deck utilise un modele 3 etats (running/waiting/idle), amux ajoute "needs input" et "stuck". C'est le minimum pour savoir ou porter son attention. | MEDIUM | Parsing du dernier entry JSONL de la session + detection de process activity. Les hooks Claude Code (notification event avec idle_prompt, permission_prompt) sont la source la plus fiable. |
| Session list with status | Tous les outils du domaine affichent une liste de sessions avec indicateur visuel de statut. Sans ca, on revient au scan manuel des workspaces. | LOW | Liste filtrable avec couleurs : vert (travaille), jaune (attend), gris (idle). |
| Workspace association | vmux cible specifiquement i3. Chaque session doit etre associee a son workspace i3 et worktree git. C'est le lien entre "cette session" et "ou elle vit sur mon ecran". | MEDIUM | Correlation via PID du process claude -> window -> workspace i3 (via i3 IPC). Le worktree git se deduit du cwd du process. |
| Switch to workspace | Pouvoir naviguer vers la session qui a besoin d'attention. agent-deck fait ca avec tmux (Ctrl+b puis numero), vmux le fait avec i3-msg. |
LOW | i3-msg workspace [name] via IPC. Trivial une fois l'association etablie. |
| Desktop notifications | Quand une session passe de "travaille" a "attend input", le dev doit etre prevenu. Tous les outils serieux le font : amux, agent-deck, et meme les hooks Claude Code natifs. dunst est le standard sur i3. | LOW | Notification via notify-send / D-Bus vers dunst. Se declenche sur transition d'etat. |
Differentiators (Competitive Advantage)
Features that set the product apart. Not required, but valuable.
| Feature | Value Proposition | Complexity | Notes |
|---|---|---|---|
| i3-native integration | Aucun concurrent ne cible i3 specifiquement. dmux/agent-deck/agentdock sont tous tmux-centric. vmux est le seul a mapper sessions Claude -> workspaces i3, ce qui correspond exactement au workflow de Pierre (1 workspace = 1 sujet = 1 worktree). | MEDIUM | i3 IPC (socket Unix) pour lister workspaces, detecter les fenetres, switcher. Pas de dependance tmux. |
| Session preview (last output lines) | Voir ce que Claude fait/demande sans switcher de workspace. amux appelle ca "peek mode", agentdock a un "live terminal". vmux peut faire plus leger : juste les dernieres lignes pertinentes. | MEDIUM | Lecture du JSONL de session pour extraire le dernier message assistant. Pas besoin de terminal complet, juste un apercu texte. |
| Attention priority ordering | Au lieu d'une simple liste, trier les sessions par urgence : "attend input" en haut, "permission needed" en second, "working" en bas. Aucun concurrent ne fait ca explicitement. | LOW | Tri de la liste par etat. Trivial en logique, fort en UX. |
| Multi-screen awareness | Pierre utilise 2 ecrans. vmux peut savoir sur quel ecran/output se trouve chaque workspace i3, et optimiser le placement (ex: sessions actives sur ecran 1, sessions en attente sur ecran 2). | LOW | i3 IPC expose les outputs (ecrans) et leurs workspaces. Lecture seule suffit pour l'affichage. |
| Integration piaire | piaire gere deja le workflow (timetracking, features, MRs). vmux pourrait exposer l'etat des sessions a piaire ou consommer les infos de piaire (quel ticket = quelle session). Synergie unique a cet ecosysteme. | HIGH | Necessite une API/IPC entre les deux outils. A evaluer apres v1. |
| Statusline i3bar widget | Au lieu d'une TUI separee, afficher le resume dans la barre i3 elle-meme : "3 sessions: 1 attend, 2 travaillent". Information passive, zero friction. | LOW | Script i3status/i3blocks qui lit l'etat des sessions. Format texte simple. |
Anti-Features (Commonly Requested, Often Problematic)
Features that seem good but create problems.
| Feature | Why Requested | Why Problematic | Alternative |
|---|---|---|---|
| Terminal integre / repondre depuis vmux | Eviter de switcher de workspace pour repondre a Claude. Agentdock et amux le font. | Complexite enorme (terminal emulation, xterm.js, gestion input). 80% de la valeur vient de savoir ou aller, pas de repondre sur place. Pierre l'a deja identifie comme out of scope. | Switch rapide vers le workspace i3 en 1 touche. Le terminal natif est deja la-bas. |
| Lancement de sessions | dmux et amux permettent de creer des sessions. Ca semble pratique. | vmux observe, ne cree pas. Lancer des sessions implique gerer worktrees, branches, contexte initial. C'est le role des skills piaire/Claude Code. Ajouter ca cree un second "lanceur" concurrent. | Rester observateur. Les sessions sont lancees par les skills existants. |
| Auto-reponse / watchdog | amux auto-repond aux prompts de permission, auto-compacte le contexte. Semble utile pour le mode "unattended". | Dangereux. Approuver automatiquement des actions Claude Code sans review humaine. Le watchdog d'amux est pour des workloads batch, pas pour du dev interactif ou la review compte. | Notifier rapidement pour que le dev reponde lui-meme. |
| Dashboard web | agentdock et amux proposent un dashboard web avec WebSocket. Plus joli, accessible depuis le telephone. | Over-engineering pour un outil local single-user. Ajoute Node.js/serveur web/WebSocket a la stack. vmux est un outil desktop i3, pas un SaaS. | TUI ou widget i3bar. Leger, natif, zero overhead. |
| Support multi-agent (Cursor, Codex, Gemini...) | agent-deck et dmux supportent N agents differents. | vmux est specifiquement pour Claude Code. Supporter d'autres agents dilue le focus et complexifie la detection d'etat (chaque agent a son propre format). | Cibler Claude Code uniquement. Si le besoin emerge, generaliser plus tard. |
| Token/cost tracking | Plusieurs outils (amux, Claude Code Usage Monitor) trackent les tokens et couts. | Deja disponible via claude usage et le dashboard Anthropic. Dupliquer cette feature n'apporte rien. La statusline Claude Code expose deja ces metriques. |
Laisser Claude Code gerer ses propres metriques. vmux se concentre sur l'etat et la navigation. |
Feature Dependencies
[Session Discovery]
|
+--requires--> [State Detection]
| |
| +--enables--> [Desktop Notifications]
| |
| +--enables--> [Attention Priority Ordering]
|
+--requires--> [Workspace Association]
| |
| +--enables--> [Switch to Workspace]
| |
| +--enables--> [Multi-screen Awareness]
|
+--enables--> [Session Preview]
[Session List with Status]
+--requires--> [Session Discovery]
+--requires--> [State Detection]
[Statusline i3bar Widget]
+--requires--> [Session Discovery]
+--requires--> [State Detection]
+--independent-of--> [Session List TUI]
[Integration piaire]
+--requires--> [Session Discovery]
+--requires--> [Workspace Association]
+--deferred--> after v1 validation
Dependency Notes
- Session Discovery is the foundation: Tout depend de la capacite a trouver et monitorer les process Claude Code actifs. Sans ca, rien ne fonctionne.
- State Detection depends on Discovery: On ne peut determiner l'etat d'une session qu'apres l'avoir trouvee.
- Workspace Association is parallel to State Detection: Les deux enrichissent la session decouverte, mais sont independants l'un de l'autre.
- Notifications require State Detection: On notifie sur les transitions d'etat, donc il faut d'abord detecter l'etat.
- i3bar Widget et TUI sont independants: On peut avoir l'un sans l'autre. Le widget i3bar est plus leger et potentiellement suffisant en v1.
MVP Definition
Launch With (v1)
Minimum viable product pour valider le concept : "savoir instantanement quelle session a besoin de moi".
- Session discovery (detect Claude Code processes + read JSONL state files)
- State detection (working / waiting for input / idle)
- Workspace i3 association (PID -> window -> workspace)
- Session list with status (TUI ou i3bar widget, au choix)
- Switch to workspace (navigation en 1 action)
- Desktop notifications on state transition (via dunst/notify-send)
Add After Validation (v1.x)
Features to add once core is working.
- Session preview (dernieres lignes de sortie) si le simple switch ne suffit pas
- Attention priority ordering si le nombre de sessions depasse 5+
- Multi-screen awareness si la repartition ecran 1/ecran 2 reste un pain point
- Statusline i3bar widget (si v1 est TUI) ou TUI (si v1 est widget)
Future Consideration (v2+)
Features to defer until product-market fit is established.
- Integration piaire pour lier session <-> ticket/feature
- Keyboard shortcuts globaux (i3 bindings) pour naviguer sans ouvrir vmux
- Historique des sessions (quand elles ont commence, duree, etc.)
Feature Prioritization Matrix
| Feature | User Value | Implementation Cost | Priority |
|---|---|---|---|
| Session discovery | HIGH | MEDIUM | P1 |
| State detection | HIGH | MEDIUM | P1 |
| Workspace i3 association | HIGH | MEDIUM | P1 |
| Session list with status | HIGH | LOW | P1 |
| Switch to workspace | HIGH | LOW | P1 |
| Desktop notifications | HIGH | LOW | P1 |
| Session preview | MEDIUM | MEDIUM | P2 |
| Attention priority ordering | MEDIUM | LOW | P2 |
| Statusline i3bar widget | MEDIUM | LOW | P2 |
| Multi-screen awareness | LOW | LOW | P2 |
| Integration piaire | MEDIUM | HIGH | P3 |
Priority key:
- P1: Must have for launch
- P2: Should have, add when possible
- P3: Nice to have, future consideration
Competitor Feature Analysis
| Feature | agent-deck | dmux | amux | agentdock | vmux (our approach) |
|---|---|---|---|---|---|
| Session detection | tmux-based | tmux-based | tmux-based | tmux-based | Process/JSONL + i3 IPC |
| State detection | 3 states (run/wait/idle) | Basic | 4 states + stuck | Live terminal | 3 states via hooks + JSONL |
| WM integration | None (tmux only) | None (tmux only) | None (web) | None (web) | Native i3 workspace mapping |
| Notifications | tmux statusbar | None | Web + mobile push | Web | dunst/D-Bus (native desktop) |
| Terminal embed | Yes (tmux pane) | Yes (tmux pane) | Yes (web xterm.js) | Yes (web xterm.js) | No (switch to workspace) |
| Session creation | Yes | Yes | Yes | Yes | No (observe only) |
| Multi-agent | Yes (10+ agents) | Yes (11 agents) | Claude Code only | Claude + Cursor | Claude Code only |
| Git worktrees | Optional | Core feature | Optional | Core feature | Detected, not managed |
| Overhead | Go binary | Node.js | Python + web server | Node.js + React | Go binary (lightweight) |
Key differentiator: vmux is the only tool that integrates with a tiling WM instead of wrapping everything in tmux. For a dev who already organizes work in i3 workspaces, this is more natural than a tmux-within-i3 approach.
Sources
- agent-deck - Go + Bubble Tea TUI, tmux-based session manager
- dmux - Node.js agent multiplexer with git worktrees
- amux - Python multiplexer with web dashboard and watchdog
- agentdock - Web dashboard for parallel agents
- Claude Code Hooks Reference - Official hook events including notification types
- Claude Code Notification Hooks - Practical guide to notification setup
- tmuxwatch - Charmbracelet-powered tmux session dashboard
- Claude Code session monitoring via JSONL - Real-time dashboard implementation details
- i3 IPC documentation - i3 workspace and window management
Feature research for: AI session management / desktop workspace orchestration Researched: 2026-03-23