Go agent と CLI
Astar には Kotlin バックエンド・Nuxt フロントエンドとは別に、Go で書かれた 2 つの独立した成果物があります。混同しやすいので、まず違いを押さえてください。
agent/ | cli/ | |
|---|---|---|
| 実行場所 | 顧客の NAS / PC(常駐プロセス) | エンジニア・事務員の端末(都度実行するコマンド) |
| バイナリ名 | astar-agent | astar |
| 役割 | ファイルサーバーと Astar backend を WebSocket でリアルタイム同期する | backend の Tool Router を叩く薄いターミナルクライアント |
| 通信 | 常時接続の WSS(outbound only) | POST /api/v1/cli への都度リクエスト |
| 対象読者 | Go agent | CLI |
両者の関係
cli/ は agent/ に依存しています。astar mount / astar unmount サブコマンドは CLI 自身が FUSE マウントを実装するのではなく、astar-agent バイナリを exec 委譲で呼び出す設計です(cli/internal/agentbinary/agentbinary.go)。CLI は同じディレクトリに置かれた astar-agent を優先的に探し、なければ $PATH にフォールバックします。
逆方向の依存はありません。agent/ は cli/ を知りません。NAS 同期そのものは CLI なしで完結します。
配布経路
agent/: Docker Compose(Synology/QNAP 向け)、単体バイナリダウンロード、Linux ワンライナーインストーラの 3 経路。いずれも自己更新機能(internal/updater/)を持ち、version.jsonを定期ポーリングして新バージョンがあれば自動置換・再起動する。cli/:cli/scripts/install-cli.shがastar本体に加えてastar-agentを同梱インストールする(--no-agentで skip 可)。同じディレクトリにastarとastar-agentを揃えることでastar mountの exec 委譲が解決できる。インストーラは同時に Claude Code / Codex 向けの skill ファイル(SKILL.md.claude/SKILL.md.codex)もダウンロードし、ローカル AI エージェントにastarコマンドの使い方を知らせる。
agent/ と cli/ はどちらも Go module が別(astar-agent / astar-cli)で、go.mod も別々です。同じ Go ツールチェーンを使いますが、依存関係を共有しない独立したビルド単位です。
次に読む
- Go agent — NAS 同期エージェント — watcher / websocket / webrtc など主要パッケージの役割
- astar CLI — 何ができるか、backend とどう繋がるか