English •
Français •
Español •
Bahasa Indonesia •
简体中文 •
Português (Brasil)
Une application de bureau multiplateforme pour gérer vos projets
Claude Code,
avec terminal intégré, workflows git, gestion des plugins et bien plus.
Site web •
Télécharger •
Twitter •
Buy Me a Coffee
---
## 📊 Santé du projet
### Contributeurs
### Activité
[](https://github.com/Sterll/claude-terminal/graphs/commit-activity)
[](https://github.com/Sterll/claude-terminal/commits/main)
[](https://github.com/Sterll/claude-terminal/issues)
[](https://github.com/Sterll/claude-terminal/pulls)
### Internationalisation (i18n)
| Langue | Couverture | Clés |
| --- | --- | --- |
| 🇺🇸 Anglais (base) | ![100%][i18n-en-badge] | 3641 / 3641 |
| 🇫🇷 Français | ![i18n fr][i18n-fr-badge] | 3641 / 3641 |
| 🇪🇸 Espagnol | ![i18n es][i18n-es-badge] | 3641 / 3641 |
| 🇮🇩 Indonésien | ![i18n id][i18n-id-badge] | 3641 / 3641 |
| 🇨🇳 Chinois simplifié | ![i18n zh-CN][i18n-zh-cn-badge] | 3641 / 3641 |
> Les badges de couverture sont mis à jour automatiquement à chaque push sur un fichier de locale.
> Voir [`.github/i18n-coverage.md`](.github/i18n-coverage.md) pour les détails et la
> marche à suivre pour ajouter une nouvelle langue.
[i18n-en-badge]: https://img.shields.io/badge/i18n-100%25-brightgreen
[i18n-fr-badge]: https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/Sterll/ec1241ea62520261790ef5a411b4b212/raw/i18n_fr.json
[i18n-es-badge]: https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/Sterll/ec1241ea62520261790ef5a411b4b212/raw/i18n_es.json
[i18n-id-badge]: https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/Sterll/ec1241ea62520261790ef5a411b4b212/raw/i18n_id.json
[i18n-zh-cn-badge]: https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/Sterll/ec1241ea62520261790ef5a411b4b212/raw/i18n_zh-CN.json
---
## Sommaire
- [Prérequis](#prérequis)
- [Installation](#installation)
- [Fonctionnalités](#fonctionnalités)
- [Utilisation](#utilisation)
- [Build](#build)
- [Tests](#tests)
- [Raccourcis clavier](#raccourcis-clavier)
- [Architecture](#architecture)
- [Contribuer](#contribuer)
- [Sécurité](#sécurité)
---
## Prérequis
- [Node.js](https://nodejs.org/) 18+
- [Claude Code](https://github.com/anthropics/claude-code) installé en global
- **Windows** 10 ou 11
- **macOS** 12+ (Intel ou Apple Silicon)
- **Linux** Ubuntu 22.04+, Fedora 38+ ou équivalent
- L'AppImage nécessite `libfuse2` sur Ubuntu 24.04+ : `sudo apt install libfuse2`
- Le stockage du token GitHub nécessite `libsecret` : `sudo apt install libsecret-1-dev gnome-keyring`
## Installation
Téléchargez le dernier installeur depuis les [Releases](https://github.com/Sterll/claude-terminal/releases).
> [!IMPORTANT]
> **Utilisateurs macOS :** si vous voyez *« Claude Terminal est endommagé et ne peut pas être ouvert »*, lancez ceci dans le Terminal :
> ```bash
> xattr -cr /Applications/Claude\ Terminal.app
> ```
> C'est nécessaire parce que l'application n'est pas encore signée. Sinon, clic droit sur l'app → Ouvrir.
Ou compilez depuis les sources :
```bash
git clone https://github.com/Sterll/claude-terminal.git
cd claude-terminal
npm install
```
---
## Fonctionnalités
### Interface de chat (Claude Agent SDK)
- Interface de chat intégrée propulsée par le Claude Agent SDK, avec réponses en streaming
- Fermer un onglet de chat annule son démarrage en attente et ferme sa session SDK ; un prompt différé ne peut pas relancer un onglet fermé.
- **Rendu markdown enrichi** : diagrammes mermaid, formules KaTeX, code coloré syntaxiquement, arborescences de fichiers, tableaux kanban, blocs de diff, aperçus HTML, et plus
- **Cartes de permission** : Autoriser, Toujours autoriser ou Refuser les demandes d'outils ; quand c'est une de vos propres règles `permissions.ask` qui déclenche la demande, la carte nomme cette règle et masque « Toujours autoriser » pour qu'on ne puisse pas la contourner d'un clic
- **Mode plan** : relire et approuver ou rejeter les plans de l'agent avant exécution
- **Blocs de réflexion** : sections dépliables montrant le raisonnement de Claude
- **Cartes d'outils** : cartes repliables détaillant l'exécution des outils, avec rafraîchissement des outils MCP, envoi de feedback et propositions de skills
- **Visualisation des sous-agents** : suivi imbriqué des tâches déléguées ; le résumé de chaque sous-agent indique sa branche de worktree git et tout changement de modèle en cours de route
- **Widget de todos** : liste de tâches persistante au-dessus de la saisie, qui disparaît d'elle-même une fois terminée
- **Pièces jointes** : coller, glisser-déposer ou choisir des images PNG/JPEG/GIF/WebP (jusqu'à 20 Mo), ainsi que des fichiers texte et des PDF
- **Commandes slash** : autocomplétion des commandes (/compact, /clear, /help, skills personnalisés)
- **Mentions @ en ligne** : le champ de saisie enrichi permet de taper des mentions @ sans quitter la zone de rédaction
- **Rewind de fichiers** : revenir à un état antérieur des fichiers via le checkpointing du SDK, pratique pour annuler des modifications indésirables en cours de session
- **Suivi des coûts** : nom du modèle, nombre de tokens et coût en USD dans la barre de statut
- **Fenêtre de contexte de 1M** : contexte étendu pour les grandes bases de code (mode API uniquement)
- **Changement dynamique de modèle et d'effort** : le sélecteur de modèle est construit en direct depuis le catalogue du CLI Claude, donc les nouveaux modèles (Fable 5.1 par exemple) apparaissent automatiquement ; changez de modèle et de niveau d'effort (low, medium, high, xhigh) en cours de conversation sans repartir de zéro
- **Modèle, effort et mode de permission par conversation** : chaque onglet garde ses propres réglages, un choix dans une conversation ne déborde jamais sur la suivante. Les valeurs enregistrées ne sont que les défauts d'un nouvel onglet, modifiables via l'entrée « Utiliser pour les nouvelles conversations » de chaque menu
- **Modes de permission** : basculer entre défaut, accepter les modifications, plan et contourner les permissions depuis le composeur, en cours de session
- **Palier premium** : les modèles de la famille Fable sont signalés en violet avec un badge « Premium », une étiquette sur l'onglet et un avis quand un nouvel onglet en hérite, parce que cette famille consomme sa propre limite d'usage
- **Tiroir des tâches de fond** : un tiroir repliable, propre à la session courante, montre ce que Claude exécute en arrière-plan pour que vous puissiez continuer à discuter
- **Bibliothèque d'artefacts et onglet Documents** : les fichiers et extraits générés par Claude sont enregistrés dans une bibliothèque réutilisable et apparaissent aussi dans un onglet Documents propre à la conversation, avec un panneau Artefacts dédié listant tout ce qui est publié pour le projet
- **Recherche dans la conversation** : Ctrl+F pour chercher dans la transcription en cours
- **Épingler des conversations** : garder les sessions importantes en haut de la liste
- **Forker une session** : repartir de n'importe quel message pour explorer une autre piste ; Claude Terminal prévient au lieu de jeter un tour en file d'attente
- **Suggestions de suite** : des puces de suggestion contextuelles apparaissent après la réponse de Claude pour guider la conversation
- **Récapitulatifs de session** : résumés générés automatiquement pour les sessions terminées
- Tapez @project pour joindre le README.md et l'arborescence de n'importe quel projet comme contexte
- Tapez **@tab** pour partager votre session de terminal courante, ou **@conversation** pour référencer un autre fil de discussion
- Tapez **@context** pour injecter un pack de contexte, ou **@prompt** pour insérer un modèle de prompt enregistré
- **Amélioration du prompt** : réécriture IA de votre message en un clic via Haiku, pour des instructions plus claires avant l'envoi
- Interruption du streaming en plein tour, noms d'onglets générés automatiquement par le modèle haiku
- Indicateur de compaction affiché pendant la compression du contexte, pour savoir quand ça se produit
### Terminaux
- Plusieurs terminaux Claude Code par projet, avec interface à onglets
- Rendu accéléré par GPU via xterm.js + WebGL (repli DOM)
- Bascule entre mode terminal et mode chat pour chaque onglet
- Réorganisation des onglets par glisser-déposer, renommage, notifications bureau
- Filtrage des terminaux par projet
- Détection adaptative de disponibilité avec indicateur de statut
- Capture de la sortie du terminal, pour que les outils de lecture et les outils MCP renvoient réellement ce qui s'est exécuté
### Navigation
- Choisissez votre façon de parcourir les projets : une barre d'onglets en haut, ou la colonne de projets classique sur le côté
- Demandé une fois dans l'assistant de premier lancement, modifiable à tout moment depuis les Paramètres
### Fichiers
- Un écran Fichiers dédié montre chaque fichier touché dans une session, avec des diffs par session rendus à la manière de GitHub
- Relisez rapidement ce que Claude a changé sans quitter le contexte du chat
- Ou gardez l'arborescence du projet ancrée à côté de la conversation, comme avant l'écran Fichiers
### Comptes
- Associez un compte Claude distinct à chaque projet, avec son propre magasin d'identifiants isolé
- Changez de projet sans changer de compte à la main, et sans que la connexion d'un projet affecte celle d'un autre
- Usage par compte affiché dans les Paramètres, et bascule en cas de limite atteinte qui poursuit la conversation
### Claude Remote Control (claude.ai et mobile)
- Placez une session de chat sur [claude.ai/code](https://claude.ai/code) et l'application mobile Claude, pour la suivre ou la piloter depuis votre téléphone
- Décidé **par conversation**, jamais globalement : une session rejoint quand vous le demandez dans cet onglet, via le bouton du pied de page ou la commande `/remote-control`
- Miroir en lecture seule ou pilotage complet, au choix ; prompts, interruptions et réponses aux permissions repassent tous par le bureau
- `--rc` optionnel dans les onglets terminal pour que les sessions CLI rejoignent aussi
- Un onglet **Connectivité → claude.ai** liste chaque conversation partagée avec un retour vers l'onglet correspondant
- Respecte le coupe-circuit `disableRemoteControl` des réglages managés de Claude Code, pour qu'une politique d'organisation ne puisse pas être levée depuis l'application
### Claude dans Chrome
- Laissez les sessions de chat piloter votre navigateur via l'extension Chrome de Claude
- Ajoute le serveur MCP `claude-in-chrome` et ses 22 outils navigateur à la session
- Opt-in, et il adopte l'hôte de messagerie native existant de Claude Code au lieu de l'écraser
### Voix
- Dictez vos messages au chat au micro (transcription Groq)
- Mode dictée verbatim avec routage vers l'onglet actif, pour que vos mots atterrissent dans la bonne conversation
- Profil de session mains libres pour des sessions entièrement vocales
- Prononce les noms de projets comme vous les diriez, pour que les mentions @ à la voix se résolvent correctement
### Gestion de projets
- Organisez vos projets en dossiers imbriqués avec glisser-déposer
- Personnalisez chaque projet avec des couleurs et des icônes emoji
- Barre d'actions rapides : commandes en un clic configurables par projet (build, test, deploy, scripts personnalisés...)
- Explorateur de fichiers intégré avec vue arborescente, sélection multiple, recherche, indicateurs git et renommage en ligne ; clic droit sur un fichier pour le joindre comme contexte au chat courant
- Système modulaire de types de projet (standard, FiveM, webapp, Python, API, Minecraft, bot Discord)
- Fenêtre de réglages par projet
### Intégration Git
- **Branches** : basculer, créer, supprimer, avec vue arborescente des branches locales et distantes
- **Synchronisation** : pull (rebase), push, merge avec détection et résolution des conflits
- **Panneau des modifications** : voir les fichiers indexés, non indexés et non suivis, indexer/désindexer et committer
- **Historique des commits** : graphe de commits façon IntelliJ en SVG, filtrage par branche et par auteur, défilement infini
- **Cherry-pick et revert** : opérations avancées depuis l'historique
- **Gestion des worktrees** : créer, basculer et supprimer des worktrees git, avec badge de bascule rapide dans la barre d'outils
- **Gestion des stashes** : sauvegarder, appliquer, dépiler et inspecter
- **Recherche dans l'historique** : recherche plein texte dans l'historique des commits
- **Abandon des modifications** : jeter rapidement les modifications non indexées, fichier par fichier
- **Amend** : modifier le message ou le contenu du dernier commit avant de pousser
- **Messages de commit par IA** : génération automatique de messages conventionnels via l'API GitHub Models
- **Pull requests** : créer et consulter des PR directement depuis l'application
### Intégration GitHub
- Authentification OAuth Device Flow (sécurisée, sans copier-coller de token)
- **Support GitHub Enterprise** : connexion à des instances GitHub Enterprise auto-hébergées
- **Recherche de dépôts dans l'assistant de clonage** : chercher un dépôt GitHub par nom sans quitter l'application
- **Pastille de statut CI/CD** : statut en direct du dernier run affiché dans la barre d'en-tête du terminal, avec un bouton pour sauter directement à l'étape en échec
- Consultation des runs CI/CD par dépôt
- Consulter, créer et relire des pull requests depuis l'application ; support multi-forge (GitHub, GitLab)
- Token stocké de façon sécurisée via keytar (Gestionnaire d'identifiants Windows, Trousseau macOS, libsecret sous Linux)
### Tour de contrôle
- Vue temps réel de tous les agents Claude actifs, tous projets confondus
- Voyez ce que fait chaque agent (outils en cours, statut, dernière activité)
- Vue grille : une carte par session ouverte, groupée par projet, avec miniatures de terminal en direct, badge de modèle et boutons de nouvelle session par projet
- Filtres et tri : par projet, par statut, recherche texte, classés par votre dernière interaction
- Vue focus : agrandir une session dans le panneau, avec une pellicule des autres sessions du projet, des titres de session éditables et un saut en un clic vers la vue Claude
- Les sessions terminées restent mises en évidence jusqu'à ce que vous les ayez vues, pour que rien ne passe à la trappe
- Interrompre n'importe quelle session en cours directement depuis le panneau
- Répondre aux invites AskUserQuestion sans basculer vers l'onglet de chat
- Outils MCP pour la supervision des agents et l'interruption à distance
### Tâches parallèles
- Décomposez une fonctionnalité en sous-tâches parallèles et exécutez-les simultanément comme autant d'agents Claude
- Chaque tâche tourne dans son propre worktree git et sa propre branche, ce qui isole le travail
- Le mode auto laisse Claude décider du nombre optimal de tâches parallèles
- Cartes de tâches repliables avec visualiseur de diff et accès terminal par tâche
- Agent de fusion automatique : Claude relit et fusionne les branches terminées dans votre branche principale
- État complet de l'exécution persisté sur disque et restauré au redémarrage
### Rejeu de session
- Parcourez vos anciennes sessions Claude Code et rejouez-les pas à pas
- La vue chronologique montre tous les prompts, appels d'outils et réponses dans l'ordre
- Curseur façon lecteur vidéo pour sauter à n'importe quel moment de la session
- Des cartes Q&R mettent en avant les échanges question-réponse pour une relecture facile
### Tableau de bord
- Trois sous-vues : **Vue d'ensemble**, **Kanban** et **Chronologie**
- Vue d'ensemble : branche courante, commits en avance/retard, commits récents, contributeurs
- Statistiques de code : lignes par langage, nombre de fichiers, nombre de commits
- Nombre de terminaux actifs
- Suivi de l'usage de l'API Claude avec rafraîchissement automatique
- **Chronologie du projet** : tous les enregistrements que l'application conserve déjà, fusionnés en une seule vue chronologique — commits, sessions Claude, temps suivi, exécutions de workflows, exécutions parallèles et artefacts — filtrable par période et par type, pour que « qu'est-il arrivé à ce projet » tienne sur un écran au lieu de six
### Suivi du temps
- Détection automatique des sessions par projet (inactivité de 15 min, détection veille/réveil)
- Stockage léger séparé (`timetracking.json`) avec archives mensuelles
- Vue par période : aujourd'hui, cette semaine, ce mois, plage personnalisée
- Statistiques : moyenne quotidienne, plus longue série, graphiques d'évolution, sessions récentes
- Bascule à minuit et points de contrôle périodiques
### Hooks
- S'intègre aux hooks du CLI Claude Code pour un suivi d'activité en temps réel
- Installation en un clic dans `~/.claude/settings.json` (non destructive, préserve vos hooks)
- Types de hooks : PreToolUse, PostToolUse, Notification, SessionStart, Stop, DirectoryAdded (déclenché par `/add-dir`), et d'autres
- Bus d'événements avec des événements normalisés pour le suivi des sessions, des outils et des sous-agents
- Repli sur la lecture de la sortie du terminal quand les hooks ne sont pas disponibles
### Plugins
- Parcourir et découvrir des plugins depuis les marketplaces configurées
- Installer des plugins directement depuis l'application (via le CLI Claude)
- Ajouter des marketplaces communautaires par URL GitHub
- Filtrage par catégorie et recherche
- Consulter les détails et le README d'un plugin
### Marketplace de skills
- Chercher et parcourir les skills disponibles
- Installation et désinstallation en un clic
- **Vérification des mises à jour** : voir quels skills et plugins installés ont une nouvelle version
- Consulter le README et les détails d'un skill
- Cache local pour une navigation rapide
### Bibliothèque
- Gérez des **packs de contexte** réutilisables (documents, extraits, contenus de fichiers) et des **modèles de prompt**
- Injectez packs de contexte et modèles de prompt directement dans le chat via les mentions @context et @prompt
- Insérez un modèle de prompt dans n'importe quel terminal en un clic depuis la barre d'outils
- Générez des skills et des agents en arrière-plan avec l'Agent SDK
### Skills et agents
- Parcourir et gérer les skills et agents Claude Code
- Consulter les fichiers SKILL.md et les configurations d'agents
- **Éditeur avec coloration syntaxique** : éditez les fichiers de skills et d'agents avec numéros de ligne et coloration complète via highlight.js
- Chargement des skills depuis `~/.claude/skills`, les plugins et les ressources embarquées
### Serveurs MCP
- Configurer, démarrer et arrêter des serveurs MCP
- Configuration des variables d'environnement
- **Registre MCP** : parcourir et chercher dans le registre public des serveurs MCP
### Sessions
- Consulter les sessions Claude Code par projet
- Parcourir l'historique des sessions avec horodatages et métadonnées
- Épingler des sessions en haut et les renommer en ligne depuis la boîte de reprise
- Modale de reprise de session modernisée, avec recherche et sessions épinglées
- Les sessions affichent le vrai titre de la conversation au lieu d'un horodatage, et sont cherchables par identifiant
- **Déplacer une session vers un autre projet** : relocaliser une conversation sans perdre son historique
- Les noms d'onglets personnalisés sont verrouillés et ne sont plus écrasés silencieusement par le nommage automatique
### Mémoire et connaissance globale
- Éditez les fichiers CLAUDE.md globaux, de réglages et propres au projet
- Insertion de modèles pour les motifs courants
- **Connaissance globale** : un magasin de faits, conventions et préférences valables pour tous les projets, une entrée markdown chacun, disponible dans chaque session
- Épinglez, activez/désactivez et cherchez dans les entrées ; les entrées activées sont synchronisées dans un bloc balisé de `~/.claude/CLAUDE.md`, avec un aperçu du bloc avant écriture
- Outils MCP (`knowledge_list`, `knowledge_write`, `knowledge_search`...) pour que Claude puisse les lire et les écrire lui-même
### Kanban
- Un tableau kanban par projet, avec colonnes personnalisées, glisser-déposer entre elles et archivage
- Niveaux de priorité, dates d'échéance, étiquettes et assignations sur les cartes
- Filtrage, recherche et statistiques par colonne
- Jeu complet d'outils MCP pour que Claude crée et déplace des cartes pendant qu'il travaille, plus un nœud de workflow `kanban_create_card`
### Journal d'erreurs
- Journal centralisé de toutes les erreurs que l'application intercepte : échecs IPC, erreurs de services, exceptions et rejets non gérés
- Filtrage par niveau et par domaine, avec détection automatique de motifs pour regrouper les échecs répétés
- **Diagnostic par IA** d'une entrée, et export pour un rapport de bug
- `critical` signifie que l'application a réellement cassé (exception ou rejet non géré), pas simplement que quelque chose a été journalisé
- Outils MCP pour que Claude puisse lire le journal pendant le débogage
### Paramètres
- Couleur d'accentuation (palettes prédéfinies + hex personnalisé)
- Taille de police du terminal (10 à 24 px), appliquée à chaud aux terminaux ouverts
- Personnalisation des couleurs par agent et par outil pour les cartes d'outils du chat
- Langue : anglais, français, espagnol, indonésien et chinois simplifié, avec détection automatique
- Intégration éditeur : VS Code, Cursor, WebStorm, IntelliJ IDEA
- Raccourcis clavier personnalisables
- Préférences de notifications bureau
- Comportement à la fermeture (demander, réduire dans la zone de notification, ou quitter)
- Lancement au démarrage
- Mises à jour automatiques avec téléchargement en arrière-plan et bannière d'installation, suivies d'un panneau **Nouveautés** au démarrage suivant, qui commence par ce qui a bougé puis donne les notes de version complètes
- **Discord Rich Presence** : affichez le projet sur lequel vous travaillez dans votre statut Discord (façon VSCode), avec une option pour masquer le nom du projet ; activable dans les Paramètres
- **La télémétrie est opt-in et désactivée par défaut** : rien n'est collecté, anonyme ou non, tant que vous ne l'activez pas dans les Paramètres
### Automatisation des workflows
- **Automatisations** : un mode simple sans graphe pour les tâches courantes — décrivez ce que Claude doit faire et quand, dans un formulaire clair, sans éditeur de nœuds ni syntaxe cron, avec six préréglages de départ
- Les automatisations peuvent se déclencher sur des événements plutôt que sur un horaire : activité git, modification d'un fichier, fin d'une commande, fin d'une session Claude, réponse de Claude (avec filtre texte optionnel) ou ouverture d'un projet — chaque événement surveille le projet que vous lui désignez, indépendamment de l'endroit où Claude tourne
- Éditeur visuel de workflows à base de nœuds, avec moteur canvas maison (façon Blueprint)
- **31 types de nœuds** : shell, git, HTTP, Claude (prompt/agent/skill), condition, boucle, transformation, switch, sous-workflow, base de données, fichier, projet, temps, variable, lecture de variable, déclencheur, code (exécuter un snippet JavaScript), template (construire des chaînes à partir de variables), terminal, action rapide, notification, notification Discord, log, attente, réessai, gestionnaire d'erreur, webhook, lancement parallèle, récap de session, carte kanban, document de workspace
- Broches de données typées, avec flux de données visuel entre les nœuds
- Panneau assistant IA pour éditer le graphe et créer des nœuds en temps réel
- Annuler/refaire, copier/coller, magnétisme à la grille, minimap, commentaires
- Historique d'exécution avec progression des boucles en direct et inspection de la sortie de chaque étape
- Hub communautaire de workflows pour partager et importer
- **12 types de déclencheurs** : manuel, cron, hook, webhook, sur-workflow, message de chat, modification de fichier, événement git, ouverture de projet, code de sortie d'un terminal, début de session Claude, fin de session Claude
- Outils MCP pour piloter entièrement les workflows depuis Claude Code
### Connectivité (distant et cloud)
- Un onglet **Connectivité** unifié réunissant l'accès distant local et la synchronisation cloud
- Serveur relais Docker auto-hébergé pour l'accès distant aux projets
- Envoi de projets et synchronisation automatique avec surveillance de fichiers et résolution de conflits
- **Bascules de synchronisation par entité** : choisissez exactement ce qui se synchronise (projets, paramètres, skills, agents, configs MCP, raccourcis, mémoire, hooks, archives)
- **Reprise de session depuis le cloud** : reprenez n'importe quelle session depuis une autre machine
- **Notifications inter-machines** : soyez prévenu sur votre bureau quand une session cloud se termine
- Sessions Claude headless exécutées dans le cloud
- Modale de diff pour comparer les fichiers locaux et cloud
- Profils utilisateurs et gestion des sessions
- Script d'installation automatisé avec Docker, reverse proxy et SSL
### Projets distants SSH
- Ouvrez un projet qui vit sur une autre machine via SSH, à la manière d'IntelliJ Gateway : l'application reste l'interface, tandis que terminaux, chat Claude, git et fichiers s'exécutent sur l'hôte
- Utilise le client OpenSSH du système : `~/.ssh/config`, les clés, `ssh-agent`, ProxyJump et le transfert d'agent fonctionnent exactement comme dans un terminal. L'application ne stocke ni mot de passe ni clé : un mot de passe se saisit dans l'invite d'OpenSSH, jamais enregistré
- **Ouvrir un projet distant** : choisissez un profil d'hôte enregistré, parcourez ses dossiers, puis ouvrez-en un, créez-en un, lancez `git init` ou clonez-y un dépôt
- Un badge d'hôte sur chaque projet distant indique l'état de la connexion. Une connexion perdue se rétablit seule, et les onglets de terminal et de chat reprennent là où ils en étaient (dans tmux si vous l'activez)
- Claude Code s'exécute sur l'hôte (il doit y être installé, et l'application vous prévient sinon), et l'historique des sessions est lu sur l'hôte
- Le panneau Git, le tableau de bord, l'explorateur de fichiers, l'écran Fichiers, les onglets de fichiers et les diffs fonctionnent sur l'hôte. VS Code, Cursor et Windsurf ouvrent les fichiers distants via leur extension Remote-SSH
- Rien n'est installé sur l'hôte : ni agent ni démon, juste une session `sh` par connexion
- Les fonctionnalités qui n'ont de sens qu'en local (tableaux de bord par type de projet, tâches parallèles, nœuds de workflow qui s'exécutent sur cette machine, liaison de compte, envoi vers le cloud, Ouvrir dans l'explorateur) apparaissent désactivées, avec la raison en info-bulle
### Panneau base de données
- Support multi-drivers : SQLite, MySQL, MariaDB, PostgreSQL, MongoDB
- **Explorateur Redis** : explorateur de clés en arborescence, avec inspection des valeurs selon leur type
- Navigateur de données en deux volets avec édition en ligne
- Éditeur SQL avec coloration syntaxique, modèles et exécution multi-instructions
- Insertion et suppression de lignes, filtre de recherche
- Sélecteur de base personnalisé pour changer rapidement de connexion
- Pool de connexions avec éviction des connexions inactives
### Workspace
- Des hubs de connaissance **inter-projets** : regroupez des projets liés autour d'une base de connaissance partagée, pour que le contexte qui traverse plusieurs dépôts ait un endroit où vivre
- Documents markdown avec étiquettes et recherche plein texte sur tout le workspace
- **Liens de concepts** : enregistrez des relations entre entités (`Web App depends-on API Service`) et visualisez-les sous forme de graphe
- **Chat conseiller** : posez des questions sur votre workspace et obtenez des réponses fondées sur le contenu de votre base de connaissance
- **Mention @workspace** : tapez @workspace dans le chat pour injecter votre base de connaissance comme contexte
- Outils MCP pour lire et écrire le contenu du workspace depuis Claude Code
### Serveur MCP (claude-terminal)
Un serveur MCP unifié, configuré automatiquement par l'application, qui expose Claude Terminal lui-même à Claude Code. **23 modules d'outils**, chargés dynamiquement — déposer un nouveau `.js` dans `resources/mcp-servers/tools/` suffit à l'enregistrer.
| Module | Ce qu'il donne à Claude |
| --- | --- |
| `projects` | Lister les projets, infos projet, détection des TODO/FIXME |
| `timetracking` | Aujourd'hui, cette semaine, par projet et statistiques de synthèse |
| `sessions` | Lister, rejouer, recherche par mot-clé inter-projets, récap de session |
| `workflow` | Créer, éditer, exécuter, annuler, diagnostiquer, logs d'exécution, variables |
| `automation` | Lister, consulter, créer, modifier, activer/désactiver, supprimer des automatisations |
| `parallel` | Lancer, lister, inspecter, annuler, fusionner et nettoyer les exécutions parallèles |
| `kanban` | Colonnes et cartes : ajouter, déplacer, modifier, filtrer, statistiques |
| `knowledge` | Faits inter-projets : lister, lire, chercher, écrire, supprimer |
| `workspace` | Lister, infos, lire/écrire des documents, chercher, liens de concepts |
| `artifacts` | Lister, lire, chercher, versions, statistiques, supprimer |
| `database` | Requêter, lister/décrire les tables, schéma complet, statistiques, export |
| `terminal` | Créer, lister, envoyer une commande, lire la sortie, fermer |
| `tabs` | Orchestration des onglets avec contrôle des permissions |
| `sidebar` | `ui_navigate` et `ui_state` pour piloter et lire le panneau affiché |
| `control-tower` | Lister les agents actifs, en interrompre un à distance |
| `errorlog` | Entrées, statistiques, motifs, export, purge |
| `usage` | Lire et rafraîchir l'usage Claude |
| `settings` | Lire et écrire les réglages de l'application |
| `marketplace` / `plugins` | Chercher, installer et désinstaller skills et plugins |
| `webapp` / `fivem` / `discord` | Outils propres à chaque type de projet |
Un serveur `database-mcp-server.js` spécialisé est également fourni pour un usage base de données uniquement.
### Aperçu WebApp
- Aperçu en direct avec webview Chromium (remplace l'iframe)
- Retour visuel avec annotations multi-épingles par page
- Vérificateur de points de rupture responsive
- Scanner de détection automatique des problèmes visuels
- Outil de mesure d'espacement à la règle
- Panneau d'audit d'accessibilité avec axe-core
### Contrôle à distance (PWA auto-hébergée)
- PWA mobile pour piloter depuis un téléphone ou un navigateur, servie par l'application elle-même
- Relais cloud pour l'accès hors de votre réseau local (via serveur auto-hébergé)
- Supervision de session en temps réel, interaction avec le chat et changement de projet
- Authentification par code PIN à 6 chiffres avec QR code
- Entièrement traduite, livrée avec sa propre content-security-policy, et sa transcription survit à plus d'un tour
> [!NOTE]
> C'est le contrôle à distance **auto-hébergé**, à distinguer de [Claude Remote Control](#claude-remote-control-claudeai-et-mobile), qui place une session sur claude.ai et l'application mobile officielle de Claude. Vous pouvez utiliser l'un, l'autre ou les deux.
### Personnalisation de la barre latérale
- Glissez-déposez les onglets de la barre latérale pour les ordonner selon votre façon de travailler
- Épinglez les onglets fréquents ; les moins utilisés se replient dans un menu « Plus »
- Personnalisation via une modale ou directement au glisser-déposer
### Palette de commandes
- Palette de commandes unifiée (Ctrl+P) avec recherche floue sur les projets, commandes et actions rapides
- Lanceur intelligent avec squelette de chargement animé et mise en évidence des correspondances
- Naviguez vers n'importe quel panneau ou déclenchez n'importe quelle action sans toucher la souris
### Mise à jour automatique de CLAUDE.md
- À la fin d'une session, Claude analyse la conversation et propose des ajouts pertinents au CLAUDE.md de votre projet
- Relisez et acceptez les suggestions dans une modale façon diff avant qu'elles ne soient appliquées
### Divers
- **Restauration de session** : sauvegarde et restauration complète de l'espace de travail entre les redémarrages
- **Visionneuses de fichiers** : visionneuse .md intégrée, visionneuse PDF et visionneuse de modèles 3D (.glb, .gltf, .obj) dans le panneau terminal
- **Aperçus du tableau de bord** : badges de santé du projet et carte de chaleur des commits
- **Surveillance de l'explorateur** : mise à jour automatique de l'arborescence aux changements du système de fichiers
- **Menus contextuels d'onglets** : clic droit sur un onglet pour les actions rapides
- **Persistance de l'état de la fenêtre** : position, taille et état maximisé mémorisés
- Assistant de premier lancement avec installation optionnelle des hooks
- Intégration à la zone de notification, avec icône aux couleurs de l'accent
- Notifications toast personnalisées, empilables, à transparence cliquable et avec boutons d'action
- Raccourcis globaux (`Ctrl+Shift+P` / `Cmd+Shift+P` sélecteur rapide, `Ctrl+Shift+T` / `Cmd+Shift+T` nouveau terminal)
- Verrou d'instance unique
- Installeur NSIS personnalisé avec images de marque (Windows), DMG (macOS), AppImage (Linux), Snapcraft, Flatpak
- Gestion de serveur FiveM (lancement, console intégrée, scan de ressources, assistant de création de ressource)
- Type de projet Minecraft avec générateur de plugin Java et scripts de lancement adaptés à la plateforme
- Gestion d'applications web avec détection automatique du framework et modèles d'échafaudage
- Détection de projets Python (version, venv, dépendances, point d'entrée)
- Type de projet API avec testeur de routes intégré, variables et console
- **Type de projet bot Discord** : constructeur visuel d'embeds et de composants avec aperçu en direct
## Utilisation
```bash
# Installer les dépendances une fois
npm install
# Compiler le renderer et lancer l'application
npm start
# Lancer avec les DevTools ouverts
npm run start:dev
# Compiler le renderer en mode watch (développement)
npm run watch
```
> [!TIP]
> Si vous modifiez des fichiers sous `src/renderer/`, `src/project-types/` ou `renderer.js`, lancez `npm run build:renderer` avant de packager ou d'ouvrir une PR.
## Build
```bash
# Compiler pour la plateforme courante
npm run build
# Compiler pour une plateforme précise
npm run build:win # Windows (installeur NSIS)
npm run build:mac # macOS (DMG)
npm run build:linux # Linux (AppImage)
```
L'installeur est généré dans le répertoire `build/`.
## Tests
```bash
# Lancer la suite de tests (149 suites Jest, jsdom)
npm test
# Tests en mode watch pendant le développement
npm run test:watch
# ESLint sur main, renderer, shared, serveurs MCP et scripts
npm run lint
npm run lint:fix
# Échoue si CLAUDE.md a dérivé par rapport à l'arborescence qu'il décrit
npm run check:docs
# Test de fumée Playwright sur la vraie application Electron
npm run test:e2e
```
La CI lance trois jobs à chaque push et chaque PR : `lint` (rapide, échoue en premier),
`test` (Node 18 et 20 sur Windows, Linux et macOS) et `e2e` (Ubuntu sous `xvfb-run`).
Le job E2E est **bloquant** : il ouvre la vraie application, parcourt chaque onglet de
la barre latérale, et échoue à la moindre erreur console du renderer ou plantage du
processus principal.
`npm run test:e2e` est tenu hors de `npm test` parce qu'il lui faut un affichage et un
bundle renderer compilé. Le lancer en local demande aussi que les modules natifs soient
compilés pour l'ABI d'Electron (`npm run postinstall`).
---
## Raccourcis clavier
| Raccourci | Action |
| --- | --- |
| `Ctrl+Shift+P` | Sélecteur rapide de projet (global) |
| `Ctrl+Shift+T` | Nouveau terminal dans le projet courant (global) |
| `Ctrl+Shift+W` | Nouveau worktree (global) |
| `Ctrl+Shift+E` | Panneau des sessions |
| `Ctrl+T` | Créer un terminal |
| `Ctrl+W` | Fermer le terminal |
| `Ctrl+N` | Nouveau projet |
| `Ctrl+E` | Afficher/masquer l'explorateur de fichiers |
| `Ctrl+P` | Sélecteur rapide |
| `Ctrl+,` | Paramètres |
| `Ctrl+←` / `Ctrl+→` | Changer de terminal (gauche/droite) |
| `Ctrl+↑` / `Ctrl+↓` | Changer de projet (haut/bas) |
| `Ctrl+F` | Chercher dans la transcription de la conversation |
| `Échap` | Fermer les dialogues |
Les raccourcis sont personnalisables dans les Paramètres.
---
## Architecture
Claude Terminal est du JavaScript CommonJS simple, typé par JSDoc. Pas de TypeScript,
pas de framework front : le renderer est bundlé par esbuild en ESM avec code splitting.
```
claude-terminal/
├── main.js # Point d'entrée Electron, cycle de vie, verrou d'instance
├── renderer.js # Entrée du renderer (bundlé vers dist/renderer.bundle.js)
├── index.html # UI de la fenêtre principale
├── notification.html # Fenêtre de notification toast personnalisée
├── quick-picker.html # Fenêtre de la palette de commandes
├── setup-wizard.html # Assistant de premier lancement
├── styles/ # 30 fichiers CSS modulaires, @importés par index.css
├── src/
│ ├── main/ # ── Processus principal (Node.js) ──
│ │ ├── preload.js # Pont de contexte (window.electron_api)
│ │ ├── preload-quickpicker.js # Preload de la fenêtre de palette
│ │ ├── ipc/ # 34 fichiers IPC, 322 handlers
│ │ │ ├── index.js # Orchestrateur, enregistre chaque handler
│ │ │ ├── git.ipc.js # 69 handlers, le plus gros
│ │ │ ├── chat.ipc.js # Sessions streaming de l'Agent SDK
│ │ │ ├── github.ipc.js # OAuth device flow, PR, runs CI
│ │ │ └── ... # terminal, dialog, workflow, remote, database,
│ │ │ # accounts, knowledge, artifacts, workspace,
│ │ │ # parallel, cloud-*, errorLog, voice, chrome...
│ │ ├── services/ # 35 services
│ │ │ ├── ChatService.js # Pont vers le Claude Agent SDK
│ │ │ ├── TerminalService.js # node-pty, groupage adaptatif de la sortie
│ │ │ ├── AccountManager.js # Comptes Claude multiples
│ │ │ ├── RemoteControlService.js # Pont claude.ai / mobile
│ │ │ ├── ChromeBridgeService.js # Claude dans Chrome
│ │ │ ├── WorkflowService.js # + Runner, Scheduler, Storage
│ │ │ ├── ParallelTaskService.js # Un worktree par sous-tâche
│ │ │ ├── KnowledgeService.js # Base de connaissance globale
│ │ │ ├── ErrorLogService.js # Collecte centralisée des erreurs
│ │ │ └── ...
│ │ ├── windows/ # MainWindow, QuickPicker, SetupWizard, Tray, Notification
│ │ ├── utils/ # paths, git, shell, fileLock, claudeBridge, sdkCli...
│ │ └── workflow-nodes/ # 31 types de nœuds, un *.node.js chacun, auto-enregistrés
│ ├── renderer/ # ── Processus renderer (navigateur) ──
│ │ ├── index.js # Chargeur de modules et séquence d'init
│ │ ├── core/ # Conteneur DI, BaseService/Component/Panel, ApiProvider
│ │ ├── state/ # 17 modules d'état observables (classe de base State.js)
│ │ ├── services/ # 28 services
│ │ │ ├── MarkdownRenderer.js # + sous-système markdown/ (configure, streaming,
│ │ │ │ # postProcess, interactivity, blocks)
│ │ │ ├── WorkflowGraphEngine.js # Éditeur de nœuds canvas maison (sans LiteGraph)
│ │ │ ├── DiffRenderer.js # Diffs unifiés façon GitHub
│ │ │ ├── ProjectTimeline.js # Fusionne six jeux d'enregistrements en une chronologie
│ │ │ ├── VoiceCaptureService.js
│ │ │ └── mention-sources/ # Sources @mention et palette, enfichables
│ │ ├── ui/
│ │ │ ├── components/ # 18 composants (ChatView, TerminalManager,
│ │ │ │ # FileExplorer, ProjectList, ProjectBar, Modal...)
│ │ │ ├── panels/ # 25 panneaux (Settings, GitChanges, ControlTower,
│ │ │ │ # ParallelTask, Workspace, Database, Kanban,
│ │ │ │ # ErrorLog, Files, Artifacts, Connectivity...)
│ │ │ └── themes/ # terminal-themes.js
│ │ ├── features/ # KeyboardShortcuts, QuickPicker, DragDrop
│ │ ├── events/ # ClaudeEventBus + fournisseurs Hooks / Scraping
│ │ ├── workflow-fields/ # 13 champs UI personnalisés pour les nœuds
│ │ ├── workflow-triggers/ # 12 types de déclencheurs (définition + configurateur)
│ │ ├── viewers/ # Visionneuse PDF, visionneuse 3D (three.js) — ESM, chargées à la demande
│ │ ├── i18n/locales/ # en, fr, es, id, zh-CN (3641 clés chacune, tenues en phase)
│ │ └── utils/ # dom, color, format, paths, fileIcons, syntaxHighlight
│ ├── shared/ # 12 modules partagés par main, renderer et le serveur MCP
│ │ ├── artifact-store.js # Utilisé tel quel par le processus du serveur MCP
│ │ ├── model-options.js # Définition du palier premium
│ │ ├── permission-modes.js # Modes du SDK <-> anciennes graphies executionMode
│ │ └── simple-task.js # Compile une automatisation en graphe de workflow
│ └── project-types/ # Système de types enfichable (base-type.js + registry.js)
│ ├── general/ api/ webapp/ python/ minecraft/ fivem/ discord/
│ └── ... # chacun : main/ service+ipc, renderer/ dashboard+wizard, i18n/
├── resources/
│ ├── mcp-servers/ # Serveurs MCP livrés avec l'app
│ │ ├── claude-terminal-mcp.js # Serveur unifié
│ │ ├── database-mcp-server.js # Serveur base de données uniquement
│ │ └── tools/ # 23 modules d'outils auto-enregistrés
│ ├── bundled-skills/ # create-skill, create-agents
│ └── hooks/ # Script de hook, POSTe les événements en HTTP
├── remote-ui/ # PWA mobile, embarquée en extraResources
├── tests/ # 149 suites Jest + un test de fumée Playwright
├── scripts/build-renderer.js # Bundler esbuild
└── website/ # Page d'accueil, changelog, mentions légales
```
> `cloud/` (le relais) et `hub-worker/` (un Cloudflare Worker) sont des paquets séparés
> avec leur propre `package.json`. Aucun des deux n'est embarqué dans l'application.
### Frontières
La séparation main/renderer est appliquée par ESLint, pas seulement par convention :
- Le renderer n'obtient jamais `child_process`, `fs`, `net` ni `electron` directement.
Il parle au processus principal uniquement via `window.electron_api`.
**`child_process` n'est délibérément jamais exposé** : le renderer affiche du markdown
écrit par un modèle, donc un pont vers le lancement de processus transformerait
n'importe quelle injection HTML en exécution de code.
- `contextIsolation: true` et `nodeIntegration: false` dans les cinq fenêtres.
- La CSP d'`index.html` n'a pas d'`'unsafe-inline'`, donc du HTML injecté dans le chat
ne peut pas exécuter de script. Tout markdown rendu passe par `dompurify`.
Si une de ces règles se déclenche, le correctif est un nouveau handler IPC, pas un
`eslint-disable`.
---
## Contribuer
Voir [CONTRIBUTING.md](CONTRIBUTING.md) pour les règles.
Pour les contributions de traduction, voir la [section Traductions (i18n)](CONTRIBUTING.md#translations-i18n).
Pour contribuer des traductions, voir notre [guide i18n](.github/i18n-coverage.md).
## Sécurité
Voir [SECURITY.md](SECURITY.md) pour signaler une vulnérabilité.
## Licence
[GPL-3.0](LICENSE)
Consultez les [notes sur le runtime, la protection des données et la récupération](RUNTIME_RELIABILITY.md) (en anglais) pour les contraintes de déploiement et les commandes de validation.