Les garde-fous : des gestes refusés par défaut
Avant chaque commande de l’agent, le hook de Treelab lit ce qu’il s’apprête à exécuter. Les gestes destructeurs courants sont refusés par défaut : git reset --hard, git clean -f, un push forcé ou la suppression d’une branche protégée, rm -rf hors du worktree, un commit sur la branche principale depuis le checkout principal, et un déploiement brut quand le projet déclare sa cible de mise en ligne.
Chaque refus nomme l’alternative sûre, que l’agent emprunte ensuite. Les mêmes hooks servent Claude Code et Codex ; Codex demande de les approuver une fois par /hooks, et lab doctor vérifie qu’ils sont actifs.
Sortie réelle de lab · projet de démonstration
git reset --hardLAB: git reset --hard refused: it erases uncommitted work (yours or another session's). Alternative: a WIP commit, or a targeted git restore <file>. If the user explicitly asked for it, run it again with LAB_FORCE=1 before the command.git push --force origin mainLAB: git push --force (or refspec "+…", --mirror) to "main" refused: it rewrites the shared history and erases the commits merged by the other lanes. Alternative: push a batch branch (git push -u origin <branch>) and open a PR. LAB_FORCE does not lift it: ask the user to do it themselves if they really want it.rm -rf ../../project-2LAB: rm -rf "../../project-2" refused: outside the current worktree (or target not resolvable). Alternative: trash <path>, or an explicit path under the worktree. If the user explicitly asked for it, run it again with LAB_FORCE=1 before the command.Ce que les garde-fous ne sont pas
C’est une liste fermée de gestes courants, pas une sandbox. Les garde-fous ne confinent pas l’agent, ne filtrent pas le réseau et ne remplacent pas les autorisations de votre outil : celles de Claude Code ou de Codex restent les vôtres, réglées par vous.
Un hook ne bloque jamais le travail par accident : en cas d’erreur interne, il laisse passer en silence plutôt que de figer votre session. C’est un choix assumé. Les garde-fous évitent les erreurs courantes ; ils ne forment pas une frontière de sécurité exhaustive.
Les données qui quittent votre Mac
Treelab n’envoie aucune télémétrie : aucune mesure d’usage, aucun suivi de vos commandes. Seuls trois moments contactent treelab.sh ; les autres échanges vont à vos propres dépôts distants, par git et par la CLI de GitHub, quand lab merge, lab close ou lab sync livrent ou synchronisent votre travail.
L’installeur, au moment de l’achat puis de l’activation : il envoie votre clé de licence et un identifiant aléatoire de ce Mac, machine_id, qui permet une activation à la fois et son transfert vers une autre machine.
lab update et la mise à jour automatique de lab next : ils envoient votre licence et ce même identifiant, pour télécharger la version. L’archive et son empreinte sont vérifiées avant la bascule, et la version précédente est conservée.
Le reste ne quitte pas votre poste : vos dépôts, vos fiches, vos journaux et vos preuves restent chez vous et dans vos propres dépôts distants. Le détail juridique figure dans la politique de confidentialité.
Ce site
treelab.sh ne charge aucun outil de mesure d’audience ni de publicité, aucune police ni aucun script tiers : sa politique de sécurité du contenu n’autorise que ses propres fichiers. Le seul stockage est votre choix de langue, gardé le temps de la session. Le site ne vous demande jamais votre clé de licence.
Partager un diagnostic sans fuite
lab doctor --report prépare un diagnostic anonymisé de votre installation, sans l’envoyer : vous le relisez, puis vous décidez de le joindre ou non à un message au support.
Signaler une faille
Si vous pensez avoir trouvé une faille dans Treelab, sur ce site ou dans le service d’activation, écrivez à l’adresse indiquée dans notre fichier security.txt. Décrivez le problème, comment le reproduire et son impact ; n’y joignez ni clé de licence, ni secret, ni code confidentiel.
Merci de nous laisser le temps de corriger avant de rendre le problème public.