Code Remote

Comandos

Todo lo que coderemote puede hacer, un comando cada vez.

$ coderemote up                    # share this folder, print the pairing QR
$ coderemote status                # running agents and their terminal sessions
$ coderemote kill <id>... | --all  # end terminal sessions
$ coderemote stop [--all]          # stop the agent for this folder
$ coderemote serve                 # share on 127.0.0.1 only, no tunnel
$ coderemote requests [PORT]       # requests that reached a previewed port
$ coderemote request <ID>          # headers and bodies of one request
$ coderemote setup claude          # follow Claude Code sessions in the app
$ coderemote setup codex           # the same for Codex
$ coderemote devices               # phones enrolled with this folder
$ coderemote devices revoke <id>   # remove one phone
$ coderemote devices policy <level> # how strict Face ID is
$ coderemote rotate-token          # revoke every paired device
$ coderemote tunnels               # your Dev Tunnels account's tunnels
$ coderemote tunnels delete <id>   # delete ones nothing uses
$ coderemote login                 # sign in to Dev Tunnels again
$ coderemote update                # install the latest version
$ coderemote help                  # all options

up

Comparte la carpeta actual a través de un Microsoft Dev Tunnel privado e imprime el código QR de emparejamiento. Es el comando que usas día a día.

$ coderemote up
$ coderemote up --root ~/projects   # share another folder
$ coderemote up --web               # also open it in VS Code on vscode.dev

Inicia un pequeño agente en 127.0.0.1, te hace iniciar sesión en Dev Tunnels si hace falta, se conecta hacia fuera al relay e imprime tres cosas: la carpeta que se comparte, quién puede entrar y los enlaces para emparejar. Sigue funcionando hasta que pulsas Ctrl+C o cierras el terminal.

OpciónQué hace
--root DIRComparte DIR en lugar de la carpeta actual.
--port NEscucha en el puerto local N (por defecto 31580). Cámbialo cuando otro programa ya ocupe ese puerto.
--allow-anonymousOmite el inicio de sesión de la cuenta en el teléfono: el token de emparejamiento por sí solo da acceso. Alias --no-auth.
--webEjecuta también el code tunnel de VS Code e imprime un enlace de vscode.dev que abre la carpeta en el editor completo dentro del navegador.

--web usa el túnel propio de VS Code, no el de Code Remote. Inicia sesión con su propia cuenta de GitHub y da al navegador toda la máquina, no solo la carpeta compartida. Necesita el comando code de VS Code en tu PATH.

status

Lista los agentes que se ejecutan en este ordenador y las sesiones de terminal de cada uno. Alias ps.

$ coderemote status
/Users/you/projects/my-app  (pid 4121, port 31580, up 2h)
  https://…devtunnels.ms
  3f9a2c1e  zsh          pid 4188    2h   1 attached
  b71d04aa  claude       pid 5230    14m  detached

Cada sesión muestra su id, título, id de proceso, antigüedad y si hay un teléfono conectado ahora mismo. Una sesión detached sigue ejecutándose; espera a que la app se reconecte.

kill

Termina sesiones de terminal. Bastan los primeros caracteres de un id de status.

$ coderemote kill b71d
killed b71d04aa (claude) in /Users/you/projects/my-app

$ coderemote kill --all              # every session in every agent

El propio agente sigue funcionando; usa stop para eso.

stop

Detiene el agente que comparte la carpeta actual, terminando su túnel y sus sesiones de terminal. Útil cuando up se ejecuta en una ventana a la que no puedes llegar.

$ coderemote stop                   # the agent for this folder
$ coderemote stop --all             # every agent on this computer

serve

Inicia el agente solo en 127.0.0.1, sin túnel y sin inicio de sesión, e imprime la URL local y el token. Para pruebas y desarrollo locales; tu teléfono no puede alcanzarlo.

$ coderemote serve
coderemote agent on http://127.0.0.1:31580
Sharing: /Users/you/projects/my-app
Token: …

requests

Imprime las peticiones que llegaron a un puerto que previsualizas desde la app, el mismo registro que muestra la app. Está hecho para un agente de programación en un terminal, como Claude Code o Codex: dile que ejecute coderemote requests y podrá ver lo que tu página o un webhook enviaron realmente, y lo que respondió tu servidor. Necesita coderemote 0.3.0 o posterior.

$ coderemote requests
#41    200   GET /api/me  8 ms  212 B  10:20:31
#42    401   POST /api/orders  5 ms  38 B  10:20:33

$ coderemote request 42
#42  POST /api/orders  ->  401
  authorization: Bearer [redacted]
  …

Ejecútalo en la carpeta compartida (o dentro de ella) para que encuentre el agente de esa carpeta; con un solo agente en marcha, sirve desde cualquier sitio. Sin un puerto, lee todos los puertos que se están previsualizando ahora. Una vista previa que detuviste conserva su registro: indica su puerto para leerlo.

Comando u opciónQué hace
requests [PORT]Una línea por petición, la más antigua primero: id, estado, método y ruta, duración, tamaño y hora.
request <ID> [PORT]Cabeceras y cuerpos de una petición. El JSON se muestra con sangría; los cuerpos de más de 64 KB no se conservan.
requests clear [PORT]Olvida las peticiones registradas, como Clear en la app.
--grep TEXTSolo las peticiones cuyo método o ruta contienen TEXT.
--failedSolo errores y respuestas 4xx/5xx.
--limit NMuestra las últimas N (por defecto 50).
--jsonSalida legible por máquinas, para scripts.
--show-secretsImprime los valores que se ocultan por defecto (ver abajo).

