メインコンテンツへ

Go agent と CLI

Astar には Kotlin バックエンド・Nuxt フロントエンドとは別に、Go で書かれた 2 つの独立した成果物があります。混同しやすいので、まず違いを押さえてください。

agent/cli/
実行場所顧客の NAS / PC(常駐プロセス)エンジニア・事務員の端末(都度実行するコマンド)
バイナリ名astar-agentastar
役割ファイルサーバーと Astar backend を WebSocket でリアルタイム同期するbackend の Tool Router を叩く薄いターミナルクライアント
通信常時接続の WSS(outbound only)POST /api/v1/cli への都度リクエスト
対象読者Go agentCLI

両者の関係

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.shastar 本体に加えて astar-agent を同梱インストールする(--no-agent で skip 可)。同じディレクトリに astarastar-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 ツールチェーンを使いますが、依存関係を共有しない独立したビルド単位です。

次に読む