Ir al contenido principal

Ejecutar comandos locales de forma segura

En la aplicación de escritorio, el asistente puede ejecutar comandos y pruebas en la carpeta de trabajo de tu chat. Cómo funciona eso en el chat se explica en Acceso a archivos locales. En esta página configuras cuándo puede hacerlo sin preguntar y con qué grado de aislamiento se ejecutan los comandos.

Abrir los ajustes de comandos​

En un chat, abre el panel Comandos y elige Ajustes de comandos para esta carpeta. Los ajustes se aplican por carpeta.

¿Cuándo puede el asistente ejecutar un comando?​

Elige uno de estos tres modos:

  • Preguntar siempre: apruebas cada comando.
  • Comandos de confianza automáticamente: los comandos que has guardado se inician sin preguntar. Los demás comandos siguen pidiendo aprobación.
  • Automáticamente en sandbox: todo se inicia sin preguntar, pero en un entorno aislado.

En todos los modos se aplican además estas reglas:

  • Los comandos inofensivos se inician sin tarjeta: mkdir, ls, cat, head, tail, wc, grep, find (sin -exec ni -delete), touch, pwd, tree y comprobaciones de versión (--version, -v o -V de node, npm, npx, python, pip y aischool-python). No hacen nada más que lo que ya hacen sin preguntar las herramientas de archivos integradas. Se ejecutan en el entorno aislado sin red y solo con rutas dentro de la carpeta de trabajo, también después de seguir enlaces (sin rutas absolutas, ~ ni ..). Si un enlace apunta fuera de la carpeta, sí aparece una tarjeta. Para ello se necesitan un entorno aislado (macOS y Linux) y los comandos locales, pero no la opción Permitir ejecución automática de tu administrador. El panel Comandos muestra entonces Automático (comando inofensivo). Una lista entre llaves, como mkdir -p src/{components,utils}, también se inicia sin tarjeta: la app la convierte en rutas separadas y comprueba cada una.
  • Cada tarjeta muestra el comando exacto y, en las acciones en línea, la dirección exacta. Debajo, en letra más pequeña, aparece la explicación del asistente.
  • Si el entorno aislado está disponible y tu administrador permite la ejecución automática, una tarjeta de un comando que se ejecuta en el entorno aislado tiene también el botón A partir de ahora, automáticamente en el entorno aislado en esta carpeta. Este cambia la carpeta a Automáticamente en sandbox, de modo que los siguientes comandos se inician sin tarjeta. Los comandos que necesitan red siguen preguntando una vez, salvo que se permitan las instalaciones de paquetes.
  • La primera tarjeta de una carpeta que se ejecuta en el entorno aislado y no pide red muestra una sola vez Confiar en este proyecto. Ejecuta el comando, cambia la carpeta a Automáticamente en sandbox y activa Permitir instalaciones de paquetes sin preguntar. Después, las pruebas y compilaciones como npm test, npm run build y node --test se inician sin tarjeta, en el entorno aislado sin red. Los comandos que necesitan la red para otra cosa o se ejecutan fuera del entorno aislado siguen preguntando. Tras Ejecutar o Rechazar la pregunta no vuelve en esta carpeta; el modo lo cambias en la configuración de comandos. Si la ejecución automática está desactivada, cada tarjeta indica si lo hace tu administrador o la política de gestión de este ordenador.

Guardar comandos de confianza​

En un comando, elige Permitir siempre en esta carpeta y después Exactamente este comando o Todo lo que empiece por. A partir de entonces, los comandos guardados se inician sin preguntar. Los comandos con caracteres especiales (como ; | > $) siempre piden aprobación.

Las reglas guardadas aparecen en los ajustes de comandos en Permitido siempre en esta carpeta. Ahí también puedes eliminarlas.

Sandbox y red​

  • Usar sandbox: los comandos solo pueden escribir en esta carpeta. Esta opción está activada de forma predeterminada en macOS y Linux.
  • Permitir red: determina si los comandos tienen acceso a internet. Esta opción está desactivada de forma predeterminada. Sin sandbox, los comandos siempre tienen acceso a la red.

