開発チームでAIコーディングエージェントのOpenCodeを使っていると、「2.0でセッション共有がデフォルトになった」という報道や、「OpenCodeで認証情報が漏れた」という海外の投稿を見て、手元の設定で何が外に出ているのかを確かめたくなります。OpenCodeには、モデルの提供元のAPIキーやログイン情報が保存されています。発注側の責任者としても、委託先の開発者のPCで何が共有され、何が鍵になっているのかは知っておきたいところです。
本記事では、OpenCodeのリポジトリ(anomalyco/opencode)の変更履歴とSECURITY.mdを確認したうえで、npmで配布されている @opencode/cli 2.0.32 を、外部と通信できないように隔離した編集部の検証環境で動かしました。ログインやモデルの呼び出しはしていません。
「セッション共有」の中身は手元の常駐サービス
まず、入れているのが2.0かどうかを確かめます。npmでは、2.0系は従来の opencode-ai とは別のパッケージ @opencode/cli で配布されています。@opencode/cli の 2.0.0 は2026年9月11日(UTC)に公開され、確認時点の最新は 2.0.32(2026年10月16日)でした。開発元のAnomalyが公式ブログで2.0を紹介したのは2026年10月12日です。一方、opencode-ai の最新は 1.19.3 のままです。リポジトリのREADMEのインストール手順も npm i -g @opencode/cli@latest や https://opencode.ai/v2/install に変わっています。opencode --version が opencode v2.0.32 のように2で始まれば2.0系です。
2.0.32 の opencode --help には、次の2つのオプションがあります。
--standalone Run with a private server instead of the background service
--server string Connect to a server URL instead of the background service
つまり、何も指定しなければ、ターミナルの画面は「background service」(常駐サービス)につながります。編集部の検証環境で opencode service start を実行すると、サービスは http://127.0.0.1:49374 で待ち受けました。自分のPCの中からしか接続できないアドレスです。公式ドキュメントでも、既定ではlocalhostだけで待ち受け、ポートはmacOS・Linux・WSLで49374、Windowsで45278とされています。ブラウザーやアプリから同じサービスにつなぐには、opencode pair が出す接続用のリンクを使います。
公式ドキュメントは、OpenCodeがユーザーアカウントごとに1つの常駐サービスを見つけるか起動し、手元のすべての画面がそこにつながると説明しています。公式ブログも、ターミナル、Web、デスクトップアプリが同じ常駐プロセスと話す構成になったと書いています。報道の「ターミナル・Web・デスクトップでセッション共有」は、この仕組みのことです。
公開リンクで会話を他人に見せる共有は、2.0系では使えません。2.0.30(2026年10月15日)の変更履歴に「Remove the retired session-sharing backend and unavailable /share command」(終了した共有のバックエンドと、使えなくなっていた /share コマンドを削除)とあります。
サービスのパスワードは、保存したAPIキーへの鍵
常駐サービスは、パスワードなしでは操作できませんでした。検証環境で試すと、パスワードなしでも画面のHTMLは返りますが、/api/session や /api/config などのAPIは、パスワードなしだと401(認証が必要)、パスワードを付けると200でした。パスワードは、未設定なら起動時にランダムな値が作られ、~/.config/opencode/service.json に保存されます。ファイルの権限は所有者だけが読める 600 でした。
注意したいのは、このパスワードで何ができるかです。サービスが公開しているAPIの定義(OpenAPI)には、GET /api/credential が「List every stored integration credential, including its secret value.」(保存されたすべての認証情報を、秘密の値も含めて一覧で返す)と書かれています。CLIの opencode auth export も「print stored credentials, including secrets, as JSON」(秘密の値を含めてJSONで出力)です。サービスのパスワードは、保存したAPIキーを丸ごと読み出せる鍵と同じ重さで扱う必要があります。
設定を確かめるコマンドは次のとおりです。opencode service get はパスワードを除いた設定を表示し、opencode service get password はパスワードそのものを表示します。後者の出力は、チャットやチケットに貼らないようにします。
opencode --version # 2.0系かどうか
opencode service status # 常駐サービスの状態と待ち受けのURL
opencode service get # パスワード以外の設定(hostname・remote・cors・env など)
opencode service get remote # インターネットからの接続を許しているか(true/false)
opencode auth list # 保存されている認証情報の一覧
opencode service set env <名前> <値> で常駐サービスに渡す環境変数を設定すると、その値は service.json にそのまま書かれ、opencode service get でも表示されました。APIキーをここに入れると、ファイルを読める人やこのコマンドを実行できる人に見えることになります。

