Dokumentasi · 02

Menghubungkan mesin.

Mesin terhubung ke CommandAGI melalui host — program di komputer tempat mesin itu dicolokkan — atau langsung dari halaman peramban.

Host

Host adalah program yang memberi meja kerja akses ke berkas komputer ini dan mesin yang terpasang padanya. Hanya ada satu host per komputer. Aplikasi desktop adalah host, begitu juga layanan latar belakang yang dimulai dengan commandagi daemon start. Saat aplikasi desktop mulai, ia mengambil alih dari layanan yang sedang berjalan.

Host hanya mendengarkan di 127.0.0.1 (port 4173 secara default, atau port bebas mana pun). Host menyimpan statusnya di ~/.commandagi:

berkasisinya
host.jsonakun yang ditautkan ke host ini, id-nya, dan pengaturan tautannya (hanya pemilik)
grants.jsonizin tetap yang dibuat di host ini (hanya pemilik)
principals.jsonhash kredensial prinsipal dan kunci akun tepercaya (hanya pemilik)
mcp.jsonendpoint MCP lokal dan token per peluncuran (hanya pemilik)
daemon.jsonproses mana yang menjadi host, dan di port mana
settings.json, recents.json, devices/, worlds/pengaturan tingkat pengguna dan definisi Anda
daemon.loglog host

Asalnya dari mana: host dikemas di dalam aplikasi desktop, dan juga berdiri sendiri sebagai paket npm @commandagi/host (npm install -g @commandagi/host, Node 22 atau lebih baru). Perintah commandagi dari paket itu adalah baris perintah host di bawah ini. Paket commandagi di npm hanya berisi SDK; lihat SDK dan MCP.

Perintah 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 menjalankan host di latar belakang dan mencatat ke ~/.commandagi/daemon.log. --no-platform men-host secara lokal tanpa menautkan ke akun.
  • daemon stop menolak selama aplikasi desktop menjadi host. Keluarlah dari aplikasi sebagai gantinya.
  • mcp adalah relai stdio untuk agen (lihat SDK dan MCP). grant membuat dan mencabut izin tetap (lihat Agen dan izin tetap).
  • threed memasang layanan desain 3D lokal. code eval mengevaluasi bagian kode secara headless dan mencetak grafik operasinya sebagai JSON.

Tautkan host ke akun Anda

Host yang ditautkan ke akun dapat dijangkau dari meja kerja akun itu di mana saja, dan bertindak sebagai akun itu. Menautkan berarti masuk:

  • di aplikasi desktop, masuk saat diminta;
  • di halaman meja kerja yang disajikan oleh host, masuk dari dok kiri. Host memeriksa kunci dan menyimpannya;
  • dari shell, atur COMMANDAGI_API_KEY ke kunci API sebelum memulai daemon.

Kunci akun disimpan di host.json, berkas biasa yang hanya dapat dibaca pemilik, sehingga salinan ~/.commandagi tetap masuk. Keluar akan menghapusnya.

Pasangkan host satu sama lain

Host di komputer yang berbeda dapat dipasangkan, dua arah, dalam satu tindakan: satu host menawarkan, dan host lain menerima. Memasangkan selalu merupakan keputusan seseorang. Setelah dipasangkan, agen dapat mencantumkan host lain dan memanggilnya, dalam izin apa pun yang ada di sana.

Driver halaman: USB dan Bluetooth dari peramban

Beberapa driver berjalan di halaman meja kerja itu sendiri, menggunakan WebSerial dan Web Bluetooth. Peramban hanya membuka port saat Anda memilihnya. Dengan begitu, agen selalu menggunakan koneksi yang dibuat seseorang dan tidak pernah membuka koneksi sendiri. Mesin jaringan (API HTTP printer, pengendali FluidNC di TCP) dikendalikan oleh host.

Driver yang mendengarkan mesin yang menghubungi melalui LAN memerlukan pengaturan "devices.lanListener": true.

Katalog driver

Setiap driver menyatakan terhadap apa ia telah diverifikasi: none, loopback (terhadap tiruan perangkat lunak yang setia pada protokol), bench atau hardware. Driver tidak pernah mengklaim lebih dari yang telah dilakukan. Belum ada mesin yang dikomisikan pada perangkat keras.

drivermesin dan protokolberjalan diterverifikasi
grbl-serialGRBL 1.1, serial USBhalamanloopback
grbl-tcpFluidNC / grblHAL, telnet (TCP 23)hostloopback
marlin-serialMarlin, serial USBhalamanloopback
smoothie-serialSmoothieware, serial USBhalamanloopback
linuxcnc-rshLinuxCNC 2.9 linuxcncrsh (TCP 5007)hostloopback
octoprint-httpOctoPrint 1.xhostloopback
moonraker-httpKlipper melalui Moonrakerhostloopback
prusalink-httpPrusaLinkhostloopback
repetier-httpRepetier-Serverhostloopback
duet-httpDuet / RepRapFirmware 3.1+hostloopback
feetech-sts-serialBus servo Feetech STS/SCS (SO-100/101)halamanloopback
dynamixel2-serialDynamixel Protocol 2.0 (Koch, WidowX)halamanloopback
xarm-tcpUFACTORY xArm / Lite 6 (TCP 502)hostloopback
host-relayLengan ESP32 CommandAGI, HTTP LANhostloopback
wifi8k-droneDrone WIFI_8K / E99 melalui tautan ESP32halamanloopback
ble-hid-relayRelai BLE HID (ESP32)halamanloopback
openpnp-filesPenyerahan pekerjaan OpenPnP (berkas)hostloopback
os-inputkeyboard dan penunjuk komputer inihostloopback
cdp-tabsebuah tab peramban (Chrome DevTools Protocol)hostloopback
cdp-screencastvideo dari sebuah tab perambanhostloopback
pty-shellsebuah shell di komputer inihostloopback
python-kernelkernel Python (notebook)hostloopback
display-capturetangkapan layarhalamannone
uvc-camerakamera USBhalamannone
microphonemikrofonhalamannone

Dunia simulasi menggunakan dua simulator sebagai gantinya: gcode-sim untuk saluran G-code dan servo-sim untuk bus servo.

Berikutnya

Berikan agen wewenang atas sebuah mesin: Agen dan izin tetap.