Skip to content

Configuración del Modo Remoto/Devcontainer

Lo que aprenderás

  • Usar Plannotator en un servidor remoto conectado por SSH
  • Configurar y acceder a Plannotator en un devcontainer de VS Code
  • Usar Plannotator en un entorno WSL (Windows Subsystem for Linux)
  • Configurar el reenvío de puertos para acceder a Plannotator desde tu navegador local

El problema que enfrentas

Estás usando Claude Code u OpenCode en un servidor remoto, devcontainer o entorno WSL. Cuando la IA genera un plan o necesita una revisión de código, Plannotator intenta abrir un navegador en el entorno remoto, pero no hay interfaz gráfica disponible, o prefieres ver la interfaz de revisión en tu navegador local.

Cuándo usar esta técnica

Escenarios típicos que requieren el modo Remoto/Devcontainer:

EscenarioDescripción
Conexión SSHTe conectas a un servidor de desarrollo remoto vía SSH
DevcontainerDesarrollas usando devcontainers en VS Code
WSLDesarrollas en Linux usando WSL en Windows
Entorno en la nubeTu código se ejecuta en un contenedor o máquina virtual en la nube

Concepto clave

Usar Plannotator en un entorno remoto requiere resolver dos problemas:

  1. Puerto fijo: Los entornos remotos no pueden seleccionar automáticamente puertos aleatorios porque necesitas configurar el reenvío de puertos
  2. Acceso al navegador: Los entornos remotos no tienen interfaz gráfica, por lo que necesitas acceder desde el navegador de tu máquina local

Plannotator entra automáticamente en "modo remoto" al detectar la variable de entorno PLANNOTATOR_REMOTE:

  • Usa un puerto fijo (19432 por defecto) en lugar de un puerto aleatorio
  • Omite la apertura automática del navegador
  • Muestra la URL en la terminal para que puedas acceder manualmente desde tu navegador local

🎒 Antes de empezar

Requisitos previos

Antes de comenzar este tutorial, asegúrate de:


Paso a paso

Paso 1: Comprender las variables de entorno del modo remoto

El modo remoto de Plannotator depende de tres variables de entorno:

Variable de entornoDescripciónValor por defecto
PLANNOTATOR_REMOTEHabilita el modo remotoNo establecida (modo local)
PLANNOTATOR_PORTNúmero de puerto fijoAleatorio (local) / 19432 (remoto)
PLANNOTATOR_BROWSERRuta personalizada del navegadorNavegador predeterminado del sistema

Por qué

  • PLANNOTATOR_REMOTE indica a Plannotator que está en un entorno remoto y no debe intentar abrir un navegador
  • PLANNOTATOR_PORT establece un puerto fijo para facilitar la configuración del reenvío de puertos
  • PLANNOTATOR_BROWSER (opcional) especifica la ruta del navegador a usar en tu máquina local

Paso 2: Configuración en un servidor remoto SSH

Configurar el reenvío de puertos SSH

Edita tu archivo de configuración SSH ~/.ssh/config:

bash
Host your-server
    HostName your-server.com
    User your-username
    LocalForward 9999 localhost:9999

Deberías ver:

  • Se ha añadido la línea LocalForward 9999 localhost:9999
  • Esto reenviará el tráfico del puerto local 9999 al puerto 9999 del servidor remoto

Establecer variables de entorno en el servidor remoto

Después de conectarte al servidor remoto, establece las variables de entorno en la terminal:

bash
export PLANNOTATOR_REMOTE=1
export PLANNOTATOR_PORT=9999

Por qué

  • PLANNOTATOR_REMOTE=1 habilita el modo remoto
  • PLANNOTATOR_PORT=9999 usa el puerto fijo 9999 (coincide con el puerto en la configuración SSH)

Configuración persistente

Si establecer las variables de entorno manualmente cada vez que te conectas es tedioso, puedes añadirlas a tu archivo de configuración del shell (~/.bashrc o ~/.zshrc):

