Documentación · 02

Conectar una máquina.

Una máquina llega a CommandAGI a través de un host — el programa de la computadora a la que está conectada — o directamente desde la página del navegador.

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:

archivoqué contiene
host.jsonla cuenta a la que está vinculado este host, su id y su configuración de vínculo (solo el propietario)
grants.jsonlos permisos permanentes creados en este host (solo el propietario)
principals.jsonhashes de las credenciales de los principales y las claves de cuenta de confianza (solo el propietario)
mcp.jsonel endpoint MCP local y su token por arranque (solo el propietario)
daemon.jsonqué proceso hace de host y en qué puerto
settings.json, recents.json, devices/, worlds/tus ajustes y definiciones a nivel de usuario
daemon.logel 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

shell
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 start ejecuta el host en segundo plano y escribe su log en ~/.commandagi/daemon.log. --no-platform hace de host localmente sin vincularse a una cuenta.
  • daemon stop se niega mientras la app de escritorio sea el host — ciérrala desde la propia app.
  • mcp es el relé stdio para agentes (consulta SDK y MCP). grant crea y revoca permisos permanentes (consulta Agentes y permisos permanentes).
  • threed instala el servicio local de diseño 3D; code eval evalú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_KEY con 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.

drivermáquina y protocolose ejecuta enverificado
grbl-serialGRBL 1.1, serie USBpáginaloopback
grbl-tcpFluidNC / grblHAL, telnet (TCP 23)hostloopback
marlin-serialMarlin, serie USBpáginaloopback
smoothie-serialSmoothieware, serie USBpáginaloopback
linuxcnc-rshLinuxCNC 2.9 linuxcncrsh (TCP 5007)hostloopback
octoprint-httpOctoPrint 1.xhostloopback
moonraker-httpKlipper vía Moonrakerhostloopback
prusalink-httpPrusaLinkhostloopback
repetier-httpRepetier-Serverhostloopback
duet-httpDuet / RepRapFirmware 3.1+hostloopback
feetech-sts-serialbus de servos Feetech STS/SCS (SO-100/101)páginaloopback
dynamixel2-serialDynamixel Protocol 2.0 (Koch, WidowX)páginaloopback
xarm-tcpUFACTORY xArm / Lite 6 (TCP 502)hostloopback
host-relaybrazo ESP32 de CommandAGI, HTTP por LANhostloopback
wifi8k-dronedron WIFI_8K / E99 mediante un enlace ESP32páginaloopback
ble-hid-relayrelé BLE HID (ESP32)páginaloopback
jpeg-pushcámara de red que envía JPEG (ESP32-CAM)hostloopback
openpnp-filesentrega de trabajos a OpenPnP (archivos)hostloopback
os-inputteclado y puntero de esta computadorahostloopback
cdp-tabuna pestaña del navegador (Chrome DevTools Protocol)hostloopback
cdp-screencastel video de una pestaña del navegadorhostloopback
pty-shelluna shell en esta computadorahostloopback
python-kernelun kernel de Python (notebooks)hostloopback
display-capturecaptura de pantallapáginanone
uvc-cameracámara USBpáginanone
microphonemicrófonopáginanone

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.