Aller au contenu principal

Exécuter des commandes locales en toute sécurité

Dans l’application de bureau, l’assistant peut exécuter des commandes et des tests dans le dossier de travail de votre chat. Pour savoir comment cela fonctionne dans le chat, consultez Accès local aux fichiers. Sur cette page, vous définissez quand cela peut se faire sans demander et dans quelles conditions les commandes s’exécutent en mode isolé.

Ouvrir les paramètres des commandes​

Dans un chat, ouvrez le panneau Commandes et choisissez Paramètres des commandes pour ce dossier. Les paramètres s’appliquent par dossier.

Quand l’assistant peut-il exécuter une commande ?​

Choisissez l’un de ces trois modes :

  • Toujours demander : vous approuvez chaque commande.
  • Commandes de confiance automatiquement : les commandes que vous avez enregistrées démarrent sans demander. Les autres commandes demandent encore l’autorisation.
  • Automatique en sandbox : tout démarre sans demander, mais dans un environnement isolé.

Dans chaque mode, ces règles s’appliquent aussi :

  • Les commandes inoffensives démarrent sans carte : mkdir, ls, cat, head, tail, wc, grep, find (sans -exec ni -delete), touch, pwd, tree et les contrôles de version (--version, -v ou -V de node, npm, npx, python, pip et aischool-python). Elles ne font pas plus que les outils de fichiers intégrés sans demande. Elles s’exécutent dans la sandbox sans réseau et uniquement avec des chemins à l’intérieur du dossier de travail, même après suivi des liens (pas de chemins absolus, ~ ou ..). Si un lien pointe hors du dossier, une carte apparaît malgré tout. Cela nécessite une sandbox (macOS) et les commandes locales, mais pas Autoriser l’exécution automatique de votre administrateur. Dans le panneau Commandes, cela apparaît alors comme Automatique (commande inoffensive). Une liste entre accolades, comme mkdir -p src/{components,utils}, démarre aussi sans carte : l’application la transforme en chemins distincts et les vérifie tous.
  • Chaque carte affiche la commande exacte et, pour les actions en ligne, l’adresse exacte. En dessous figure en plus petit l’explication de l’assistant.
  • Si la sandbox est disponible et que votre administrateur autorise l’exécution automatique, alors une carte pour une commande qui s’exécute dans la sandbox comporte aussi le bouton Toujours automatiquement dans la sandbox dans ce dossier. Cela place le dossier en Automatique en sandbox, de sorte que les commandes suivantes démarrent sans carte. Les commandes nécessitant le réseau demandent encore une fois, sauf si les installations de paquets sont autorisées.
  • La première carte dans un dossier qui s’exécute dans la sandbox et ne demande pas le réseau affiche une seule fois Faire confiance à ce projet. Cela exécute la commande, place le dossier en Automatique en sandbox et active Autoriser les installations de paquets sans demander. Ensuite, les tests et builds comme npm test, npm run build et node --test démarrent sans carte, dans la sandbox sans réseau. Les commandes qui nécessitent davantage le réseau ou qui s’exécutent hors sandbox continuent à demander. Après Exécuter ou Refuser, la question ne revient pas dans ce dossier ; vous modifiez le mode dans les paramètres des commandes. Si l’exécution automatique est désactivée, chaque carte indique si votre administrateur ou la politique de gestion de cet ordinateur l’applique.

Enregistrer des commandes de confiance​

Pour une commande, choisissez Toujours autoriser dans ce dossier, puis Cette commande exactement ou Tout ce qui commence par ceci. Les commandes enregistrées démarrent ensuite sans demande. Les commandes contenant des caractères spéciaux (comme ; | > $) demandent toujours une autorisation.

Les règles enregistrées se trouvent dans les paramètres des commandes, sous Toujours autorisé dans ce dossier. Vous pouvez aussi les supprimer là-bas.

Sandbox et réseau​

  • Utiliser la sandbox : les commandes peuvent écrire uniquement dans ce dossier. Cette option est activée par défaut sur macOS.
  • Autoriser le réseau : détermine si les commandes ont accès à Internet. Cette option est désactivée par défaut. Sans sandbox, les commandes ont toujours accès au réseau.

Chaque carte de commande indique si la sandbox et le réseau sont activés.