bash
echo 'export PLANNOTATOR_REMOTE=1' >> ~/.bashrc
echo 'export PLANNOTATOR_PORT=9999' >> ~/.bashrc
source ~/.bashrc

Usar Plannotator

Ahora puedes usar Claude Code u OpenCode normalmente en el servidor remoto. Cuando la IA genere un plan o necesite una revisión de código:

bash
# En el servidor remoto, la terminal mostrará algo como:
[Plannotator] Server running at http://localhost:9999
[Plannotator] Access from your local machine: http://localhost:9999

Deberías ver:

  • La terminal muestra la URL de Plannotator
  • El entorno remoto no abre un navegador (comportamiento esperado)

Acceder desde tu navegador local

Abre en el navegador de tu máquina local:

http://localhost:9999

Deberías ver:

  • La interfaz de revisión de Plannotator se muestra correctamente
  • Puedes realizar revisiones de planes o código como si estuvieras en un entorno local

Punto de verificación ✅:

  • [ ] Reenvío de puertos SSH configurado
  • [ ] Variables de entorno establecidas
  • [ ] La terminal del servidor remoto muestra la URL
  • [ ] El navegador local puede acceder a la interfaz de revisión

Paso 3: Configuración en VS Code Devcontainer

Configurar el devcontainer

Edita tu archivo .devcontainer/devcontainer.json:

json
{
  "name": "Your Devcontainer",
  "image": "mcr.microsoft.com/devcontainers/base:ubuntu",

  "containerEnv": {
    "PLANNOTATOR_REMOTE": "1",
    "PLANNOTATOR_PORT": "9999"
  },

  "forwardPorts": [9999]
}

Por qué

  • containerEnv establece las variables de entorno dentro del contenedor
  • forwardPorts indica a VS Code que reenvíe automáticamente los puertos del contenedor a tu máquina local

Reconstruir e iniciar el devcontainer

  1. Abre la paleta de comandos de VS Code (Ctrl+Shift+P o Cmd+Shift+P)
  2. Escribe Dev Containers: Rebuild Container y ejecútalo
  3. Espera a que el contenedor termine de reconstruirse

Deberías ver:

  • VS Code muestra el estado del reenvío de puertos en la esquina inferior derecha (generalmente un pequeño icono)
  • Al hacer clic, puedes ver que "Port 9999" está reenviado

Usar Plannotator

Usa Claude Code u OpenCode normalmente en el devcontainer. Cuando la IA genere un plan:

bash
# Salida de la terminal del contenedor:
[Plannotator] Server running at http://localhost:9999

Deberías ver:

  • La terminal muestra la URL de Plannotator
  • El contenedor no abre un navegador (comportamiento esperado)

Acceder desde tu navegador local

Abre en el navegador de tu máquina local:

http://localhost:9999

Deberías ver:

  • La interfaz de revisión de Plannotator se muestra correctamente

Punto de verificación ✅:

  • [ ] Configuración del devcontainer con variables de entorno y reenvío de puertos añadida
  • [ ] Contenedor reconstruido
  • [ ] VS Code muestra que el puerto está reenviado
  • [ ] El navegador local puede acceder a la interfaz de revisión

Paso 4: Configuración en entorno WSL

La configuración del entorno WSL es similar a la conexión SSH, pero no necesitas configurar manualmente el reenvío de puertos: WSL reenvía automáticamente el tráfico de localhost al sistema Windows.

Establecer variables de entorno

Establece las variables de entorno en la terminal de WSL:

bash
export PLANNOTATOR_REMOTE=1
export PLANNOTATOR_PORT=9999

Configuración persistente

Añade estas variables de entorno a tu archivo de configuración del shell de WSL (~/.bashrc o ~/.zshrc):

bash
echo 'export PLANNOTATOR_REMOTE=1' >> ~/.bashrc
echo 'export PLANNOTATOR_PORT=9999' >> ~/.bashrc
source ~/.bashrc

Usar Plannotator

