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 à quel point les commandes sont isolées.

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.
  • Exécuter automatiquement les commandes de confiance : les commandes que vous avez enregistrées démarrent sans demander. Les autres commandes demandent toujours une autorisation.
  • Exécuter automatiquement dans la 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 ce que les outils de fichiers intégrés font déjà sans demander. 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 avoir suivi des liens (pas de chemins absolus, de ~ ni de ..). Si un lien pointe en dehors du dossier, une carte apparaît quand même. Pour cela, il faut une sandbox (macOS) et les commandes locales, mais pas Autoriser l’exécution automatique de votre administrateur. Dans le panneau Commandes, cela s’affiche 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 séparés et les vérifie tous.
  • Chaque carte affiche la commande exacte et, pour les actions en ligne, l’adresse exacte. En dessous, l’explication de l’assistant apparaît en plus petit.
  • Si la sandbox est disponible et que votre administrateur autorise l’exécution automatique, une carte pour une commande qui s’exécute dans la sandbox affiche aussi le bouton Toujours exécuter automatiquement dans la sandbox dans ce dossier. Il met le dossier sur Exécuter automatiquement dans la sandbox, afin que les commandes suivantes démarrent sans carte. Les commandes qui ont besoin du 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, met le dossier sur Exécuter automatiquement dans la 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 ont encore besoin du réseau ou qui s’exécutent en dehors de la sandbox continueront à 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’impose.

Enregistrer des commandes de confiance​

Pour une commande, choisissez Toujours autoriser dans ce dossier, puis Cette commande exacte ou Tout ce qui commence par ceci. Les commandes enregistrées démarrent ensuite sans demander. 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à.

Sandbox et réseau​

  • Utiliser la sandbox : les commandes ne peuvent écrire que 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 précisément cette commande avec le réseau. Vous n’avez donc pas besoin d’activer le réseau pour tout le dossier.

Windows

Sur Windows, aucune sandbox n’est encore disponible.

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 le commutateur 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 le 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 depuis un autre registre (--registry, -i, --index-url) et les paquets provenant d’une adresse git, d’une URL ou d’un chemin.

Le commutateur ne fonctionne qu’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 ne sont installés que sous forme de wheels prêtes à l’emploi.

Serveurs locaux et navigateur intégré​

L’assistant peut aussi lancer 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 indique « Reste actif en tant que 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. Un maximum de 4 serveurs peuvent fonctionner 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 ne peut écouter que sur cet ordinateur (localhost). Pour savoir comment l’assistant installe des paquets, voir Installer des paquets.

Afficher une page web simple​

Pour une page web classique (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.
  • Si un fichier change, la page se recharge automatiquement.

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

Vous consultez le résultat dans le navigateur intégré : le bouton Navigateur (l’icône du globe) à droite dans la barre supérieure. Le panneau s’ouvre à côté du chat, avec retour, avance, 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-School, les sites web n’obtiennent pas d’autorisations comme la caméra ou le micro, et aucun téléchargement n’est possible.
  • 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, démarre le serveur de développement et affiche le résultat dans le navigateur.

Laisser l’assistant jeter un œil​

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 sans demander.
  • Pour tout autre site, 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 le regard ou sur Refuser. Il le redemandera à chaque fois.
  • Si la page passe vers un autre site après votre autorisation, l’assistant ne lit rien.
  • L’assistant ne clique et ne tape lui-même que sur une page de cet ordinateur, pour tester ce qu’il a créé. Sur les autres sites, il ne clique pas, ne tape pas et ne navigue pas. Il ne reçoit ni cookies ni mots de passe.
  • En mode hors ligne, l’assistant ne consulte que les pages sur cet ordinateur.

Versions et GitHub​

L’assistant dispose d’un git intégré. Vous n’avez donc pas besoin d’installer git, même sur Windows. L’assistant peut enregistrer des versions, afficher les modifications, 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 semblent contenir des secrets (comme les fichiers .env, des clés ou des jetons dans le code, y compris les clés Google API qui commencent par AIza) ne sont jamais inclus dans une version. L’assistant vous avertit 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.
  • Associer 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, voir Coder en mode 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échargement, récupération, mise en ligne et GitHub) ne fonctionnent alors pas. Enregistrer des versions et afficher une page web simple fonctionnent, eux.

Paramètres pour les administrateurs​

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

  • Autoriser les commandes locales : si c’est désactivé, l’assistant ne peut exécuter aucune commande. Les actions en ligne du git intégré ne fonctionnent alors pas non plus. Enregistrer des versions et les branches continuent de fonctionner : elles ne modifient que les fichiers dans le dossier, comme les outils de fichiers.
  • Autoriser l’exécution automatique : si c’est désactivé, 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, n’écrit que 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.