Ir al contenido

Otro Context Code desde aquí

Tu terminal puede hablar con el Context Code de otra máquina: el de casa desde la oficina, el del servidor desde tu portátil. Es exactamente lo que hace el móvil cuando escanea el QR, pero desde una consola.

El turno no lo ejecuta tu equipo: se encola allí, con los archivos y los proyectos de allí. Tú ves lo que pasa y decides lo que hace falta decidir.

Ventana de terminal
# En el OTRO equipo (el que tiene el agente y los proyectos):
contextcode serve --print-qr --public
# Aquí, con la URL que imprimió (lleva su ?t=…):
contextcode remoto agregar casa "https://algo.trycloudflare.com/?t=TOKEN"
contextcode remoto listar
contextcode remoto probar casa
contextcode chat --remoto casa

También admite la dirección y el token por separado, o sin esquema:

Ventana de terminal
contextcode remoto agregar vps 192.168.1.5:8787 --token TOKEN
  1. Se llama a /api/version, la única ruta pública. Sirve para separar dos problemas que se parecen y tienen remedios opuestos: «no llego a esa máquina» y «llego, pero el token no vale».
  2. Se valida la credencial con una llamada que no cambia nada.
  3. Se canjea el token del enlace por uno de dispositivo. A partir de ahí, el token del QR no se guarda: conservarlo dejaría en tu disco una credencial viva que sobreviviría a la revocación.

El registro vive en ~/.context/remotos.json, con permisos 0600 donde el sistema lo permite. contextcode conexion te dice la ruta exacta.

CredencialDe dónde saleCuánto duraCómo se retira
Token del enlaceLo genera serve; es lo que va dentro del QRDe 1 minuto a 30 díasRotándolo: caen todos a la vez
Token de dispositivoSe pide una vez, presentando el del enlaceNo caducaUno a uno, sin tocar a los demás

El QR es la puerta, no la llave. Por eso el enlace puede ser efímero sin obligarte a reescanear cada día, y por eso perder un teléfono no expulsa a los demás.

Ventana de terminal
contextcode chat --remoto casa # crea un chat nuevo
contextcode chat --remoto casa --proyecto "Mi app" # en ese proyecto (id o nombre)
contextcode chat --remoto casa --chat chat-a1b2 # continúa uno existente
contextcode chat --remoto # el remoto activo

Verás lo mismo que en un chat local —texto en vivo, herramientas, resultado— porque son los mismos eventos del motor, seguidos por sondeo de la línea de tiempo del otro lado.

Las aprobaciones se responden desde tu terminal

Sección titulada «Las aprobaciones se responden desde tu terminal»

Cuando el agente de la otra máquina pide permiso para usar una herramienta, la pregunta sale en tu consola ([s/N/siempre]) y tu respuesta lo desbloquea. Sin eso, el turno esperaría indefinidamente a alguien sentado delante de aquel equipo — que es justo lo que estás evitando.

El agente sigue trabajando allí. El comando te dice con qué línea volver a entrar (--chat <id>) para recuperar la respuesta cuando vuelvas.

remoto frente a los workspaces SSH del escritorio

Sección titulada «remoto frente a los workspaces SSH del escritorio»

No compiten: resuelven casos distintos.

contextcode remotoWorkspace SSH (ventana del escritorio)
Quién lo usaLa terminal, en cualquier sistemaLa aplicación de escritorio
TransporteHTTP directo contra el servessh -L y HTTP por el túnel
CredencialToken del QR → token de dispositivoTus claves SSH
Hace falta en el servidorcontextcode serve ya corriendoAcceso SSH y el binario instalado
Atraviesa internetSí, con serve --publicSí, si el SSH es accesible

En un VPS propio con SSH, el escritorio usa el workspace SSH. Para llegar desde una terminal —o desde una máquina donde no están tus claves— el camino es remoto contra serve --public.

Si usabas un workspace SSH y se te cortaba cada poco, era esto: los NAT domésticos y algunas VPN solo cuentan el tráfico TCP visible y reciclan las sesiones ociosas, aunque SSH esté mandando sus propias sondas cifradas por dentro.

Ahora la conexión lleva keep-alive en las dos capas (ServerAliveInterval=15 con ServerAliveCountMax=3 en SSH, y TCPKeepAlive=yes en TCP). Y si aun así se corta:

  • La aplicación detecta que el túnel está muerto y vuelve sola a trabajar en local, en vez de encadenar esperas de tres segundos por cada comando contra una conexión que ya no existe.
  • Los chats remotos toleran cortes de más de dos minutos, reintentando con esperas crecientes, antes de darse por perdidos.
Lo que vesQué pasa y qué hacer
«Tu ordenador rechazó este enlace: ya expiró»El enlace venció o se regeneró. Genera uno nuevo y vuelve a escanear.
«Su acceso fue revocado»Ese dispositivo se revocó desde el otro lado. Escanea un QR nuevo.
«No se pudo contactar» y el PC está encendidoEl QR de red local apunta a una IP interna. Poneos en la misma red, o pide el QR del túnel con --public.
El QR de un VPS no funcionaSin --public, el enlace apunta a una IP del centro de datos que tu celular no alcanza.
conexion dice que «el llavero no devolvió su token»Servidor sin llavero del sistema: usa serve --token-file <ruta> para tener un token estable.