El host
El host es el programa que da al banco de trabajo los archivos de esta computadora y las máquinas conectadas a ella. Hay exactamente un host por computadora. La app de escritorio es un host; también lo es el servicio en segundo plano, que se inicia con commandagi daemon start. Cuando la app de escritorio arranca, toma el relevo de un servicio en marcha.
El host escucha solo en 127.0.0.1 (el puerto 4173 por defecto, o cualquier puerto libre) y guarda su estado en ~/.commandagi:
| archivo | qué contiene |
|---|---|
host.json | la cuenta a la que está vinculado este host, su id y su configuración de vínculo (solo el propietario) |
grants.json | los permisos permanentes creados en este host (solo el propietario) |
principals.json | hashes de las credenciales de los principales y las claves de cuenta de confianza (solo el propietario) |
mcp.json | el endpoint MCP local y su token por arranque (solo el propietario) |
daemon.json | qué proceso hace de host y en qué puerto |
settings.json, recents.json, devices/, worlds/ | tus ajustes y definiciones a nivel de usuario |
daemon.log | el log del host |
Disponible hoy: el host viene dentro de la app de escritorio. La línea de comandos propia del host — commandagi daemon, grant, mcp — se documenta aquí a medida que se construye, pero aún no está publicada como paquete instalable. (El paquete commandagi que hay hoy en npm es la línea de comandos del SDK; consulta SDK y MCP.)
El comando commandagi
commandagi daemon start [--port N] [--project DIR] [--name X] [--no-platform]
commandagi daemon status | stop | logs
commandagi daemon run [same flags, in the foreground]
commandagi mcp [--credential-file F]
commandagi grant add | list | revoke …
commandagi threed install | status
commandagi code eval <path> [--input name=value]…daemon startejecuta el host en segundo plano y escribe su log en~/.commandagi/daemon.log.--no-platformhace de host localmente sin vincularse a una cuenta.daemon stopse niega mientras la app de escritorio sea el host — ciérrala desde la propia app.mcpes el relé stdio para agentes (consulta SDK y MCP).grantcrea y revoca permisos permanentes (consulta Agentes y permisos permanentes).threedinstala el servicio local de diseño 3D;code evalevalúa una pieza en código sin interfaz e imprime su grafo de operaciones como JSON.
Vincular el host a tu cuenta
Un host vinculado a una cuenta es accesible desde el banco de trabajo de esa cuenta en cualquier lugar, y actúa como esa cuenta. Vincularlo es iniciar sesión:
- en la app de escritorio, inicia sesión cuando te lo pida;
- en la página del banco de trabajo que sirve el host, inicia sesión desde el panel izquierdo — el host comprueba la clave y la guarda;
- desde una shell, define
COMMANDAGI_API_KEYcon una clave de API antes de iniciar el daemon.
La clave de la cuenta se guarda en host.json, un archivo simple accesible solo para el propietario, así que una copia de ~/.commandagi mantiene la sesión iniciada. Cerrar sesión la elimina.
Emparejar hosts entre sí
Los hosts de distintas computadoras pueden emparejarse, en ambos sentidos, en un solo acto: un host ofrece y el otro acepta. Emparejar es siempre una decisión de una persona. Una vez emparejados, los agentes pueden enumerar los otros hosts y llamarlos — dentro de los permisos que existan allí.
Drivers de página: USB y Bluetooth desde el navegador
Algunos drivers se ejecutan en la propia página del banco de trabajo, con WebSerial y Web Bluetooth. Un navegador solo abre un puerto cuando tú lo eliges, así que un agente siempre usa una conexión que hizo una persona y nunca abre una por su cuenta. Las máquinas de red (la API HTTP de una impresora, un controlador FluidNC por TCP) las controla el host.
Los drivers que esperan a que las máquinas se conecten por la LAN necesitan el ajuste "devices.lanListener": true.
Catálogo de drivers
Cada driver indica contra qué se ha verificado: none (nada), loopback (contra una simulación de software fiel al protocolo), bench (banco) o hardware. Un driver nunca afirma más de lo que se hizo. Todavía no se ha puesto en servicio ninguna máquina en hardware.
| driver | máquina y protocolo | se ejecuta en | verificado |
|---|---|---|---|
grbl-serial | GRBL 1.1, serie USB | página | loopback |
grbl-tcp | FluidNC / grblHAL, telnet (TCP 23) | host | loopback |
marlin-serial | Marlin, serie USB | página | loopback |
smoothie-serial | Smoothieware, serie USB | página | loopback |
linuxcnc-rsh | LinuxCNC 2.9 linuxcncrsh (TCP 5007) | host | loopback |
octoprint-http | OctoPrint 1.x | host | loopback |
moonraker-http | Klipper vía Moonraker | host | loopback |
prusalink-http | PrusaLink | host | loopback |
repetier-http | Repetier-Server | host | loopback |
duet-http | Duet / RepRapFirmware 3.1+ | host | loopback |
feetech-sts-serial | bus de servos Feetech STS/SCS (SO-100/101) | página | loopback |
dynamixel2-serial | Dynamixel Protocol 2.0 (Koch, WidowX) | página | loopback |
xarm-tcp | UFACTORY xArm / Lite 6 (TCP 502) | host | loopback |
host-relay | brazo ESP32 de CommandAGI, HTTP por LAN | host | loopback |
wifi8k-drone | dron WIFI_8K / E99 mediante un enlace ESP32 | página | loopback |
ble-hid-relay | relé BLE HID (ESP32) | página | loopback |
jpeg-push | cámara de red que envía JPEG (ESP32-CAM) | host | loopback |
openpnp-files | entrega de trabajos a OpenPnP (archivos) | host | loopback |
os-input | teclado y puntero de esta computadora | host | loopback |
cdp-tab | una pestaña del navegador (Chrome DevTools Protocol) | host | loopback |
cdp-screencast | el video de una pestaña del navegador | host | loopback |
pty-shell | una shell en esta computadora | host | loopback |
python-kernel | un kernel de Python (notebooks) | host | loopback |
display-capture | captura de pantalla | página | none |
uvc-camera | cámara USB | página | none |
microphone | micrófono | página | none |
Los mundos de simulación usan en su lugar dos simuladores: gcode-sim para los canales de G-code y servo-sim para los buses de servos.
Siguiente
Dale a un agente autoridad sobre una máquina: Agentes y permisos permanentes.