Los secretos se ocultan a menos que los pidas: las cabeceras Authorization (el esquema, como Bearer, se mantiene), los valores de las cookies (sus nombres se mantienen), las cabeceras con nombre de token, clave o sesión, y campos como password o access_token en cadenas de consulta, JSON y cuerpos de formulario. La salida indica cuántos valores ocultó. Añade --show-secrets cuando el agente necesite uno, por ejemplo para reutilizar un token de sesión en una prueba.

No se escribe nada en disco: el comando lee el registro que el agente guarda en memoria, las últimas 200 peticiones por puerto.

setup claude, setup codex

Instala el plugin de Code Remote en Claude Code o Codex, para que sus sesiones aparezcan en la pestaña Agents de la app y puedas responder a sus solicitudes desde el teléfono. Codex ejecuta los hooks del plugin solo después de que confíes en ellos una vez: abre Codex y escribe /hooks. --remove lo desinstala. Consulta Agentes de programación.

$ coderemote setup claude
$ coderemote setup codex

devices

Muestra los teléfonos registrados con el agente que se ejecuta en la carpeta, cuándo se registró cada uno y cuándo se vio por última vez, y su ajuste de Face ID. Un teléfono se registra solo la primera vez que se conecta después de escanear el código QR.

$ coderemote devices
$ coderemote devices revoke 94d5                       # an id prefix is enough
$ coderemote devices policy terminal+writes --window 30m

revoke quita un teléfono al instante: sus sesiones y terminales abiertas terminan, y no puede volver sin emparejarse de nuevo. policy establece qué acciones piden Face ID: none, terminal (por defecto: terminales, agentes de programación y compilaciones) o terminal+writes (también cambios en archivos y git), y con --window cuánto dura cada comprobación: 5m (por defecto), 30m o 1h. La app puede hacerlo más estricto; relajarlo desde la app pide Face ID.

rotate-token

Sustituye el token de acceso y las claves de este ordenador, y olvida todos los teléfonos registrados. Todos los teléfonos emparejados pierden el acceso al instante. Úsalo si pierdes tu único teléfono o se filtra un enlace de emparejamiento.

$ coderemote rotate-token
Token rotated. Re-pair your devices, and restart running agents.

Luego reinicia coderemote up y escanea el nuevo código QR en los dispositivos en los que sigues confiando.

tunnels

Lista los túneles de tu cuenta de Dev Tunnels y elimina los que ya nadie usa. Una cuenta puede conservar 10 túneles. Cada ordenador que ejecuta coderemote usa uno, más otro para las vistas previas mientras su agente se ejecuta, y los ordenadores antiguos o las reinstalaciones dejan los suyos. Necesita coderemote 0.3.6 o posterior.

$ coderemote tunnels
  silent-lake-pqv9b80.usw2  online · this computer's agent on port 31580 · coderemote my-mac
  brave-hill-x7k2m41.usw2   online · this computer's previews on port 31580 · coderemote preview my-mac
  quiet-fox-3hd8w2c.usw2    coderemote old-laptop

$ coderemote tunnels delete quiet-fox-3hd8w2c
deleted quiet-fox-3hd8w2c.usw2

Cada línea muestra el id del túnel, online cuando un agente lo sirve ahora mismo, para qué lo usa este ordenador y su descripción, que nombra el ordenador que lo creó. El sufijo de región (.usw2) es opcional cuando das un id.

Comando u opciónQué hace
tunnelsUna línea por túnel de la cuenta con la que iniciaste sesión.
tunnels delete <id>...Elimina esos túneles. Uno que esté en línea, o que use este ordenador, se conserva a menos que añadas --force.
--forceElimínalo igualmente. Su URL desaparece, así que los teléfonos emparejados con él tienen que volver a emparejarse; en este ordenador, el siguiente up crea uno nuevo.

Rara vez lo necesitas a mano: cuando la cuenta está llena, up y las vistas previas eliminan primero los túneles de vista previa que ningún agente sirve. Solo cuando eso no libera un hueco, up se detiene, lista los túneles de la cuenta y te pide eliminar algunos.

login

Inicia sesión en Microsoft Dev Tunnels. up lo hace por sí mismo cuando hace falta, así que solo lo ejecutas para cambiar de cuenta o cuando no hay navegador.

$ coderemote login                  # GitHub, in the browser
$ coderemote login --microsoft      # a Microsoft account
$ coderemote login --device-code    # no browser here: enter a code on another device

El teléfono debe iniciar sesión con la misma cuenta, a menos que ejecutes up --allow-anonymous.

update

Instala la última versión de coderemote del mismo modo que lo instalaste: con npm (o pnpm, yarn, bun), con Homebrew, o dentro del Node.js que descargó el script de instalación. Cuando hay una versión más nueva, up lo dice bajo los enlaces de emparejamiento; consulta a npm como mucho una vez al día y nunca ralentiza el inicio. Define CODEREMOTE_NO_UPDATE_CHECK=1 para desactivarlo.

$ coderemote update
$ coderemote --version             # the version you're running

Los agentes que ya están en marcha conservan la versión antigua hasta que los reinicies: coderemote stop --all y luego coderemote up de nuevo.

help

Imprime todos los comandos y opciones. coderemote a solas, o --help en cualquier punto de la línea, hace lo mismo, así que un error de escritura nunca empieza a compartir una carpeta por accidente.

Opciones

OpciónComandosPredeterminado
--root DIRup, serve, stopcarpeta actual
--port Nup, serve31580
--allow-anonymousupdesactivado
--webupdesactivado
--allkill, stop
--forcetunnels deletedesactivado
--microsoft, --device-codeloginGitHub, en el navegador