Si Autoriser le réseau est désactivé et que l’assistant veut télécharger quelque chose, par exemple avec npm install, la carte de commande demande si vous voulez exécuter exactement cette commande avec le réseau. Vous n’avez donc pas besoin d’activer le réseau pour tout le dossier.

Windows

Aucune sandbox n’est encore disponible sous Windows.

Installer des paquets​

L’application embarque son propre Node.js avec npm. Les commandes comme node, npm et npx fonctionnent donc même si Node.js n’est pas installé sur votre ordinateur. Si vous avez installé Node.js vous-même, l’application utilise cette version. Exception : un projet qui lance lui-même Electron (electron .) a besoin d’un Node.js que vous avez installé vous-même.

Autoriser les installations de paquets sans demander​

Dans Paramètres des commandes pour ce dossier, activez l’interrupteur Autoriser les installations de paquets sans demander. Les installations de paquets avec un nom démarrent alors sans carte : npm install <nom> et npm install à partir de package.json, pnpm, yarn ou bun avec install ou add, ainsi que pip install <nom> (y compris via uv). Elles s’exécutent toujours dans la sandbox, avec réseau. Les autres commandes suivent le mode que vous avez choisi pour le dossier.

Ces installations affichent encore une carte :

  • les starters de projet comme npm create vite@latest et npx create-…, car ils exécutent leur propre code ;
  • pip install ., pip install -r requirements.txt, les installations à partir d’un autre registre (--registry, -i, --index-url) et les paquets provenant d’une adresse git, d’une URL ou d’un chemin.

L’interrupteur fonctionne uniquement avec une sandbox (macOS) et si votre administrateur autorise l’exécution automatique. Sinon, vous ne pouvez pas l’activer.

Pas de scripts d’installation

Les paquets installés de cette manière n’exécutent jamais leurs propres scripts d’installation (npm s’exécute avec --ignore-scripts). Les paquets Python sont installés uniquement sous forme de wheels prêts à l’emploi.

Serveurs locaux et navigateur intégré​

L’assistant peut aussi démarrer un serveur de développement qui reste actif, comme npm run dev pour un petit projet React avec Vite. Les mêmes règles s’appliquent que pour les autres commandes : vous approuvez la commande exacte, ou elle démarre via une règle enregistrée ou automatiquement dans la sandbox. Au lieu de la durée maximale, la carte affiche : « Reste en cours d’exécution comme serveur local jusqu’à ce que vous l’arrêtiez. »

Le serveur reste actif après la réponse de l’assistant. Dans le panneau Commandes, la carte affiche l’état Serveur en cours d’exécution, avec les boutons Ouvrir dans le navigateur et Arrêter. Au maximum 4 serveurs peuvent tourner en même temps. Les serveurs s’arrêtent si vous les arrêtez ou si vous fermez l’application.

Dans la sandbox sans réseau, un serveur peut seulement écouter sur cet ordinateur (localhost). Pour savoir comment l’assistant installe des paquets, consultez Installer des paquets.

Afficher une simple page web​

Pour une page web normale (un index.html avec CSS et JavaScript, sans étape de build), aucune commande n’est nécessaire. L’assistant utilise alors le serveur web intégré de l’application :

  • Le dossier n’est visible que sur cet ordinateur, sur http://127.0.0.1 avec un port aléatoire.
  • Les fichiers cachés, comme .git et .env, ne sont jamais affichés.
  • Lorsqu’un fichier change, la page se recharge automatiquement.

Aucune carte d’approbation n’apparaît pour cela. Le serveur figure dans le panneau Commandes, avec Ouvrir dans le navigateur et Arrêter, et compte dans la limite de 4 serveurs.

Vous consultez le résultat dans le navigateur intégré : le bouton Navigateur (l’icône de globe) à droite dans la barre supérieure. Le panneau s’ouvre à côté du chat, avec retour, avancer, recharger (arrêter pendant le chargement), une barre d’adresse et Ouvrir dans votre navigateur par défaut.

  • L’assistant ouvre lui-même le navigateur pour afficher le résultat d’un serveur local. Cela ne fonctionne qu’avec des adresses locales, comme http://localhost:5173.
  • Si vous cliquez sur un lien localhost dans une réponse, il s’ouvre dans le navigateur intégré. Les autres liens s’ouvrent dans votre navigateur par défaut.
  • Vous pouvez aussi saisir vous-même n’importe quelle adresse web.
  • Le navigateur a sa propre session séparée : vous n’y êtes pas connecté à AI-Corporate, les sites web n’obtiennent pas d’autorisations comme la caméra ou le micro et les téléchargements ne sont pas possibles.
  • Tant qu’un menu ou une boîte de dialogue de l’application est ouvert, la page est temporairement masquée.

