ドキュメント · 02

マシンを 接続する.

マシンは、ホストを通じて CommandAGI に届きます。ホストとは、マシンが接続されているコンピューター上のプログラムです。または、ブラウザーのページから直接届きます。

ホスト

ホスト は、このコンピューターのファイルと、それに接続されたマシンを、ワークベンチに渡すプログラムです。コンピューターごとに、ホストは必ず一つだけです。デスクトップアプリもホストです。commandagi daemon start で起動するバックグラウンドサービスもホストです。デスクトップアプリが起動すると、動いているサービスからホストの役目を引き継ぎます。

ホストは 127.0.0.1 だけで待ち受けます(既定のポートは 4173、または空いているポート)。状態は ~/.commandagi に保存されます。

ファイル内容
host.jsonこのホストがリンクされているアカウント、その ID、リンクの設定(所有者だけが読める)
grants.jsonこのホストで作られた常設の権限付与(所有者だけが読める)
principals.jsonプリンシパルの認証情報のハッシュと、信頼されたアカウントの鍵(所有者だけが読める)
mcp.jsonローカル MCP エンドポイントと、起動ごとのトークン(所有者だけが読める)
daemon.jsonどのプロセスがホストしているか、どのポートか
settings.json、recents.json、devices/、worlds/ユーザーレベルの設定と定義
daemon.logホストのログ

入手先: ホストは デスクトップアプリ に含まれています。また、npm パッケージ @commandagi/host として単独でも提供されます(npm install -g @commandagi/host、Node 22 以降)。その commandagi コマンドが、下に示すホストのコマンドラインです。npm の commandagi パッケージは SDK だけです。SDK と MCP を参照してください。

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 はホストをバックグラウンドで動かし、~/.commandagi/daemon.log に記録します。--no-platform は、アカウントにリンクせずにローカルでホストします。
  • daemon stop は、デスクトップアプリがホストである間は実行を拒否します。アプリから終了してください。
  • mcp は、エージェント用の stdio 中継です(SDK と MCP を参照)。grant は常設の権限付与を作成・取り消しします(エージェントと常設の権限付与 を参照)。
  • threed はローカルの 3D 設計サービスを入れます。code eval は、コードのパーツをヘッドレスで評価し、その操作グラフを JSON で出力します。

ホストをアカウントにリンクする

アカウントにリンクされたホストは、そのアカウントのワークベンチからどこからでも使え、そのアカウントとして動きます。リンクすることは、ログインすることです。

  • デスクトップアプリでは、求められたときにログインします。
  • ホストが配信するワークベンチのページでは、左のドックからログインします。ホストがキーを確認し、保持します。
  • シェルからは、デーモンを起動する前に COMMANDAGI_API_KEY に API キーを設定します。

アカウントの鍵は host.json に保存されます。これは所有者だけが読める平文のファイルです。そのため、コピーした ~/.commandagi でもログイン状態が保たれます。ログアウトすると、この鍵は削除されます。

ホスト同士のペアリング

別々のコンピューターのホストは、双方向にペアリングできます。一方のホストが申し出て、もう一方が受け入れます。ペアリングは常に人が決めます。ペアリングの後、エージェントは他のホストを一覧にし、呼び出せます。ただし、そこに存在する付与の範囲内に限られます。

ページドライバー: ブラウザーからの USB と Bluetooth

一部のドライバーは、WebSerial と Web Bluetooth を使い、ワークベンチのページ自体で動きます。ブラウザーがポートを開くのは あなた がそれを選んだときだけです。そのため、エージェントは人が行った接続だけを使い、自分でポートを開くことはありません。ネットワーク上のマシン(プリンターの HTTP API、TCP で接続する FluidNC コントローラー)は、ホストが動かします。

LAN 上のマシンからの接続を待ち受けるドライバーには、設定 "devices.lanListener": true が必要です。

ドライバーの一覧

すべてのドライバーは、何に対して検証されたかを示します。なし、ループバック(プロトコルの忠実なソフトウェアの模擬に対して)、ベンチ、ハードウェア のいずれかです。ドライバーは、実際に行われた以上のことを主張しません。ハードウェアでの試運転を済ませたマシンは、まだありません。

ドライバーマシンとプロトコル実行場所検証
grbl-serialGRBL 1.1、USB シリアルページループバック
grbl-tcpFluidNC / grblHAL、telnet(TCP 23)ホストループバック
marlin-serialMarlin、USB シリアルページループバック
smoothie-serialSmoothieware、USB シリアルページループバック
linuxcnc-rshLinuxCNC 2.9 linuxcncrsh(TCP 5007)ホストループバック
octoprint-httpOctoPrint 1.xホストループバック
moonraker-httpMoonraker 経由の Klipperホストループバック
prusalink-httpPrusaLinkホストループバック
repetier-httpRepetier-Serverホストループバック
duet-httpDuet / RepRapFirmware 3.1 以降ホストループバック
feetech-sts-serialFeetech STS/SCS サーボバス(SO-100/101)ページループバック
dynamixel2-serialDynamixel Protocol 2.0(Koch、WidowX)ページループバック
xarm-tcpUFACTORY xArm / Lite 6(TCP 502)ホストループバック
host-relayCommandAGI ESP32 アーム、LAN HTTPホストループバック
wifi8k-droneESP32 リンク経由の WIFI_8K / E99 ドローンページループバック
ble-hid-relayBLE HID リレー(ESP32)ページループバック
openpnp-filesOpenPnP のジョブ引き渡し(ファイル)ホストループバック
os-inputこのコンピューターのキーボードとポインターホストループバック
cdp-tabブラウザーのタブ(Chrome DevTools Protocol)ホストループバック
cdp-screencastブラウザーのタブの映像ホストループバック
pty-shellこのコンピューターのシェルホストループバック
python-kernelPython カーネル(ノートブック)ホストループバック
display-capture画面キャプチャページなし
uvc-cameraUSB カメラページなし
microphoneマイクページなし

シミュレーションのワールドは、代わりに二つのシミュレーターを使います。G-code チャンネルには gcode-sim、サーボバスには servo-sim です。

次へ

エージェントにマシンへの権限を与えます。エージェントと常設の権限付与 を読んでください。