Cada tarjeta de comando muestra si el sandbox y la red están activados.

Si Permitir red está desactivado y el asistente quiere descargar algo, por ejemplo con npm install, la tarjeta de comando te pregunta si quieres ejecutar exactamente ese comando con red. Así no tienes que activar la red para toda la carpeta.

Windows

En Windows todavía no hay sandbox disponible.

Instalar paquetes​

La aplicación incluye su propio Node.js con npm. Por eso, comandos como node, npm y npx funcionan aunque Node.js no esté instalado en tu ordenador. Si has instalado Node.js tú mismo, la aplicación usa esa versión. Excepción: un proyecto que inicia Electron por sí mismo (electron .) necesita un Node.js que hayas instalado tú.

Permitir instalaciones de paquetes sin preguntar​

En Ajustes de comandos para esta carpeta, activa el interruptor Permitir instalaciones de paquetes sin preguntar. Las instalaciones de paquetes con nombre se inician entonces sin tarjeta: npm install <nombre> y npm install desde package.json, pnpm, yarn o bun con install o add, y pip install <nombre> (también mediante uv). Siempre se ejecutan en el sandbox, con red. Los demás comandos siguen el modo que hayas elegido para la carpeta.

Estas instalaciones siguen mostrando una tarjeta:

  • los iniciadores de proyectos como npm create vite@latest y npx create-…, porque ejecutan su propio código;
  • pip install ., pip install -r requirements.txt, las instalaciones desde otro registro (--registry, -i, --index-url) y los paquetes de una dirección git, una URL o una ruta.

El interruptor solo funciona con sandbox (macOS y Linux) y si tu administrador permite la ejecución automática. Si no, no puedes activarlo.

Sin scripts de instalación

Los paquetes instalados así nunca ejecutan sus propios scripts de instalación (npm se ejecuta con --ignore-scripts). Los paquetes de Python solo se instalan como wheels ya preparados.

Servidores locales y el navegador integrado​

El asistente también puede iniciar un servidor de desarrollo que sigue en marcha, como npm run dev para un pequeño proyecto de React con Vite. Se aplican las mismas reglas que para otros comandos: apruebas el comando exacto, o se inicia mediante una regla guardada o automáticamente en el sandbox. En lugar del tiempo máximo, la tarjeta indica "Sigue en marcha como servidor local hasta que lo detengas."

El servidor sigue en marcha después de que el asistente haya respondido. En el panel Comandos, la tarjeta muestra el estado Servidor en marcha con los botones Abrir en el navegador y Detener. Pueden funcionar como máximo 4 servidores a la vez. Los servidores se detienen cuando los detienes o cierras la aplicación.

En el sandbox sin red, un servidor solo puede escuchar en este ordenador (localhost). Cómo instala paquetes el asistente se explica en Instalar paquetes.

Mostrar una página web sencilla​

Para una página web normal (un index.html con CSS y JavaScript, sin paso de compilación) no hace falta ningún comando. El asistente usa entonces el servidor web integrado de la aplicación:

  • La carpeta solo se puede ver en este ordenador, en http://127.0.0.1 con un puerto aleatorio.
  • Los archivos ocultos, como .git y .env, nunca se muestran.
  • Si cambia un archivo, la página se recarga automáticamente.

Para esto no aparece ninguna tarjeta de aprobación. El servidor aparece en el panel Comandos, con Abrir en el navegador y Detener, y cuenta para el máximo de 4 servidores.

El resultado lo ves en el navegador integrado: el botón Navegador (el icono del globo) a la derecha de la barra superior. El panel se abre junto al chat, con atrás, adelante, recargar (detener mientras carga), una barra de direcciones y Abrir en tu navegador predeterminado.

  • El asistente abre el navegador por sí mismo para mostrar el resultado de un servidor local. Esto solo funciona con direcciones locales, como http://localhost:5173.
  • Si haces clic en un enlace localhost de una respuesta, se abre en el navegador integrado. Los demás enlaces se abren en tu navegador predeterminado.
  • También puedes escribir tú mismo cualquier dirección web.
  • El navegador tiene su propia sesión independiente: allí no has iniciado sesión en AI-Public, los sitios web no reciben permisos como la cámara o el micrófono y no se pueden hacer descargas.
  • Mientras haya un menú o un cuadro de diálogo de la aplicación abierto, la página se oculta temporalmente.

