能書き
タイトルを見てピンと来た方。OpenCodeに相当詳しいとお見受けします。
OpenCode CLIについて調査していて気付いたのですが、OpenCodeってサーバーになれるんですね。そして別マシンのOpenCodeから接続できます。
この使い方はぐぐってみても誰もやっていないようです。ま、それはそうですな。しかし私の場合は使い道があります。
前々回の冒頭で触れましたが、十倍遅くなるのなら十倍働かせようと。その為、この構造は非常に都合がよろしいのです。
とりあえず前回はOpenCodeを、24時間電源入れっ放しにしているマシン(の上にProxmoxVEで作ったコンテナ)で動かせるようにしました。
今回は普段使いのWindows上にOpenCodeを入れて、前回のOpenCodeに接続してみます。折角なのでWSL2ではなくWindowsネイティブでやってみます。
前提
- 24時間電源入れっ放しにしているマシンにはProxmoxVEがインストールされていて、そのコンテナ上にOpenCodeをインストールした
- 私のAIコーディングの知識はまだまだ入門にも至っていなくて、気合を入れて学習中
目標
- Windows11にOpenCodeをインストール
- WSL2ではなくてWindowsネイティブ
- 既にインストールしているOpenCodeをサーバーとして起動して、WindowsのOpenCodeから接続
参考文献
OpenCodeインストール手順。
npmをWindows11でインストールする手順。
OpenCode CLI のコマンドに関する公式ドキュメント。ここで紹介されているコマンドの内でserveとattachを使います。
OpenCodeの内部構造についての記事です。この記事を拝見した時、この使い方に気付いたのでした。
前回と前々回で私のAI環境を構築してきました。
- おうちAI構築報告:グラボの無いマシンにllama.cppをインストール - Qiita
- おうちAI構築報告:OpenCodeをインストールしてローカルLLM(llama.cpp)に接続 - Qiita
Windows11にnpmをインストール
参考文献の通りです。
コマンドプロンプトを起動し、下記コマンドを実行します。
winget install -e --id OpenJS.NodeJS.LTS
完了したら軽く確認。
node -v
npm -v
私の場合、下記のようになりました。
>node -v
v24.18.0
>npm -v
11.16.0
Windows11にOpenCodeをインストール
公式の通りです。引き続き、コマンドプロンプトで下記を実行します。
npm i -g opencode-ai
インストールできたら軽く確認。
opencode --version
こんな感じです。
>opencode --version
1.17.18
なんか、ここまであっさり動いてしまいましたが。まぁ、変に嵌まるより良かったです。
OpenCodeを接続
さぁここからです。
opencode serve
前回インストールしたOpenCodeをサーバーとして実行します。開発用ユーザーは私の名前katzで、マシン(というかコンテナ)のIPアドレスは172.16.1.107になります。
ssh katz@172.16.1.107
プロジェクト用のディレクトリを作成します。
cd
mkdir prj
cd prj
ここでOpenCodeをサーバーとして実行。ポート番号はとりあえず4096にしておきましょうか。
opencode serve --hostname 0.0.0.0 --port 4096 &
opencode attach
普段使いのWindowsマシン上でOpenCodeを起動し、上記のサーバーに接続します。
opencode attach http://172.16.1.107:4096
接続できました!
良く見ると画面左下の、カレントディレクトリと思われるパスが、ちゃんとサーバー側のカレントディレクトリ(/home/katz/prj)の表示になっています。
サーバー側は上記のようにバックグラウンドで動かしておけば、そのセッションを終了してもWindowsから接続できるようになります。
Windows側で/exitした後、OpenCodeセッションの続きに接続するには、-cオプションを付けるようです。
opencode attach http://172.16.1.107:4096 -c
BASIC認証
環境変数OPENCODE_SERVER_PASSWORDに文字列を設定すれば、BASIC認証も利用できるようです。
read -s OPENCODE_SERVER_PASSWORD
export OPENCODE_SERVER_PASSWORD
opencode serve --hostname 0.0.0.0 --port 4096 &
opencode attach http://172.16.1.107:4096 -p "OPENCODE_SERVER_PASSWORDに設定したパスワード"
まぁちょっとした認証ですね。やらないよりはマシなのかな。
仕舞い
OpenCodeでエージェントを寝てる間も動かせる環境が出来ました!