Usa Claude Code u OpenCode normalmente en WSL:

bash
# Salida de la terminal de WSL:
[Plannotator] Server running at http://localhost:9999

Deberías ver:

  • La terminal muestra la URL de Plannotator
  • WSL no abre un navegador (comportamiento esperado)

Acceder desde el navegador de Windows

Abre en el navegador de Windows:

http://localhost:9999

Deberías ver:

  • La interfaz de revisión de Plannotator se muestra correctamente

Punto de verificación ✅:

  • [ ] Variables de entorno establecidas
  • [ ] La terminal de WSL muestra la URL
  • [ ] El navegador de Windows puede acceder a la interfaz de revisión

Solución de problemas

Puerto ya en uso

Si ves un error como este:

Error: bind: EADDRINUSE: address already in use :::9999

Solución:

  1. Cambia el número de puerto:
    bash
    export PLANNOTATOR_PORT=10000  # Usa un puerto que no esté en uso
  2. O detén el proceso que está usando el puerto 9999:
    bash
    lsof -ti:9999 | xargs kill -9

El reenvío de puertos SSH no funciona

Si tu navegador local no puede acceder a Plannotator:

Lista de verificación:

  • [ ] El número de puerto en LocalForward del archivo de configuración SSH coincide con PLANNOTATOR_PORT
  • [ ] Te has desconectado y reconectado a SSH
  • [ ] El firewall no está bloqueando el reenvío de puertos

El reenvío de puertos del Devcontainer no funciona

Si VS Code no reenvía automáticamente el puerto:

Solución:

  1. Verifica la configuración de forwardPorts en .devcontainer/devcontainer.json
  2. Reenvía el puerto manualmente:
    • Abre la paleta de comandos de VS Code
    • Ejecuta Forward a Port
    • Introduce el número de puerto 9999

No se puede acceder desde WSL

Si el navegador de Windows no puede acceder a Plannotator en WSL:

Solución:

  1. Verifica que las variables de entorno estén configuradas correctamente
  2. Intenta usar 0.0.0.0 en lugar de localhost (dependiendo de la versión de WSL y la configuración de red)
  3. Verifica la configuración del firewall de Windows

Resumen

Puntos clave del modo Remoto/Devcontainer:

Punto claveDescripción
Variables de entornoPLANNOTATOR_REMOTE=1 habilita el modo remoto
Puerto fijoUsa PLANNOTATOR_PORT para establecer un puerto fijo (19432 por defecto)
Reenvío de puertosSSH/Devcontainer requieren configuración de reenvío de puertos; WSL lo hace automáticamente
Acceso manualEl modo remoto no abre automáticamente el navegador; debes acceder manualmente desde tu navegador local
PersistenciaAñade las variables de entorno a los archivos de configuración para evitar configuraciones repetidas

Próxima lección

En la próxima lección aprenderemos sobre la Guía detallada de variables de entorno.

Aprenderás:

  • Todas las variables de entorno disponibles en Plannotator
  • El propósito y valor por defecto de cada variable de entorno
  • Cómo combinar variables de entorno para diferentes escenarios

Apéndice: Referencia del código fuente

Haz clic para ver la ubicación del código fuente

Última actualización: 2026-01-24

FuncionalidadRuta del archivoLíneas
Detección de sesión remotapackages/server/remote.ts16-29
Obtención del puerto del servidorpackages/server/remote.ts34-49
Lógica de inicio del servidorpackages/server/index.ts91-97
Lógica de apertura del navegadorpackages/server/browser.ts45-74
Detección de WSLpackages/server/browser.ts11-34

Constantes clave:

  • DEFAULT_REMOTE_PORT = 19432: Puerto por defecto del modo remoto

Funciones clave:

  • isRemoteSession(): Detecta si se está ejecutando en una sesión remota
  • getServerPort(): Obtiene el puerto del servidor (puerto fijo para remoto, aleatorio para local)
  • openBrowser(url): Abre el navegador de forma multiplataforma