Exemple :

Crée dans ce dossier une petite application React avec Vite et un compteur. Installe les dépendances, lance le serveur de dev et affiche le résultat dans le navigateur.

Laisser l’assistant regarder​

Si vous demandez à l’assistant de regarder la page dans le navigateur intégré, il lit l’adresse, le titre, le texte visible, une capture d’écran et les derniers messages d’erreur de la page. Ils sont envoyés au modèle d’IA.

  • Une page sur cet ordinateur (localhost ou 127.0.0.1) est consultée par l’assistant sans demander.
  • Pour tout autre site web, par exemple une page sur laquelle vous êtes connecté, l’assistant affiche d’abord une carte : « L’assistant veut regarder onedrive.live.com. » Cliquez sur Autoriser la consultation ou sur Refuser. Il redemande à chaque fois.
  • Si la page, après votre autorisation, passe vers un autre site web, l’assistant ne lit rien.
  • L’assistant clique et tape lui-même uniquement sur une page de cet ordinateur, pour tester ce qu’il a créé. Sur les autres sites web, il ne clique pas, ne tape pas et ne navigue pas. Il n’obtient ni cookies ni mots de passe.
  • En mode hors ligne, l’assistant ne consulte que les pages de cet ordinateur.

Versions et GitHub​

L’assistant dispose d’un git intégré. Vous n’avez donc pas besoin d’installer git, même sous Windows. L’assistant peut enregistrer des versions, montrer ce qui a changé, créer des branches et mettre un projet en ligne.

  • Les actions dans ce dossier, comme enregistrer une version, démarrent sans demander. Les fichiers qui ressemblent à des secrets (comme les fichiers .env, les clés ou les jetons dans le code, y compris les clés Google API qui commencent par AIza) n’entrent jamais dans une version. L’assistant le signale s’il omet quelque chose.
  • Les actions en ligne (télécharger un projet, récupérer la dernière version, mettre en ligne et créer un dépôt GitHub) affichent d’abord une carte avec l’adresse exacte et les libellés Intégré à l’application et Réseau activé. Si l’adresse n’est pas github.com ou si un nouveau dépôt est rendu public, la carte affiche un avertissement. Lors de la mise en ligne, la carte indique quels fichiers seront envoyés. Choisissez Exécuter ou Refuser.
  • Connecter un dépôt en dehors de github.com demande aussi d’abord une autorisation.

Pour savoir comment connecter GitHub et mettre un projet en ligne, consultez Coder en vibe.

Mode hors ligne

Dans le mode hors ligne, les commandes s’exécutent toujours dans la sandbox sans réseau. Les installations de paquets avec réseau et les actions en ligne du git intégré (télécharger, récupérer, mettre en ligne et GitHub) ne fonctionnent alors pas. L’enregistrement des versions et l’affichage d’une simple page web fonctionnent bien.

Paramètres pour les administrateurs​

Les administrateurs peuvent désactiver pour tout le monde les commandes locales ou l’exécution automatique dans l’environnement. Ils le font dans l’environnement d’administration, dans Fonctions (au niveau de l’environnement), dans la carte Application de bureau :

  • Autoriser les commandes locales : si cette option est désactivée, l’assistant ne peut exécuter aucune commande. Les actions en ligne du git intégré ne fonctionnent alors pas non plus. L’enregistrement des versions et les branches continuent toutefois de fonctionner : ils ne modifient que les fichiers du dossier, comme les outils de fichiers.
  • Autoriser l’exécution automatique : si cette option est désactivée, chaque commande demande une autorisation et vous ne pouvez pas activer Autoriser les installations de paquets sans demander.
  • Autoriser le Python de l’application pour les fichiers Office : pour les modèles, graphiques et analyses. Ce Python fonctionne sans Internet, écrit uniquement dans le dossier de travail et ne peut pas lancer d’autres programmes. Si rien n’est défini, cela suit Autoriser les commandes locales. Sans sandbox (Windows), il n’est disponible que si les commandes locales sont activées, et il demande une autorisation à chaque fois.