ホスト
ホスト は、このコンピューターのファイルと、それに接続されたマシンを、ワークベンチに渡すプログラムです。コンピューターごとに、ホストは必ず一つだけです。デスクトップアプリもホストです。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 コマンド
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-serial | GRBL 1.1、USB シリアル | ページ | ループバック |
grbl-tcp | FluidNC / grblHAL、telnet(TCP 23) | ホスト | ループバック |
marlin-serial | Marlin、USB シリアル | ページ | ループバック |
smoothie-serial | Smoothieware、USB シリアル | ページ | ループバック |
linuxcnc-rsh | LinuxCNC 2.9 linuxcncrsh(TCP 5007) | ホスト | ループバック |
octoprint-http | OctoPrint 1.x | ホスト | ループバック |
moonraker-http | Moonraker 経由の Klipper | ホスト | ループバック |
prusalink-http | PrusaLink | ホスト | ループバック |
repetier-http | Repetier-Server | ホスト | ループバック |
duet-http | Duet / RepRapFirmware 3.1 以降 | ホスト | ループバック |
feetech-sts-serial | Feetech STS/SCS サーボバス(SO-100/101) | ページ | ループバック |
dynamixel2-serial | Dynamixel Protocol 2.0(Koch、WidowX) | ページ | ループバック |
xarm-tcp | UFACTORY xArm / Lite 6(TCP 502) | ホスト | ループバック |
host-relay | CommandAGI ESP32 アーム、LAN HTTP | ホスト | ループバック |
wifi8k-drone | ESP32 リンク経由の WIFI_8K / E99 ドローン | ページ | ループバック |
ble-hid-relay | BLE HID リレー(ESP32) | ページ | ループバック |
openpnp-files | OpenPnP のジョブ引き渡し(ファイル) | ホスト | ループバック |
os-input | このコンピューターのキーボードとポインター | ホスト | ループバック |
cdp-tab | ブラウザーのタブ(Chrome DevTools Protocol) | ホスト | ループバック |
cdp-screencast | ブラウザーのタブの映像 | ホスト | ループバック |
pty-shell | このコンピューターのシェル | ホスト | ループバック |
python-kernel | Python カーネル(ノートブック) | ホスト | ループバック |
display-capture | 画面キャプチャ | ページ | なし |
uvc-camera | USB カメラ | ページ | なし |
microphone | マイク | ページ | なし |
シミュレーションのワールドは、代わりに二つのシミュレーターを使います。G-code チャンネルには gcode-sim、サーボバスには servo-sim です。
次へ
エージェントにマシンへの権限を与えます。エージェントと常設の権限付与 を読んでください。