Ejemplo:

Crea en esta carpeta una pequeña aplicación de React con Vite que tenga un contador. Instala las dependencias, inicia el servidor de desarrollo y muestra el resultado en el navegador.

Dejar que el asistente mire​

Si pides al asistente que mire la página del navegador integrado, lee la dirección, el título, el texto visible, una captura de pantalla y los últimos mensajes de error de la página. Todo ello se envía al modelo de IA.

  • El asistente mira una página de este ordenador (localhost o 127.0.0.1) sin preguntar.
  • En cualquier otro sitio web, por ejemplo una página en la que has iniciado sesión, el asistente muestra primero una tarjeta: «El asistente quiere ver onedrive.live.com.» Haz clic en Permitir ver o en Rechazar. Lo pregunta cada vez.
  • Si la página cambia a otro sitio web después de tu permiso, el asistente no lee nada.
  • Solo en una página de este ordenador el asistente hace clic y escribe por su cuenta, para probar lo que ha creado. En otros sitios web no hace clic, no escribe ni navega. No recibe cookies ni contraseñas.
  • En el modo sin conexión, el asistente solo mira páginas de este ordenador.

Versiones y GitHub​

El asistente tiene git integrado, así que no necesitas instalar git, ni siquiera en Windows. El asistente puede guardar versiones, mostrar qué ha cambiado, crear ramas y publicar un proyecto en línea.

  • Las acciones en esta carpeta, como guardar una versión, se inician sin preguntar. Los archivos que parecen secretos (como archivos .env, o claves y tokens en el código, también claves de API de Google que empiezan por AIza) nunca entran en una versión. El asistente te avisa cuando omite algo.
  • Las acciones en línea (descargar un proyecto, obtener la versión más reciente, publicarlo en línea y crear un repositorio de GitHub) muestran primero una tarjeta con la dirección exacta y las etiquetas Integrado en la aplicación y Red activada. Si la dirección no es github.com o un repositorio nuevo pasa a ser público, la tarjeta te avisa. Al publicar en línea, la tarjeta muestra qué archivos se van a enviar. Elige Ejecutar o Rechazar.
  • Conectar un repositorio fuera de github.com también pide permiso primero.

Cómo conectar GitHub y publicar un proyecto en línea se explica en Vibe coding.

Modo sin conexión

En el modo sin conexión, los comandos se ejecutan siempre en el entorno aislado sin red. Las instalaciones de paquetes con red y las acciones en línea del git integrado (descargar, traer cambios, subir y GitHub) no funcionan entonces. Guardar versiones y mostrar una página web sencilla siguen funcionando.

Ajustes para administradores​

Los administradores pueden desactivar los comandos locales o la ejecución automática para todo el entorno. Lo hacen en el entorno de administración, en Características (a nivel del entorno), en la tarjeta Aplicación de escritorio:

  • Permitir comandos locales: si está desactivado, el asistente no puede ejecutar comandos. Tampoco funcionan entonces las acciones en línea del git integrado. Guardar versiones y las ramas sí siguen funcionando: solo cambian archivos de la carpeta, igual que las herramientas de archivos.
  • Permitir ejecución automática: si está desactivado, cada comando pide aprobación y no puedes activar Permitir instalaciones de paquetes sin preguntar.
  • Permitir el Python de la aplicación para archivos de Office: para plantillas, gráficos y análisis. Este Python funciona sin internet, solo escribe en la carpeta de trabajo y no puede iniciar otros programas. Si no hay nada configurado, sigue el ajuste Permitir comandos locales. Sin sandbox (Windows), solo está disponible si los comandos locales están activados, y pide permiso cada vez.