Table of Contents

OpenCode CLI と Desktop は、同じコーディングエージェント製品のクライアントです。 ターミナルインターフェースはキーボード中心の作業とスクリプトに向いています。デスクトップアプリケーションはグラフィカルなワークスペースを提供します。重要な比較対象は、各クライアントの背後にあるサーバー、プロジェクト、プロバイダー、設定です。

バックエンドを確認してからインターフェースを選びます。 2 つの OpenCode ウィンドウが同じサーバーやセッションを使うとは限りません。別のサーバーを指すデスクトップアプリケーションは、モデル名が似ていても別の実行環境です。

要点

  • ターミナル作業と非対話コマンドには CLI を使います。
  • グラフィカルなワークスペースには Desktop を使います。 選択したサーバーを確認してください。
  • 推論はインターフェースとは別にプロバイダー設定で決まります。
  • 同じ製品名でも、別サーバーや別バージョン間で同じセッション状態になるとは限りません。

範囲と日付: 公式ドキュメントを 2026 年 10 月 6 日に確認しました。このガイドはインターフェースを比較し、モデル品質は比較しません。リポジトリ、動作するプロバイダー接続、基本的なターミナル知識が必要です。試行には 45~60 分を見込みます。

クライアントとサーバー

OpenCode はインターフェースとサーバーを分離します。 サーバードキュメント はターミナル UI をクライアント、opencode serve をスタンドアロンサーバーとして説明しています。この構成では、エージェントと対話する複数の方法を使えます。

Desktop は既定でローカルサーバーを起動します。 トラブルシューティングガイド は opencode-cli サイドカーと、設定済みサーバー URL に接続するオプションを説明しています。クライアント間で動作が違うときは、プロンプトを変更する前に接続を確認します。

層答えるべき質問
クライアントターミナル UI、デスクトップアプリ、非対話コマンドのどれか。
エージェントサーバーどのプロセスがリクエストを受けるか。
リポジトリサーバーがアクセスするディレクトリはどこか。
モデルプロバイダーどのサービスが推論を提供するか。
セッション既存の会話か、新しいタスクか。

サーバーの場所と推論の場所は同じではありません。 コンピューター上のエージェントサーバーも、設定されたホスト型モデルへリクエストを送ります。一方、互換性のあるローカル推論サービスは、独自のモデルとリソース要件を持つ別プロセスです。

公式サーバーリファレンスでは、opencode serve の既定ホスト名として 127.0.0.1 を示しています。ローカル試行ではサービスをループバックに限定します。

opencode serve --hostname 127.0.0.1

広いバインドアドレスを使うのは、認証、ファイアウォールルール、サーバーに公開するリポジトリパスを決めた後にしてください。

エージェントサーバー、リポジトリファイル、別の推論サービスに接続されたターミナルとデスクトップのクライアント

エージェントサーバーと推論プロバイダーを別々に確認します

ターミナル操作と自動化

opencode

既定のコマンドはターミナル UI を開きます。 CLI リファレンス にはプログラム用コマンドも記載されています。目的のリポジトリで開始し、編集を依頼する前に選択したエージェントとモデルを確認します。

opencode run "Identify this project's test command. Do not modify files."

限定した非対話リクエストには opencode run を使います。 適切な権限ポリシーは別に設定します。変更しないよう求めるプロンプトは方向を示しますが、ファイルシステムの分離を強制しません。

シェルの組み合わせが重要ならこのワークフローを選びます。 再現可能なラッパーでは、リクエスト、終了ステータス、関連出力、変更ファイルを記録します。失敗処理を明示します。空の diff と成功メッセージは、検証済みの修正とは異なる意味を持ちます。

Desktop の設定と互換性

目的のリリースには公式ダウンロードページを使います。 OpenCode のダウンロードページ はターミナルとデスクトップのパッケージを掲載しています。この確認時点では v2 ターミナルパッケージを案内し、一般ドキュメントには古いインストール例もあります。クライアントとバックエンドの正確なバージョンを記録し、異なるリリース系列の手順を混ぜません。