外へ開く設定と、常駐サービスを使わない設定
サービスの設定項目は、2.0.32 では disabled・remote・hostname・port・password・cors・env の7つでした(それ以外の名前を指定すると「Unknown service config key」のエラー)。社外への露出に関わるのは次の3つです。
| 設定 | 既定 | 変えると |
|---|---|---|
hostname | 未設定(127.0.0.1 で待ち受け) | 0.0.0.0 にすると同じネットワークのほかの端末から接続できる |
remote | false | true か opencode pair --remote で、OpenTunnel経由でインターネットから接続できる |
cors | 空 | 指定したWebサイトから、ブラウザー経由でサービスを呼べる |
opencode pair --remote を初めて実行すると、「This will expose your OpenCode server to the internet.」(サーバーをインターネットに公開します)という警告と確認が出ます(2.0.27 の変更履歴でも、確認を加えたと説明しています)。対話できない環境では --yes を付けないと有効になりません。ただし公式ドキュメントによると、一度承諾すると、その後は opencode service set remote false で無効にしたあとでも確認は出ません。2回目以降は確認なしで公開されると考えておきます。元に戻すときは opencode service set remote false か opencode service unset remote を使います。
常駐サービスそのものを使わない方法も2つあります。
- 起動のたびに
--standaloneを付ける(ヘルプの説明は「Run with a private server instead of the background service」) opencode service set disabled trueで無効にする。配布されたCLIのコードでは、--standaloneかdisabledが true のとき、常駐サービスの代わりに専用のサーバーを使います。検証環境でdisabledを true にするとopencode pairは「Pairing requires the background service」で止まりました
なお、リポジトリのSECURITY.md(確認時点)は「OpenCode does not sandbox the agent」(エージェントをサンドボックスで隔離しない)としたうえで、「Server mode is opt-in only」(サーバーモードは利用者が選んだときだけ)と書いています。2.0.32 のCLIは何も指定しないと常駐サービスにつながり、公式ドキュメントのWebのページも「available by default and password protected」(既定で使え、パスワードで保護される)としています。SECURITY.mdの記述をそのまま2.0系の既定と読まないほうが安全です。エージェントの隔離については、コーディングエージェントのサンドボックスを整理した記事も参考になります。
「認証情報が漏れた」という投稿について
2026年10月17日にHacker Newsで「OpenCode Hacked: User credentials leaked」という投稿が注目を集めました。リンク先は、同じ日(UTC)のOpenCodeの公式X(旧Twitter)アカウントの投稿です。投稿は「We had a security breach last night related to a large scale distillation attack that impacted 1.4% of OpenCode Console users」(大規模な蒸留攻撃に関連するセキュリティ侵害が昨夜あり、OpenCode Consoleの利用者の1.4%が影響を受けた)としています。対象の利用者にはメールで知らせたこと、対応が続いていて詳細はまだ出せないことも書かれています。
OpenCode Consoleは、公式ドキュメントによると任意で使うオンラインのサービスです。チームのワークスペース、モデルの利用、Consoleのゲートウェイ経由で自分の提供元アカウントをつなぐ機能などがあり、本記事で扱う手元の常駐サービスとは別のものです。ただし公式の投稿は、何が漏れたのか、手元のCLIに保存した認証情報が関わるかを説明していません。リポジトリの変更履歴(2.0.32 まで)、SECURITY.md、GitHubのセキュリティアドバイザリにも、この件の記載は見当たりませんでした(2026年10月20日時点)。このため本記事では、公式の投稿に書かれた範囲を超えて影響を断定しません。
Consoleで提供元のアカウントやAPIキーをつないでいる場合は、公式からのメールと続報を確認し、つないだキーの入れ替えを検討してください。あわせて、どのAPIキーやアカウントをOpenCodeに保存しているかを opencode auth list で一覧にしておくと、入れ替えが必要になったときにすぐ動けます(いずれも編集部の提案)。
開発チームで決めておくこと(編集部の提案)
- 2.0系かどうかを把握する: 2.0系は
@opencode/cli、従来のopencode-aiは1.x系です。本記事の内容は2.0.32で確かめたもので、1.x系の挙動は確認していません remoteとhostnameを既定のままにする:opencode service getでremoteが無く、hostnameが未設定か127.0.0.1であることを確かめます。スマホや別の端末から使う必要があるときだけ、期間を決めて有効にします- 共有のサーバーやCIでは常駐サービスを使わない: 複数人がログインするマシンや自動実行では、
--standaloneかdisabledを使い、常駐サービスを起動しない運用にします - APIキーを
service set envに入れない: 値がservice.jsonにそのまま残ります。キーは各提供元の管理画面で、用途ごとに分けて発行します
常駐サービスが既定で動く点は、ほかのコーディングエージェントにも見られます。Codex CLIの常駐サーバーの設定と合わせて、社用PCで許す範囲を決めておくと管理しやすくなります。
最初の一歩として、手元で opencode --version と opencode service get を実行し、2.0系かどうかと、remote・hostname が既定のままかを確かめてください。そのうえで、opencode service get password の値を保存したAPIキーと同じ扱いにすることを、チームの約束にしておくとよいでしょう。
2026年10月20日に、npmの
@opencode/cli・opencode-aiの公開日時、anomalyco/opencode の dev ブランチの README.md・CHANGELOG.md(v2.0.26〜v2.0.32)・SECURITY.md を確認しました(資料調査)。編集部の検証環境(Linux、通信を遮断した名前空間)で @opencode/cli 2.0.32(linux-x64)を動かし、ヘルプ、opencode serviceの設定、常駐サービスの待ち受けアドレス、パスワードの有無によるAPIの応答、OpenAPIの定義を確かめました(実機検証)。ログイン、モデルの呼び出し、pair --remoteやOpenTunnelでの公開、デスクトップアプリ、Windows・macOSでの挙動は確認していません。公開前に、opencode.ai の2.0の文書(CLI、Web、Console)、Anomalyの公式ブログ(2026-10-12)、OpenCodeの公式Xの投稿(2026-10-17)で記載を照合しました。
AIコーディングエージェントを社内の開発に取り入れるときの設定や運用ルールづくりは、グリームハブの開発・AI・自動化のご相談で承っています。使うツールや扱うコードによって決めることが変わるため、お問い合わせからご相談ください。
参考資料
- Anomaly — OpenCode 2.0(2026-10-12)
- OpenCode Docs — CLI(Background service)
- OpenCode Docs — Web
- OpenCode Docs — Console
- OpenCode(@opencode)のXの投稿(2026-10-17)
- anomalyco/opencode — CHANGELOG.md(dev)
- anomalyco/opencode — README.md(dev)
- anomalyco/opencode — SECURITY.md(dev)
- npm registry — @opencode/cli
- npm registry — opencode-ai









