tickytacky
Une application de bureau pour Windows et macOS qui fait tourner plusieurs sessions d’agents de code côte à côte, chacune dans son propre worktree Git, et montre ce que fait chaque agent sans lire son terminal.
Dépôt privé
01Ce que c’est
On enregistre un dépôt Git comme projet et on démarre une session dessus. L’application crée un worktree et une branche, lance dans ce worktree un agent en ligne de commande comme Claude Code, et garde la session sur un tableau de bord à côté des autres. On peut attacher un terminal à n’importe quelle session, consulter les fichiers modifiés et fusionner le worktree quand le résultat convient.
02Ce que j’ai construit
Toute l’application : un cœur en Rust qui gère les processus de terminal, les worktrees Git et un registre SQLite des projets et des sessions, et une interface React avec le tableau de bord, un terminal intégré et un visualiseur de code et de différences. Deux petits programmes annexes permettent à un agent de signaler son état et de rappeler l’application. L’interface est en anglais et en français, et une vérification à la compilation échoue si une chaîne française manque.
03La règle dont tout dépend
Le statut d’un agent ne vient jamais de l’analyse de la sortie du terminal. Un programme de hook écrit de petits fichiers d’état, un observateur les lit, et le terminal ne fait que transporter des octets bruts vers un écran qu’une personne lit. Les deux canaux ne partagent qu’un identifiant de session : un changement dans le format de sortie d’un agent ne peut donc pas casser le tableau de bord.
04Comment il tourne
La logique métier en Rust vit dans sa propre crate, sans dépendance à Tauri, et se teste donc sans fenêtre. Une fusion attend un court compte à rebours annulable avant de toucher à Git. L’intégration continue exécute les tests Rust sous Windows et macOS, et chaque push sur les branches principales lance semantic-release, qui déduit la version des messages de commit et joint des builds non signés à une version en brouillon.
Comment c’est construit
- Démarrage d’une session : un worktree est créé et la session enregistrée
- Octets du terminal, de l’agent à l’écran
- Statut de l’agent via le hook et les fichiers d’état
- L’agent qui rappelle l’application
Interface
React dans une webview
Cœur Rust
App Tauri et crate métier
Processus
Lancés sur la machine
Stockage
Fichiers et base locaux
Programmes annexes
Petits programmes lancés par l’agent
Livraison
Build et publication
Sélectionnez un élément du schéma pour voir son rôle. Chaque couleur est un flux à travers le système.