小さな実タスクでデスクトップ操作を評価します。 プロジェクトを開き、サーバーを確認し、限定したリクエストを送信し、変更ファイルを調べ、修正を依頼します。エージェントの行動を理解するための手間を評価します。グラフィカルクライアントがエディターとデバッガーを完全に置き換えるとは考えません。

Desktop の試行期待する証拠
プロジェクト選択エージェントが目的のリポジトリを識別する
モデル選択プロバイダーとモデルが試行記録と一致する
コマンド実行必要なランタイムとテストが使える
変更確認完全なパッチを簡単に見つけて確認できる
再起動目的のプロジェクトとセッションを識別できる

設定とモデルアクセス

OpenCode は複数の場所から設定を統合します。 設定リファレンス は優先順位と競合しない設定の保持を説明しています。単一のプロジェクトファイルだけでなく、有効なモデル、エージェント、権限を比較します。

プロバイダーへのアクセスは実行環境の一部です。 プロバイダーガイド は対応サービスと互換エンドポイントを説明しています。認証情報、エンドポイント到達性、モデルのツール対応が重要です。別の場所で動くサーバーには、プロバイダーとリポジトリへの独自の有効なアクセスが必要です。

推論の総費用はクライアントだけでは決まりません。 同じモデルとタスクで請求使用量を比較します。設定エラーによる再実行も含めます。ローカル推論ではシステムメモリ、モデル形式、コンテキストサイズ、ランタイム設定を記録します。デスクトップのダウンロードをホスト計算の無料代替として扱わないでください。

セッションと安全な切り替え

継続性を仮定せず確認します。 クライアントを切り替える前に、アクティブなプロジェクトとセッションを記録します。移行先が目的のサーバーへ接続し、目的の履歴を表示するか確認します。新しいセッションを始める場合は、目的、完了した作業、残りの確認事項を短く引き継ぎます。

1 つの checkout への同時編集を避けます。 異なる計画の 2 つの会話が同じディレクトリを対象にすると、ファイルを共有します。独立した試行には別の worktree または checkout を使います。統合前に変更を確認します。

Handover record
Goal:
Current branch and working directory:
Files changed:
Checks already completed:
Known failures:
Next approved action:

この記録は引き継ぎを検査可能にします。 インターフェースの問題、指示不足、環境不一致の切り分けにも役立ちます。認証情報は記録に含めません。

サーバーアクセスと権限

エージェントサーバーを実行サービスとして扱います。 サーバードキュメントは OPENCODE_SERVER_PASSWORD による任意認証を説明しています。別のマシンから接続する前に、アクセスを意図的に設定します。到達可能なエージェントサーバーは安全な静的サイトと同じではありません。

ツール権限を独立して確認します。 権限ガイド は allow、ask、deny の動作を定義しています。インターフェース試行でも同じポリシーを適用します。実効ルールを確認せず、質問が少ないクライアントを安全または高機能と判断しません。

無害なポリシーテストから始めます。 使い捨てプロジェクトで、許可されたファイル検査と禁止された編集を依頼します。観測した動作を確認してから、限定した実装へ進みます。これで権限の仮定を検証できます。

トラブルシューティングと選択

症状最初の確認
Desktop の接続失敗選択したサーバーとローカルサイドカーの状態
一方のクライアントでモデルがないサーバーバージョン、プロバイダーアクセス、設定
テスト結果が違うプロジェクトディレクトリと実行環境
会話が見つからないサーバーとセッションの識別情報
プラグイン読み込みまで動くプラグイン設定とリリース互換性

ターミナルを選びます。 スクリプト化されたリクエストとシェルコンテキストが作業を容易にする場合です。Desktop を選びます。 グラフィカルなプロジェクト移動が監督を改善する場合です。プロバイダーとポリシーの判断は、この好みと分けてください。

次の手順: CLI のまとめ でターミナルの代替を比較します。ローカル推論の要件は OpenCode と Strata のガイド で確認します。グラフィカルな代替には GUI のまとめ を使います。