Desarrollo remoto
GraphoOS está dividido en dos procesos: la ventana, que es dueña del búfer y de cada pulsación, y el proxy, que es dueño del sistema de ficheros, los servidores de lenguaje, el terminal y los plugins. Cuando te conectas a otra máquina solo se ejecuta allí el proxy: escribir nunca espera a la red, mientras que el completado, los diagnósticos, la búsqueda y el terminal ocurren en el equipo remoto, con sus ficheros y sus herramientas.
SSH
Desde la paleta de comandos (⌘⇧P / Ctrl+Shift+P), Conectar a un equipo por SSH,
y después user@host (puede seguirle un puerto: user@host:2222). Los equipos que ya
usaste aparecen en la lista; el proyecto que tenías abierto allí se vuelve a abrir.
GraphoOS usa el ssh de tu sistema, así que se aplica todo lo de ~/.ssh/config
(claves, equipos de salto, alias). En la primera conexión envía el proxy
para la plataforma del equipo (graphoos-proxy-<os>-<arch> de la release que
estás usando) a ~/.local/share/graphoos-<release>/proxy en Linux,
~/Library/Application Support/dev.graphoos.GraphoOS-<release>/proxy en
macOS y %LOCALAPPDATA%\graphoos\GraphoOS-<release>\data\proxy en Windows,
y lo arranca; las conexiones siguientes lo reutilizan mientras las versiones coincidan.
Todo lo demás es como en local: el explorador muestra el árbol remoto, los plugins se ejecutan en el remoto (instálalos otra vez allí: el panel de extensiones instala en la carpeta de datos remota), el terminal es una shell en el equipo, y Ejecutar y depurar lanza allí.
Dev Containers
Una carpeta con .devcontainer/devcontainer.json (o .devcontainer.json)
se puede trabajar dentro del contenedor que describe: Reabrir en el
contenedor, desde la paleta, desde Archivo › Remoto o desde el botón
de remoto a la izquierda de la barra de título. El fichero es el mismo que
leen VS Code y GitHub Codespaces, con comentarios y comas finales.
Lo que pasa:
- El contenedor sale de lo que dice el fichero: se descarga
image, se construyebuild.dockerfile(conbuild.context, relativo a la carpeta del fichero), o se levantadockerComposeFileconservicemediantedocker compose. - La carpeta se monta en
workspaceFolder(/workspaces/<carpeta>si el fichero no dice nada), conforwardPortspublicados,remoteEnvpuesto,remoteUsercomo usuario yrunArgsañadidos tal cual. postCreateCommandse ejecuta una vez por contenedor;postAttachCommand, cada vez que el editor se engancha.- El proxy arranca dentro del contenedor y la ventana abre allí la carpeta: los servidores de lenguaje, el terminal, la búsqueda y Ejecutar y depurar usan las herramientas del contenedor.
Abrirla otra vez reutiliza el contenedor (lo arranca si estaba parado).
Si devcontainer.json cambia, el contenedor se vuelve a hacer con él. El
contenedor se llama graphoos-<carpeta>-<hash>; docker rm -f para
empezar de cero. Desconectar del remoto vuelve a tu máquina.
Sirven Docker y Podman, el que esté instalado (Docker Desktop, OrbStack,
Colima y Podman funcionan), y se encuentran aunque el editor se haya
abierto desde el Finder o un menú del escritorio, cuyo PATH no los
incluye. La primera vez, descargar o construir la imagen puede tardar unos
minutos; el editor avisa de que ha empezado y abre la carpeta cuando el
contenedor está listo, o dice lo que respondió el motor si falla.
Todavía no se leen: features, mounts, customizations ni los comandos
del ciclo de vida distintos de los dos de arriba.
Un proxy propio
El proxy se instala en el contenedor igual que en un equipo SSH. Para usar
uno compilado por ti (scripts/build_linux_proxies.sh) en vez del de la
release, déjalo en una carpeta como graphoos-proxy-linux-<arch>
(x86_64, aarch64) y arranca el editor con GRAPHOOS_REMOTE_PROXY_DIR
apuntando a esa carpeta; vale también para los equipos SSH.
tools/devcontainer_smoke.py hace justo eso para probar el camino entero
contra el Docker de tu máquina.
WSL
En Windows, Conectar a un equipo WSL abre una distribución como remoto; el proxy se ejecuta dentro de ella y el proyecto es una ruta de Linux.
Qué se queda en tu máquina
Los ajustes, los mapas de teclas, los temas y la conversación del asistente; a los proveedores de IA se llega desde tu máquina, y el contenido del fichero remoto viaja a través del editor.
Fuente: docs/es/remote-development.md