OpenCodeを
「怖くない道具」にする本
AIやITを知らなくても大丈夫です。OpenCodeを正しく理解し、安全に始め、最後は自分で調べ、作り、確認し、直せるところまで案内します。
最初に読む3ページ分:OpenCodeは、あなたのMacで働くAIの作業机です
OpenCodeは、文章で頼んだ仕事をもとに、プロジェクトのファイルを読み、書き換え、必要な命令を実行し、結果を確かめるためのオープンソースのAIコーディングエージェントです。ターミナル内の画面、デスクトップアプリ、Web画面、IDE連携で使えます。OpenCode公式
最初のゴール
安全設定を入れ、小さな練習用フォルダで、ファイルを1つ作って中身を確認する。
最終のゴール
作業場所、権限、モデル、費用、履歴を自分で判断し、Gitで戻せる状態で開発を進める。
この本は「通読部」と「困ったときに引く部分」に分かれます
初日は第1〜16章を順に読みます。OpenCodeの正体、画面、安全、Git、AGENTS.mdまでが基礎です。2日目は第17〜29章で、プロバイダー、モデル、費用、サブエージェント、3つの実習へ進みます。第30章以降は、エラーが出たときや復習したいときに開く逆引き資料です。
完全理解コース
目次順に読みます。コードを覚えるより、「何を許可し、何を確認し、どう戻すか」を理解することが先です。
今は、次の4行だけ覚えれば十分です
cd 作業したいフォルダ
opencode
/connect
/models
cdは作業場所へ移動する命令、opencodeは起動、/connectはAIサービスとの接続、/modelsはAIモデル選択です。意味は後で丁寧にほどきます。
第I部 まず、何が起きているのかを理解する
操作を暗記する前に、OpenCode・AIモデル・ターミナル・ファイルの役割を分けます。
1. OpenCodeは「AIの頭脳」ではなく、頭脳を働かせる仕事場です
OpenCodeそのものは、ChatGPTのような巨大AIモデルではありません。OpenCodeは、AIモデルへ依頼を送り、返ってきた判断に従ってファイルやターミナルを扱う「仕事の進行役」です。
たとえるなら、AIモデルは腕のよい職人です。OpenCodeは、職人へ設計図を渡し、倉庫から道具を出し、作業場所を限定し、作業記録を残す現場監督です。OpenRouterやZ.AIは、職人を呼ぶ窓口に当たります。
OpenCodeが得意な仕事
ひとつの質問へ答えるだけでなく、複数のファイルを調べ、計画を立て、コードを書き、テストし、失敗したら直す仕事に向きます。既存コードの説明、機能追加、バグ修正、テスト作成、文書更新、Git差分のレビューにも使えます。
OpenCodeが勝手に保証してくれないこと
正しさ、安全、安さ、著作権、公開してよい情報かどうかは、自動では保証されません。よいモデルでも勘違いします。権限が広ければ、間違った操作も実行できます。だから本書では「頼む→確認する→直す→再確認する」を1つの作業として扱います。
2. チャットAIは相談相手、コーディングエージェントは作業者です
普通のチャットAIへ「このコードを直して」と頼むと、多くの場合は修正版の文章やコードが返ります。人間がコピーし、正しい場所へ貼り、実行して確かめます。コーディングエージェントは、この後半も担当できます。
| 場面 | 一般的なチャットAI | OpenCode |
|---|---|---|
| ファイルを見る | 貼り付け・アップロードした範囲 | 許可された作業フォルダを検索して読む |
| 修正する | 修正版を回答として出す | 実ファイルを編集できる |
| 確認する | 人間が実行結果を持ち帰る | テストやビルドを実行し、結果を再びAIへ渡せる |
| 長い仕事 | 会話の中で手順を相談する | 複数回の道具使用をつないで進める |
| 危険性 | 通常は直接ファイルを壊さない | 広い権限では実際のファイルや命令に影響する |
「ターミナル型」の意味は、黒い画面を使うことだけではありません
ターミナルは文字でMacへ命令を出す窓です。そこからOpenCodeを起動すると、OpenCodeは今いるフォルダを作業場所として扱います。画面に文章を書くだけで、その場所のファイルを調べ、必要なら命令を実行できます。この「現在地」がとても重要です。
pwdで現在地、lsで中身を確認してください。初心者の事故は、難しいAI機能より「違うフォルダで起動した」ことから起きやすいものです。3. OpenCodeの強みは、AIモデルと使い方を自分で組み替えられることです
2026年8月27日時点の違いを、初心者が選ぶときに必要な範囲へ絞ると次のようになります。製品は頻繁に変わるため、表は「永久の優劣」ではなく現在の設計思想の比較です。
| 製品 | 中心となる使い方 | モデルの自由度 | 向く人 | 注意 |
|---|---|---|---|---|
| ChatGPT | 会話、調査、文書、幅広い仕事 | ChatGPT内で提供されるモデル | まずAIに相談したい人 | ローカル開発環境を直接扱う仕組みとは分けて考える |
| Codex | CLI、IDE、デスクトップ、クラウドで開発 | OpenAIのCodex環境・モデルが中心 | OpenAIの統合された作業環境を使いたい人 | OpenCodeとは別製品。名前が似た旧「OpenCode」系情報にも注意 |
| Claude Code | ターミナル、IDE、デスクトップ、Web | Claude中心。CLI/IDEは一部第三者プロバイダーも対応 | Claudeと深く統合された体験がほしい人 | OpenCodeからClaude Pro/Maxを使う非公式プラグインはAnthropicが明示的に禁止 |
| Cline | IDE中心。CLIやKanbanもある | BYOKやローカルを含めて広い | 差分を画面で見て逐次承認したい人 | チェックポイントと承認の考え方はOpenCodeと異なる |
| Roo Code | かつてのVS Code拡張 | 広かった | 現在は新規採用しない | 公式文書では2026年5月15日に拡張終了 |
| OpenCode | TUI、CLI、Desktop、Web、IDE | 75以上のプロバイダーとローカルモデル | モデル、費用、役割、権限を自分で設計したい人 | 自由度が高いぶん、安全設定を自分で整える |
参照:OpenCode、Codex CLI、Claude Code、Cline、Roo Code
📍 本書の推奨は「万人にOpenCodeが最良」という意味ではありません。モデル選択の自由、OpenRouter経由の一括管理、役割別エージェントを重視する人には相性がよい、という設計上の判断です。
4. OpenCodeは「考える」と「手を動かす」を何度も往復します
OpenCodeへ依頼すると、一度の回答だけで終わらないことがあります。まず状況を読み、次の一手を決め、道具を使い、その結果を読み直します。これがエージェントの基本ループです。
1回の依頼で内部では何が渡されるのか
AIモデルへは、あなたの依頼だけでなく、AGENTS.mdの指示、選んだファイル、ツールの説明、直前の実行結果、会話履歴などがまとめて渡されます。モデルはその情報から「次にどの道具を使うか」または「人間へ何を答えるか」を選びます。
OpenCodeの画面と裏側は分かれています
ターミナル内のTUIは画面です。その裏ではOpenCodeのサーバー部分がセッションと道具を管理します。Web版やDesktop版も、同じ考え方でOpenCodeのサーバーへつながります。Desktop版はローカルのOpenCodeサーバーを背景で動かします。公式
5. 最初に覚える12語で、説明の8割が読めるようになります
| 言葉 | やさしい意味 | たとえ |
|---|---|---|
| ターミナル | 文字でMacへ命令する窓 | Macの操縦席 |
| CLI | 文字の命令で使う方式 | 注文票 |
| TUI | ターミナルの中に作られた画面 | 文字だけでできたアプリ画面 |
| プロジェクト | 一緒に扱うファイルのまとまり | 1冊分の原稿箱 |
| 作業ディレクトリ | OpenCodeが今いるフォルダ | 作業机の上 |
| セッション | 1つの仕事についての会話と作業記録 | 案件ごとのノート |
| プロバイダー | AIモデルへ接続し、料金をまとめる窓口 | 人材紹介所 |
| モデル | 文章やコードを考えるAI本体 | 職人 |
| トークン | AIが文章を数える細かな単位 | 文字そのものではない料金メーター |
| コンテキスト | AIが一度に見て考えられる情報 | 机に広げられる資料の量 |
| ツール | AIが使える読む・書く・実行などの手段 | 工具 |
| 権限 | 各工具を自動で使うか、確認するか、禁止するか | 鍵と入室ルール |
第II部 Macで安全に始める
インストール、初回起動、画面、キー操作を一つずつ進めます。
6. 準備するのはターミナル、作業用フォルダ、支払い上限の3つです
Macの種類を確認する
画面左上のAppleメニューから「このMacについて」を開きます。「チップ」がApple M1、M2、M3、M4、M5などならApple Silicon版です。「プロセッサ」がIntelならIntel版です。Desktop版を直接ダウンロードするときに選択を間違えないための確認です。
ターミナルを準備する
標準のターミナルでも構いません。iTerm2を使いたい方は、iTerm2の準備を先に済ませてください。以降の命令はどちらでも同じです。
最初は専用の練習フォルダだけを使う
デスクトップ全体、書類フォルダ全体、ホームフォルダで起動しないでください。OpenCodeが見られる範囲を小さく保つため、最初は次のフォルダを作ります。
mkdir -p "$HOME/Documents/opencode-practice"
cd "$HOME/Documents/opencode-practice"
pwd
ls
pwdの結果が/Users/あなたの名前/Documents/opencode-practiceであれば準備完了です。
AIサービス側で少額の上限を設定する
OpenRouterを使う場合は、最初から大きな残高を入れず、専用APIキーに日次または月次の支出上限を設定します。OpenRouterのAPIキーには米ドルの上限と日次・週次・月次のリセットを指定できます。OpenRouter公式
sk-やsk-or-で始まる文字列が見えたら、公開前に必ず隠します。7. Mac初心者はHomebrew版、最新追従を優先するなら公式スクリプトが分かりやすい選択です
OpenCode公式は、macOS向けにHomebrewの専用tap、公式インストールスクリプト、npmなど複数の方法を案内しています。2026年8月27日に確認した最新リリースはv1.18.23です。GitHub
方法A:Homebrewで管理する
更新と削除をHomebrewへ揃えたい方に向きます。公式は、Homebrew本体側のbrew install opencodeより、OpenCode側のtapが新しい版へ早く追従すると説明しています。
brew install anomalyco/tap/opencode
opencode --version
zsh: command not found: brewと出た場合はHomebrewが未導入です。インストール方法が分からなければ、無理に進まず、Homebrew公式手順を確認してください。
方法B:公式インストールスクリプトを使う
curl -fsSL https://opencode.ai/install | bash
exec zsh
opencode --version
2026年8月27日に公式スクリプトを確認すると、実行ファイルは~/.opencode/binへ置かれ、必要に応じて~/.zshrcなどへPATH設定を追記します。PATHは「命令を探す場所の一覧」です。公式スクリプト
curl ... | bashは、ネットから取得した内容をそのまま実行します。公式URLか、何をするスクリプトか、毎回確認してください。本書では確認済みの公式URLを掲載していますが、将来の内容は変わり得ます。Desktop版だけを使う方法
brew install --cask opencode-desktop
公式ダウンロードページにはApple Silicon版とIntel版もあります。Desktop版はタブで複数セッションを整理しやすい一方、本書の中心であるTUI操作を学ぶならCLIも入れておくと理解がつながります。ダウンロード
インストール成功を3段階で確認する
command -v opencode
opencode --version
opencode --help
1行目で場所、2行目で版、3行目で使える命令が確認できれば成功です。3つを分けて確かめると、「入ったが見つからない」「見つかるが起動できない」を区別できます。
8. 初回は「練習フォルダで起動→接続→モデル選択→/init」の順です
練習フォルダへ移動します
cd "$HOME/Documents/opencode-practice"
pwdOpenCodeを起動します
opencode文字で構成された画面が出ます。これがTUIです。
/connectでAIの窓口を登録します
OpenRouter、Z.AI、OpenAIなどを選びます。APIキーの入力欄へ貼り付けても、キーを会話本文へ書いてはいけません。
/modelsで使うAIモデルを選びます
検索欄でモデル名を絞れます。OpenRouter経由のGLM-5.3-Flashはopenrouter/z-ai/glm-5.3-flashという形で表します。
/initで作業場所の説明書を作ります
OpenCodeは重要なファイルを調べ、AGENTS.mdを作成または更新します。中身は必ず人間が読み、間違った命令や不要な規則がないか確認します。
接続情報はどこへ保存されるか
/connectで登録したAPIキーやOAuth情報は、macOSでは~/.local/share/opencode/auth.jsonへ保存されます。バックアップや画面共有でこのファイルを不用意に開かないでください。公式
9. TUIは「会話」「状態」「入力」の3か所を見れば迷いません
▸ list … 完了
▸ read README.md … 完了
Agent: Plan
Model: GLM-5.3-Flash
Context: 12%
Session: はじめての確認
差分・ツール詳細
表示はテーマや幅で変わります。
会話欄
あなたの依頼、AIの説明、ツールの実行、エラー、変更差分が時系列で並びます。/detailsでツール実行の詳細表示を切り替えられます。
状態欄
選択中のモデル、エージェント、セッションなどを確認します。画面幅や版により配置は変わるため、見た目を丸暗記せず「今のモデル」「今のエージェント」「今の作業場所」を探してください。
入力欄
普通の文章を入力します。@からファイルを選ぶと、その内容が会話へ加わります。行頭の!はシェル命令を直接実行し、結果を会話へ入れます。初心者は!を多用せず、まず目的を文章で伝えましょう。
mouseをfalseにできます。10. 最初は7個のキー操作と10個のスラッシュコマンドで十分です
毎日使うキー
| 操作 | 意味 |
|---|---|
| Return | 依頼を送る |
| Shift+Return | 送信せず改行する。Ctrl+Jも使える |
| Tab | primary agentを切り替える。標準ではBuildとPlan |
| Esc | 実行中のセッションを止める |
| Ctrl+P | 命令一覧を開く |
| Ctrl+X → M | モデル一覧。2つのキーを順番に押す |
| Ctrl+X → L | セッション一覧 |
Ctrl+Xは「次のキーに特別な意味を持たせる合図」で、リーダーキーと呼ばれます。標準では次のキーを待つ時間が2秒です。公式
覚えるスラッシュコマンド
| 命令 | 役割 | 使う場面 |
|---|---|---|
/help | ヘルプ | 何が使えるか迷った |
/connect | プロバイダー接続 | APIキーやログインを登録 |
/models | モデル一覧 | 使うAIを切り替える |
/init | AGENTS.mdの作成・改善 | プロジェクトの説明書を整える |
/new | 新しいセッション | 別の仕事を始める。別名/clear |
/sessions | 履歴一覧 | 前の仕事へ戻る。/resumeも同じ |
/compact | 長い会話を短く整理 | 文脈がいっぱいに近い。別名/summarize |
/undo | 直前の会話とファイル変更を戻す | 依頼をやり直す。Gitリポジトリが必要 |
/redo | undoした変更を復元 | 戻しすぎた |
/exit | 終了 | 作業を終える。/qでもよい |
/shareは公開リンクを作ります共有は標準で手動です。秘密のコード、個人情報、APIキー、顧客データが含まれないと確認できるまで使わないでください。安全重視なら設定で"share": "disabled"にします。11. プロジェクトは作業の住所、セッションは案件ごとのノートです
OpenCodeでは「どのフォルダで起動したか」と「どの会話を続けているか」を分けて考えます。フォルダ側がプロジェクト、会話側がセッションです。
作業ディレクトリを毎回確認する
pwd
ls -la
git status
pwdは住所、ls -laはその部屋にある物、git statusは変更状態を示します。OpenCodeはopencode /path/to/projectのように、起動時に場所を直接指定することもできます。TUI公式
Gitがある場合、プロジェクトの根を見つけやすくなります
プロジェクト設定の探索では、OpenCodeは現在のフォルダから上へたどり、近いGitリポジトリを基準にします。Gitがないフォルダでも使えますが、/undoや/redoなど一部の戻す機能はGitリポジトリを必要とします。
仕事が変わったら新しいセッションにする
同じアプリでも「ログイン追加」と「画面の色変更」は別セッションにすると、AIへ渡す情報が散らかりません。/newで新規、/sessionsで一覧、CLIではopencode session listで履歴を見られます。
opencode session list
opencode --continue
opencode --session セッションID
履歴はMac内のどこにあるか
macOSではセッションなどのアプリデータが~/.local/share/opencode/に保存されます。Gitリポジトリ内のプロジェクトはプロジェクトごとの領域、Git外はglobal領域に整理されます。公式
第III部 OpenCodeに何を許すかを決める
ファイル、シェル、権限、Git、AGENTS.md、設定ファイルをつなげます。
12. OpenCodeの道具は「探す・読む・書く・実行する」の4群です
OpenCodeのAIモデルは、ファイルを直接触るわけではありません。OpenCodeが用意した道具を呼び出し、その結果をまたAIへ返します。公式に示される主な内蔵ツールは次のとおりです。Tools公式
| 群 | 主なツール | 何をするか | 初心者の注意 |
|---|---|---|---|
| 探す | glob、grep、list | ファイル名や中身を検索 | 基本は読み取り。最初に許可しやすい |
| 読む | read | ファイル内容を読む | .envには秘密がある。標準で読み取り拒否 |
| 書く | edit、write、apply_patch | 既存ファイルを直す、新規作成、上書き | 必ず差分と対象パスを確認 |
| 実行する | bash | テスト、ビルド、Git、パッケージ操作など | 削除・公開・課金・外部送信につながる命令も実行できる |
| 補助 | lsp、webfetch、websearch、skill | コード解析、Web参照、手順の読み込み | LSPは公式上experimental。Web内容は信頼しすぎない |
@でファイルを指定すると、話が早くなります
@README.md を読み、このアプリの目的と起動方法を初心者向けに説明してください。
変更はしないでください。
@で選んだファイル内容は会話へ自動で加わります。ファイルが大きいとトークンを多く使うため、必要なファイルだけを指定します。
行頭の!は人間が直接シェルを実行します
!pwd
!git status
!npm test
結果は会話へ入ります。便利ですが、AIへ「これを実行してよいか判断して」と任せる流れを飛ばす操作でもあります。意味が分からない命令、削除する命令、sudoを含む命令は実行しません。
rm -rfはファイルをまとめて削除します。git reset --hardは未保存の変更を失わせます。git clean -fdはGitが追跡していないファイルを削除します。git push --forceは共有履歴を書き換えます。意味を説明できるまで承認しないでください。13. 最初の安全設定では「読むだけ自動、書く・実行は確認、破壊操作は拒否」にします
OpenCodeの権限には3つの結果があります。allowは自動許可、askは毎回確認、denyは禁止です。標準は多くの操作がallowで、作業場所の外と同じ呼び出しを3回繰り返す状態だけが主にaskです。Permissions公式
permissionはOpenCode側で止める仕組みです。両方使います。初心者向けの推奨グローバル設定
次の内容を~/.config/opencode/opencode.jsonへ置きます。既に設定がある場合は丸ごと上書きせず、内容を読み、バックアップしてから統合してください。
{
"$schema": "https://opencode.ai/config.json",
"share": "disabled",
"subagent_depth": 1,
"permission": {
"*": "ask",
"read": {
"*": "allow",
"*.env": "deny",
"*.env.*": "deny",
"*.env.example": "allow"
},
"glob": "allow",
"grep": "allow",
"list": "allow",
"lsp": "allow",
"edit": "ask",
"external_directory": "ask",
"bash": {
"*": "ask",
"pwd": "allow",
"ls": "allow",
"ls -la": "allow",
"git status": "allow",
"git status --short": "allow",
"git diff": "allow",
"git diff --stat": "allow",
"git log --oneline -5": "allow",
"rm *": "deny",
"rmdir *": "deny",
"sudo *": "deny",
"*rm -rf*": "deny",
"*git reset --hard*": "deny",
"*git clean *": "deny",
"*git push --force*": "deny"
}
}
}
権限ルールは上から評価され、最後に一致したルールが勝ちます。だから"*": "ask"を先に置き、後ろへ具体的な許可・拒否を置きます。
この設定で起きること
自動
通常の読み取り、検索、pwd、git statusなど。
確認
ファイル編集、テスト、ビルド、インストール、Gitコミットなど。
拒否
代表的な削除、管理者権限、強制的な履歴書き換え。
承認画面の3つの選択肢
onceは今回だけ、alwaysは現在のOpenCodeセッション中に似たパターンを許可、rejectは拒否です。分からないときはrejectを選び、「その命令の目的、変更対象、失敗時の影響を説明してください」と聞けば作業を続けられます。
--autoは練習中に使わない
opencode --autoは、askになる操作を自動承認します。明示したdenyは残りますが、初心者の学習段階では確認機会が消えます。使うのは、隔離したテスト環境と回復手段を理解してからです。
rm以外のプログラムでも可能です。安全設定、狭い作業場所、Git、バックアップ、人間の確認を重ねてください。14. GitはMac内のタイムマシン、GitHubは共有できる保管場所です
Gitはファイルの変更履歴を記録し、過去の状態と比較・復元する仕組みです。GitHubはGitの履歴をネット上で共有・保管するサービスです。OpenCodeをローカルで使うだけならGitHubは必須ではありませんが、Gitは強く推奨します。Git公式GitHub公式
新しい練習フォルダをGit管理にする
cd "$HOME/Documents/opencode-practice"
git init
git status
初回コミットの前に、APIキーや秘密ファイルをGitへ入れないため.gitignoreを作ります。
.env
.env.*
!.env.example
.DS_Store
node_modules/
build/
dist/
上は.gitignoreの中身です。ターミナルへそのまま命令として貼るものではありません。OpenCodeへ「この内容で.gitignoreを作り、追加対象を説明して」と依頼できます。
安全な基本サイクル
git status
git diff
git add .
git diff --staged
git commit -m "最初の安全な状態を保存"
コミットは「ここへ戻せる」と名前を付けた保存地点です。OpenCodeへ大きな作業を頼む前、動く状態へ戻った後に作ります。
OpenCodeのスナップショットとの関係
OpenCodeは標準で内部Gitを使ったスナップショットを作り、セッション内の変更を戻せるようにします。大きなリポジトリでは容量や索引時間が増える場合があります。スナップショットを切るとUIから戻せなくなります。Config公式
GitHub連携は後からでよい
ローカル開発に慣れてから、GitHubの遠隔リポジトリをoriginとして登録します。OpenCodeにはGitHub IssuesやPull Requestのコメントから/opencodeまたは/ocでGitHub Actions上の仕事を起動する公式連携もあります。初心者は権限とSecretsの意味を理解するまで導入を急ぎません。GitHub連携
15. AGENTS.mdは、毎回同じ説明をしなくて済む「現場の約束集」です
プロジェクトの目的、フォルダ構成、使ってよい命令、確認方法、禁止事項をMarkdownで書いたファイルがAGENTS.mdです。OpenCodeはその内容をAIの文脈へ入れます。/initは重要なファイルを調べ、必要なら質問し、既存のAGENTS.mdがあれば改善します。Rules公式
初心者向けの小さな例
# このプロジェクトについて
これはmacOS向けのSwiftUI集中タイマーです。
## 作業ルール
- 変更前に、対象ファイルと方針を短く説明する
- 一度に1つの目的だけ変更する
- APIキー、署名情報、個人情報をファイルへ書かない
- 削除、git push、git reset --hard は行わない
## 確認
- 変更後は git diff を確認する
- Swiftコード変更後は、可能なら xcodebuild でビルドする
- ビルドできない場合は、未確認と理由を明記する
## 完了条件
- 依頼した動作が実装されている
- ビルド結果を報告している
- 残る問題を隠していない
良いAGENTS.mdは短く具体的です
「高品質に」「慎重に」のような抽象語より、「変更後はnpm testを実行」「src/authの公開関数名は変更しない」の方が役立ちます。長すぎる規則は毎回トークンを使い、重要事項を埋もれさせます。
どこに置くか
| 場所 | 効く範囲 | 用途 |
|---|---|---|
プロジェクト直下のAGENTS.md | そのプロジェクト | チーム共有する開発ルール。Gitへ入れることを公式が推奨 |
~/.config/opencode/AGENTS.md | すべてのOpenCodeセッション | 個人の好み、安全確認、日本語の書き方 |
OpenCodeはClaude Code互換として、AGENTS.mdがない場合にCLAUDE.mdも読みます。両方ある場合はAGENTS.mdが優先されます。互換読み込みは環境変数で無効化できます。
permissionへ書きます。16. 全体設定とプロジェクト設定を分けると、変更の影響範囲が見えます
OpenCodeの動作設定はJSONまたはコメントを書けるJSONCで管理します。TUIの表示設定は別のtui.jsonです。Config公式
| 場所 | 主な用途 |
|---|---|
~/.config/opencode/opencode.json | 全プロジェクト共通のモデル、プロバイダー、権限、共有設定 |
~/.config/opencode/tui.json | テーマ、キー操作、スクロール、マウス、通知音 |
プロジェクト直下のopencode.json | そのプロジェクトだけのモデル、エージェント、MCP、命令 |
プロジェクト直下のtui.json | そのプロジェクトだけのTUI表示 |
.opencode/agents/ | プロジェクト専用エージェント |
.opencode/plugins/ | プロジェクト専用プラグイン |
設定は置き換えでなく、順番に統合されます
組織の遠隔設定、全体設定、指定ファイル、プロジェクト設定、.opencode配下、実行時設定、管理者設定の順に読み込まれ、後の値が競合部分を上書きします。競合しない項目は残ります。macOSの管理者設定やMDM設定は最優先で、利用者が上書きできません。
設定を直すときの安全な手順
対象ファイルの場所を確認する
ls -la "$HOME/.config/opencode"日付つきでバックアップする
cp "$HOME/.config/opencode/opencode.json" \
"$HOME/.config/opencode/opencode.json.backup-20260827"最小の変更だけ入れる
一度に権限、モデル、プラグインを全部変えないでください。
解決後の設定を見る
opencode debug config起動して目的の状態を確認する
/models、権限確認、共有設定など、変更した項目を実画面で確かめます。
opencode.jsoncなら// なぜこの設定にしたかを残せます。純粋なJSONではコメントを書けません。第IV部 AIの接続先、モデル、料金を自分で選ぶ
OpenRouter・Z.AI・OpenAI・Anthropic・Google・Ollamaを同じ地図に置きます。
17. プロバイダーは「どの会社の窓口から、どのAIを呼ぶか」を決めます
OpenCodeはAI SDKとModels.devを利用し、75以上のLLMプロバイダーとローカルモデルに対応します。多くの人気プロバイダーは事前登録され、/connectで資格情報を入れると/modelsに現れます。Providers公式
| 接続先 | 特徴 | 初回の考え方 |
|---|---|---|
| OpenRouter | 多数のモデル、統一請求、複数実行業者への振り分け | モデルを横断したい。専用キーに小さな上限を付ける |
| Z.AI | GLM APIまたはGLM Coding Planへ直接つなぐ | GLM中心で経路を単純にしたい |
| OpenAI | APIキーまたは公式画面にあるChatGPT Plus/Pro認証 | 利用条件と課金経路を認証画面で確認 |
| Anthropic | 公式ガイドはAPIキーを案内 | 非公式にClaude Pro/Maxを流用するプラグインは使わない |
| 公式プロバイダー一覧ではGoogle Vertex AIを詳細案内 | Cloudプロジェクト、Vertex AI有効化、認証が必要 | |
| Ollama | Mac内のローカルモデルをOpenAI互換URLで利用 | 通信費を抑えやすいが、メモリ、速度、道具呼び出し品質を自分で管理 |
接続の共通手順
/connect
# 一覧からプロバイダーを選ぶ
# APIキーまたはブラウザ認証を完了
/models
直接接続とOpenRouterの反論・再反論
データの通り道を理解する
OpenRouterを使うと、依頼はOpenRouterを通り、選ばれた実行業者へ送られます。OpenRouter公式は、本文の記録は選択制で初期状態では無効と説明していますが、実行業者ごとの保存・学習方針は異なります。必要ならZDR(保存しない実行先だけに限定)やdata collection拒否を設定します。データ収集ZDR
.envを文脈へ入れないでください。18. モデルは「賢さ」だけでなく、道具使用、速さ、料金、文脈で選びます
コードを書けるモデルでも、OpenCodeの道具を正確に呼べるとは限りません。公式のモデルガイドも、コード生成とtool callingの両方が得意なモデルは限られると注意しています。Models公式
5つの選択軸
| 軸 | 見るもの | 初心者の判断 |
|---|---|---|
| 道具使用 | ファイル編集、シェル、複数手順を安定して進めるか | 最優先。安くても道具を誤ると手戻りが増える |
| 品質 | 複雑な設計、デバッグ、レビュー | 難問と最終レビューだけ上位モデルへ |
| 速さ | 最初の応答時間、1秒あたりの出力 | 小さな修正や探索は速いモデル |
| 料金 | 入力・出力・キャッシュ・画像・推論の単価 | 1回の単価でなく、やり直し回数も含める |
| 文脈 | 一度に扱えるトークン数 | 大きいほど万能ではない。必要な資料だけ渡す |
/modelsとCLIの違い
# TUI内で選ぶ
/models
# ターミナルから一覧を出す
opencode models
# 起動時に指定する
opencode --model openrouter/z-ai/glm-5.3-flash
モデルIDはprovider/model-id形式です。OpenRouterのモデルID自体に会社名が含まれるため、openrouter/z-ai/glm-5.3-flashのようにスラッシュが2つ見えます。
標準モデルを設定する
{
"$schema": "https://opencode.ai/config.json",
"model": "openrouter/z-ai/glm-5.3-flash",
"small_model": "openrouter/z-ai/glm-5.3-flash"
}
small_modelはセッション名づけなど軽い仕事に使われます。設定しなければ、OpenCodeが安いモデルを探すか、主モデルへ戻ります。
reasoningやvariantは、必要になってから
一部モデルにはlow、highなどのvariantがあります。TUIではCtrl+Tで切り替えます。/thinkingは思考表示の見え方を変えるだけで、推論能力そのものの有効・無効を切り替える命令ではありません。
19. OpenRouter + GLM-5.3-Flashは、低コストの主力として設定できます
GLM-5.3-Flashは2026年8月26日に公開されたZ.AIのネイティブマルチモーダルモデルです。公式資料はモデルコードをglm-5.3-flash、100万トークン級の文脈、function calling対応と説明しています。OpenRouter上のslugはz-ai/glm-5.3-flashです。Z.AI公式OpenRouter
接続する
OpenRouterで専用APIキーを作る
名前を「OpenCode-Mac」など用途が分かるものにし、小さな日次または月次上限を付けます。
OpenCodeで接続する
/connect
# OpenRouterを選び、APIキーを貼るモデルを選ぶ
/models
# GLM 5.3 Flash を検索して選ぶ読み取りだけで疎通確認する
現在の作業フォルダを変更せずに確認してください。
ファイル一覧、使われている言語、次に安全に試せる作業を説明してください。モデルが一覧に出ないときの手動設定
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"openrouter": {
"models": {
"z-ai/glm-5.3-flash": {}
}
}
},
"model": "openrouter/z-ai/glm-5.3-flash"
}
通常はOpenRouter側のモデルが事前に読み込まれます。手動追加は、一覧が更新されていない場合だけにしてください。まずopencode modelsで実際のIDを確認します。
Z.AI直接接続に切り替える場合
/connectでZ.AIを選びます。GLM Coding Plan契約者向けの選択肢も公式案内にあります。直接接続時の正確なモデルIDはopencode modelsで確認し、古い記事にあるGLM-4.7などをそのまま写さないでください。
/modelsとモデルページを再確認してください。20. 料金は「読ませた量+答えた量」で増え、長い会話ほど入力が膨らみます
AIは文章をトークンという細かな単位へ分けて数えます。入力トークンには、あなたの依頼、会話履歴、AGENTS.md、ファイル、ツール説明、実行結果などが含まれます。出力トークンはAIの返答やコードです。
2026年8月27日のGLM-5.3-Flash例
OpenRouter掲載の期間限定価格は、入力100万トークンあたり0.075ドル、出力100万トークンあたり0.25ドルです。10万入力、2万出力なら次の計算です。
入力: 100,000 ÷ 1,000,000 × $0.075 = $0.0075
出力: 20,000 ÷ 1,000,000 × $0.25 = $0.0050
合計: $0.0125
この数値はコードで検算済みです。割引はOpenRouter表示上2026年9月9日16:00 UTCまでで、実行業者により通常価格や可用性が異なります。為替換算は日々変わるため固定していません。
費用を抑える7つの習慣
- 1セッション1目的にし、関係ない履歴を引きずらない。
@で必要なファイルだけ渡す。- 巨大なログはエラー前後へ絞る。
- 探索と定型修正は安い主力モデル、設計と最終レビューは上位モデルへ分ける。
- エージェントの
stepsで反復上限を設ける。 opencode stats --models 10でモデル別利用量を見る。- OpenRouterのキー上限とGuardrailを使う。
文脈がいっぱいになるとcompactが働きます
OpenCodeは標準で文脈が満杯に近づくと自動的に要約します。古いツール出力を削るpruneや、要約用の余白reservedも設定できます。手動なら/compactです。要約は便利ですが、細部を失う可能性があるため、重要な決定はAGENTS.md、仕様書、作業メモ、Gitコミットへ残します。
opencode statsはOpenCode側の集計、OpenRouterのActivityやUsageは請求側の記録です。金額に疑問があるときは両方を比べます。第V部 AIを一人で抱え込ませず、役割を分ける
primary agent、subagent、reviewer、explore、MCP、プラグインの境界を理解します。
21. primary agentは担任、subagentは目的別に呼ばれる専門家です
あなたが普段直接話す主担当をprimary agent、主担当から一部の仕事を任される専門担当をsubagentと呼びます。OpenCodeではprimary agentをTabで切り替え、subagentはAIが自動で呼ぶか、あなたが@名前で呼びます。Agents公式
標準で入っているprimary agent
| 名前 | 役割 | 権限の特徴 |
|---|---|---|
| Build | 実装、修正、テストなど通常の開発 | 標準では全ツールが有効。全体のpermission設定で絞る |
| Plan | 調査、分析、計画 | ファイル編集とbashは標準でask。完全な読み取り専用が必要ならカスタム化 |
標準で入っているsubagent
| 名前 | 役割 | 変更できるか |
|---|---|---|
| General | 複雑な調査や複数手順の仕事 | todo以外の全ツールを持ち、必要なら変更できる |
| Explore | ファイル探し、キーワード検索、コード理解 | 読み取り専用 |
| Scout | 外部ドキュメントや依存ライブラリの調査 | 作業場所を変更せず、管理キャッシュ内で外部資料を調べる |
呼び方
@explore ログイン処理に関係するファイルを探し、変更せずに流れを説明してください。
@scout このプロジェクトで使っているライブラリの公式実装を調べ、
現在の使い方と食い違う点だけ報告してください。
子セッションを見る
subagentの仕事は子セッションへ分かれます。標準ではCtrl+X → ↓で最初の子、→と←で子を切り替え、↑で親へ戻ります。
深さは1から始める
subagent_depthの標準値は1で、primary agentはsubagentを呼べますが、そのsubagentはさらに別のsubagentを呼べません。初心者は1を保ちます。2以上は作業と費用の追跡が難しくなります。
22. reviewerは実装担当と分け、ファイルを書き換えられない設定にします
レビュー担当は「直す人」ではなく「問題を見つけ、根拠と優先度を報告する人」にします。同じモデルでも別セッションに分けると、実装中の思い込みを引きずりにくくなります。さらに上位モデルを割り当てれば、普段の費用を抑えながら難しい確認だけ厚くできます。
プロジェクト専用reviewer
.opencode/agents/reviewer.mdを作り、次を保存します。
---
description: 実装済みの変更を読み取り専用でレビューする
mode: subagent
model: openrouter/z-ai/glm-5.3
steps: 12
color: warning
permission:
edit: deny
external_directory: deny
task: deny
bash:
"*": ask
"git status": allow
"git diff": allow
"git diff --stat": allow
"git log --oneline -5": allow
webfetch: ask
websearch: ask
---
あなたはコードレビュー担当です。ファイルを変更しないでください。
確認する順番:
1. 依頼内容と変更差分が一致しているか
2. 正しさと境界条件
3. セキュリティと秘密情報
4. macOS、ブラウザ、言語の公式仕様との不一致
5. テスト不足と再現手順
問題は「重要度・ファイル・場所・理由・直し方」の順で報告します。
問題が見つからない場合も、確認した範囲と未確認の範囲を分けてください。
変更、コミット、pushは行いません。
上のmodelは一例です。実際に使えるIDをopencode modelsで確認してください。上位モデルの料金が高い場合は、普段はGLM-5.3-Flashのままにし、大きな変更だけ手動でモデルを替えても構いません。
reviewerを呼ぶ
@reviewer 現在のgit diffをレビューしてください。
ファイルは変更しないでください。
依頼は「設定画面にダークモード切替を追加」です。
致命的、重要、軽微の順で報告し、テスト不足も挙げてください。
レビュー結果をそのまま修正命令にしない
reviewerも誤ります。指摘ごとに、実際のコード、テスト、公式仕様を照らします。納得した項目だけBuildへ「この指摘の原因を確認し、正しければ修正」と渡してください。
editがdenyであること、git pushを実行できないこと、レビュー依頼が実装の目的を含むこと。この3点を確認します。23. 主力・探索・外部調査・レビューの4役で、仕事の流れが安定します
最初から多数のエージェントを作る必要はありません。標準のBuild、Explore、Scoutに、前章のreviewerを1つ足せば十分です。
読み取り専用
実装と検証
変更なし
おすすめの一連の依頼
1. Planへ:
「設定画面に検索を追加したい。変更せず、影響範囲と確認方法を計画してください」
2. Exploreへ:
「@explore 設定画面、状態管理、既存テストの関係ファイルを探してください」
3. Buildへ:
「計画のうち検索欄だけ実装してください。変更後に対象テストを実行し、git diffを要約してください」
4. Reviewerへ:
「@reviewer 現在の差分を変更せずレビューしてください」
5. Buildへ:
「reviewerの重要指摘2だけ、原因を再確認して正しければ修正。再テストしてください」
並列化が効く仕事、効かない仕事
「認証コードを探す」と「公式仕様を調べる」は独立しやすく、ExploreとScoutへ並行して任せられます。一方、同じファイルを2人が同時に編集すると衝突します。初心者は編集をBuildの1人へ集め、他は読み取り専用にします。
費用を守るための上限
エージェントごとのstepsは、何回まで「考える→道具を使う」を続けるかの上限です。無制限に近い設定は、同じ失敗を繰り返したときに費用を増やします。Exploreは6〜10、Reviewerは8〜15から試し、足りないときだけ増やします。
24. MCPは外部の道具、プラグインはOpenCode本体の拡張、スキルは再利用する手順書です
| 仕組み | 何を増やすか | たとえ | 主な危険 |
|---|---|---|---|
| MCP | 外部サービスや専用機能のツール | 外部業者につながる専用電話 | 外部送信、権限、文脈増加 |
| プラグイン | イベント処理、カスタムツール、連携 | 作業場へ増設する機械 | 起動時にコードが動く、依存パッケージ |
| スキル | 特定仕事の手順と判断基準 | 必要なときだけ開く作業マニュアル | 不適切な指示、古い手順 |
MCPはlocalとremoteに対応します
OpenCodeはローカルで起動するMCPサーバーと、URLへ接続するremote MCPに対応します。追加された道具は内蔵ツールと並んでAIへ見えます。remote MCPのOAuth認証は、401応答を検知して認証を始め、対応先では動的クライアント登録を使います。MCP公式
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"example": {
"type": "remote",
"url": "https://mcp.example.com/mcp",
"enabled": false
}
}
}
最初はenabled: falseで置き、提供元、必要権限、送信データを確認してから有効にします。MCPツールの説明はコンテキストを使います。公式も、特にGitHub MCPのように道具が多いサーバーは文脈上限を圧迫しやすいと注意しています。
プラグインは信頼できるものだけ
プロジェクトの.opencode/plugins/または全体の~/.config/opencode/plugins/へJavaScript/TypeScriptを置くと、起動時に読み込まれます。npmパッケージをplugin設定へ書くとBunで自動インストールされ、~/.cache/opencode/node_modules/へ保存されます。Plugins公式
opencode --pureで外部プラグインなしに起動し、原因を切り分けます。スキルは必要なときだけ本文を読み込みます
SKILL.mdへ名前、説明、手順を書きます。OpenCodeは一覧として名前と説明を見せ、必要になったときだけ全文を読み込みます。プロジェクトなら.opencode/skills/名前/SKILL.md、全体なら~/.config/opencode/skills/名前/SKILL.mdです。Skills公式
初心者が拡張を入れる順番
- 拡張なしでOpenCodeを安定させる。
- 1つだけ追加する。
- 何が増えたか、どこへ接続するかを記録する。
- 問題が出たら無効化し、
--pureで再現する。
25. 同じOpenCodeでも、TUI・Desktop・Web・IDEは「見せ方」と得意場面が違います
| 画面 | 得意 | 始め方 | 注意 |
|---|---|---|---|
| TUI | キーボード中心、OpenCodeの基本理解 | opencode | 現在の作業場所を確認 |
| CLI非対話 | 1回の処理、スクリプト、CI | opencode run "依頼" | 自動実行の権限と出力保存 |
| Desktop | タブで複数セッション、視覚的な管理 | アプリを起動 | 背景でローカルサーバーが動く |
| Web | ブラウザでセッションを管理 | opencode web | ネットワーク公開時は必ずパスワード |
| IDE | 選択コードや開いているファイルと連携 | IDE内ターミナルでopencode | CLIのPATHと拡張インストール権限 |
Desktop版
公式ダウンロードページはmacOSのApple Silicon版、Intel版、Homebrew caskを案内しています。Desktop版はローカルのopencode-cliをsidecarとして動かします。画面が真っ白ならmacOSメニューの「Reload Webview」、接続失敗ならServer pickerのDefault serverをClearするのが公式の初期確認です。
Web版
opencode web
標準では127.0.0.1の空きポートで開きます。自分のMacだけで使う限りはローカルですが、--hostname 0.0.0.0でネットワーク公開すると他の端末から到達できます。公開時はOPENCODE_SERVER_PASSWORDを必ず設定します。Web公式
IDE連携
VS Code、Cursor、Windsurf、VSCodiumなどの統合ターミナルでopencodeを起動すると拡張が自動導入されます。MacではCmd+Escで分割ターミナル、Cmd+Shift+Escで新規セッション、Cmd+Option+Kでファイル参照を挿入できます。IDE公式
第VI部 依頼の書き方を覚え、3つの実習で手を動かす
良い依頼は長文だから良いのではなく、目的・範囲・確認方法が揃っています。
26. 良い依頼文は「目的・現状・範囲・禁止・確認・報告」の6点を持ちます
OpenCode公式の入門も、チームの若手開発者へ話すように、十分な背景と例を与えることを勧めています。命令口調を強くするより、完成の判定方法を具体的にする方が効きます。
そのまま使える基本形
目的:
何を完成させたいか。
現状:
今はどうなっているか。エラーがあれば全文。
範囲:
変更してよいフォルダ・ファイル・機能。
禁止:
変更してはいけないもの。削除、依存更新、外部公開など。
確認:
実行するテスト、ビルド、目視確認。成功条件。
報告:
変更ファイル、確認結果、未確認、残るリスク。
悪い依頼と良い依頼
| 悪い依頼 | 何が足りないか | 良い依頼 |
|---|---|---|
| 「いい感じに直して」 | 目的と成功条件 | 「設定画面の保存ボタンがスクロール中も見えるようにする。色と文言は変えない。既存UIテストを実行する」 |
| 「全部リファクタして」 | 範囲、優先順位、戻し方 | 「src/authだけを対象に、重複した検証処理を共通化。公開APIは変えない。まず計画だけ」 |
| 「エラーを直して」 | 再現手順と証拠 | 「ログイン後に設定を開くと添付エラーが出る。再現手順はA→B→C。原因を特定してから最小修正」 |
| 「動くまでやって」 | 止める条件、安全境界 | 「対象テストが3回続けて同じ原因で失敗したら止まり、原因と次の選択肢を報告」 |
Planから始める依頼
この依頼ではまだファイルを変更しないでください。
関係ファイル、現在の仕組み、変更案、危険、テスト方法を調べ、
実装を5〜8手順で提案してください。
不明点は、コードから判断できないものだけ質問してください。
完了報告の型も指定する
完了時は次の順で報告してください。
1. 何が変わったか
2. 変更したファイル
3. 実行した確認と結果
4. 確認できなかったこと
5. 元へ戻す方法
27. Macアプリ実習では、Xcodeで箱を作り、OpenCodeに小さな機能を足させます
最初から署名、配布、App Storeまで進めません。SwiftUIの空のmacOS AppをXcodeで作り、「集中タイマー」を1画面だけ実装します。完成条件は、ビルドでき、開始・一時停止・リセットが動くことです。
準備
- Xcodeを開き、「Create a new Xcode project」を選びます。
- macOSのAppを選び、Product Nameを
FocusTimer、InterfaceをSwiftUI、LanguageをSwiftにします。 ~/Documents/OpenCodeProjects/FocusTimerなど専用フォルダへ保存します。- Xcodeで一度実行し、空のウィンドウが開くことを確認します。
cd "$HOME/Documents/OpenCodeProjects/FocusTimer"
pwd
git status
opencode第1段階:調べるだけ
このSwiftUI macOSプロジェクトを変更せずに確認してください。
初心者向けに、アプリの入口、画面を作るファイル、テストの有無、
ビルド方法を説明してください。推測は推測と明記してください。
第2段階:Planで設計する
25分の集中タイマーを1画面で追加したいです。
必要な機能:
- 残り時間を分:秒で表示
- 開始、一時停止、リセット
- 0になったらMacの通知音を1回
制約:
- 外部ライブラリを追加しない
- 既存のBundle IDと署名設定を変えない
- まだ変更しない
関係ファイル、状態管理、タイマー停止処理、確認方法を計画してください。
第3段階:小さく実装する
計画のうち、画面表示と開始・一時停止・リセットだけ実装してください。
通知音は次の作業に残します。
変更前に対象ファイルを示し、変更後は次のビルドを実行してください。
xcodebuild -project FocusTimer.xcodeproj -scheme FocusTimer \
-configuration Debug build CODE_SIGNING_ALLOWED=NO
失敗したら同じ修正を繰り返さず、エラーの最初の原因を説明してください。
プロジェクト名やschemeが違えば命令も変わります。先にxcodebuild -list -project FocusTimer.xcodeprojで確認できます。
第4段階:人間が画面を確認する
- 開始で1秒ずつ減る。
- 一時停止中は減らない。
- 再開しても2倍速にならない。
- リセットで25:00へ戻る。
- ウィンドウを閉じた後、不要なタイマー処理が残らない。
第5段階:レビューする
@reviewer 現在のgit diffを変更せずレビューしてください。
特にTimerの多重起動、メモリ保持、UI更新スレッド、
アプリ終了時の停止処理、テスト不足を確認してください。
28. Chrome拡張実習では、権限の少ない「ページ情報メモ」を作ります
開いているページのタイトルとURLを取得し、メモとしてコピーする小さなManifest V3拡張を作ります。Webページを勝手に変更せず、外部サーバーへ送信しない設計にします。
空のフォルダを作る
mkdir -p "$HOME/Documents/OpenCodeProjects/page-note-extension"
cd "$HOME/Documents/OpenCodeProjects/page-note-extension"
git init
opencode
Planへ渡す依頼
Chrome Manifest V3の拡張機能「Page Note」を作りたいです。
まだファイルは変更しないでください。
動作:
- ツールバーのアイコンを押すと小さなpopupを開く
- 現在のタブのタイトルとURLを表示
- 「コピー」で「タイトル 改行 URL」をクリップボードへコピー
制約:
- 外部通信なし
- 収集・保存なし
- content scriptなし
- 必要最小限のpermissionsだけ
- npmやビルド工程なし。HTML/CSS/JavaScriptのみ
必要ファイル、permissionsの理由、手動テスト手順を提案してください。
実装依頼
提案を実装してください。
manifest.json、popup.html、popup.css、popup.jsを作成し、
すべての権限について「なぜ必要か」を報告してください。
アイコンは今回は省略してよいです。
構文上の問題を確認し、Chromeへの読み込み手順も説明してください。
Chromeへ読み込む
- Chromeで
chrome://extensionsを開きます。 - 右上の「デベロッパーモード」を有効にします。
- 「パッケージ化されていない拡張機能を読み込む」を押します。
page-note-extensionフォルダを選びます。- 通常ページで拡張を開き、タイトル・URL・コピーを確認します。
チェックするべきmanifest
{
"manifest_version": 3,
"name": "Page Note",
"version": "1.0.0",
"action": { "default_popup": "popup.html" },
"permissions": ["activeTab"]
}
activeTabは、利用者が拡張を操作したときの現在タブへ一時的にアクセスするために使います。実装方法によりtabs権限が不要かをOpenCodeに確認し、Chromeの公式仕様と実動作で確かめます。
29. 既存プロジェクトは「現状保存→再現→最小修正→差分→再確認」の順で触ります
すでに動いているプロジェクトは、新規作成より慎重さが必要です。関係のない変更、依存パッケージの一括更新、書式の全面変更を混ぜないことが要点です。
着手前の5点確認
pwd
git status
git branch --show-current
git log -5 --oneline
git diff
未コミットの変更があれば、それが自分の作業か他人の作業かを確認します。OpenCodeへ「既存の変更を上書きしない」と明示します。
バグ修正の依頼例
目的:
設定画面で「保存」を2回押すと同じ項目が重複するバグを直す。
再現:
1. 設定画面を開く
2. 名前に「テスト」と入力
3. 保存を素早く2回押す
4. 一覧に2件追加される
範囲:
- まず変更せず原因を特定する
- 関係する最小範囲だけ修正する
- 公開APIとデータ形式は変えない
- 既存の未コミット変更は保持する
確認:
- 再現テストを先に追加できるか検討
- 対象テストと全体テストを実行
- git diffをファイル別に要約
停止条件:
同じ原因でテストが3回失敗したら止まり、証拠と選択肢を報告する。
差分を読んでからコミットする
git status
git diff --stat
git diff
# 内容に納得してから
git add 対象ファイル
git diff --staged
git commit -m "保存の二重送信を防止"
ビルド失敗は、コードの失敗とは限りません
依存パッケージ未導入、Xcode版違い、環境変数不足、ネットワーク停止、署名設定、テストデータ不足でも失敗します。OpenCodeへ「最初に出た根本エラー」「環境エラーかコードエラーか」「変更なしで直せる準備不足か」を分けて報告させます。
第VII部 困ったときに自力で戻る
エラーを症状別に切り分け、記録し、元へ戻すための逆引き資料です。
30. エラーは「起動・認証・モデル・権限・通信・プロジェクト」の6層に分けます
何でも再インストールすると、原因が消えず、設定や履歴だけ失うことがあります。症状がどの層かを先に決め、狭い確認から進めます。
症状A:opencode: command not found
command -v opencode
ls -la "$HOME/.opencode/bin/opencode"
echo "$PATH"
grep -n "opencode" "$HOME/.zshrc" "$HOME/.zshenv" 2>/dev/null
公式スクリプト版は~/.opencode/binへ入ります。ファイルがあるのにcommand -vで見つからないならPATH問題です。
export PATH="$HOME/.opencode/bin:$PATH"
exec zsh
opencode --version
これで直る場合は、export PATH="$HOME/.opencode/bin:$PATH"を~/.zshrcへ1回だけ追加します。重複行を何本も足さないでください。Homebrew版ならbrew --prefixとbrew list opencodeも確認します。
症状B:OpenCodeが起動しない、すぐ終了する
opencode --version
opencode --print-logs
opencode --log-level DEBUG --print-logs
opencode --pure
--pureで起動できるなら外部プラグインが有力です。opencode upgradeで最新版へ更新し、ログの最初のエラーを見ます。最後の連鎖エラーだけをAIへ貼らないでください。
症状C:APIキーが無効、認証できない
/connectでもう一度正しいプロバイダーを選びます。- キーの先頭・末尾へ空白や改行が入っていないか確認します。
- 期限、残高、利用上限、組織・プロジェクトの制限を提供元で確認します。
- 会社や学校のネットワークがAPIドメインを止めていないか確認します。
auth.jsonを画面へ表示して確認しようとしないでください。秘密を露出します。必要ならプロバイダー側で古いキーを無効化し、新しい専用キーを発行します。
症状D:モデルが出ない、ProviderModelNotFoundError
opencode models
opencode debug config
モデルIDはprovider/model-idです。OpenRouter経由ならopenrouter/z-ai/glm-5.3-flashのようになります。次を順に確認します。
- プロバイダー認証が完了しているか。
- モデル名を古い記事から写していないか。
enabled_providersやdisabled_providersで隠していないか。blacklistやwhitelistで一覧を絞っていないか。- モデルに地域、契約、組織の利用条件がないか。
OPENCODE_DISABLE_MODELS_FETCHが有効でないか。
症状E:ProviderInitError
設定ファイルの構文、プロバイダーID、npmパッケージ、baseURLなどを疑います。最初にopencode debug configで解決後の設定を見て、直前の変更を戻します。公式トラブルシューティングはアプリデータ削除を案内しますが、そこには認証とセッションが含まれます。削除は最後です。
rm -rf ~/.local/share/opencodeは認証情報やセッションデータを消します。まずバックアップ、--dry-run相当の対象確認、設定の最小修正を行います。症状F:AI_APICallError、急にAPI呼び出しが失敗する
提供元障害、回線、レート制限、残高、モデル廃止、OpenCodeが動的導入するプロバイダーパッケージの古いキャッシュを疑います。
# まずログと提供元ステータスを確認
opencode --log-level DEBUG --print-logs
# プロバイダーパッケージのキャッシュ再構築が必要な場合
# Finderで ~/.cache/opencode を退避してから再起動する
削除ではなく、まず~/.cache/opencodeを一時的に別名へ移す方が戻しやすい方法です。OpenCodeを再起動すると必要なパッケージが再取得されます。
症状G:権限エラー、毎回聞かれる、逆に聞かれない
opencode debug configで最終的なpermissionを見ます。- プロジェクト設定が全体設定を上書きしていないか確認します。
- ルールは最後に一致したものが勝つため、並び順を確認します。
--autoやTUIのauto indicatorが有効でないか見ます。- 会社Macでは管理設定が最優先になっていないか管理者へ確認します。
作業場所の外へ触るとexternal_directoryが反応します。必要なフォルダだけを明示的に許可し、ホーム全体を許可しないでください。
症状H:ネットワークエラー、タイムアウト
Wi‑Fiだけでなく、VPN、プロキシ、証明書、DNS、会社の通信制限、提供元障害を分けます。OpenCodeのnetwork設定やプロバイダーのtimeoutをむやみに長くする前に、ブラウザで提供元のstatusページ、別回線、同じキーのダッシュボードを確認します。
# URLそのものへ秘密を付けず、名前解決だけを見る例
nslookup openrouter.ai
# OpenCodeログを表示
opencode --log-level DEBUG --print-logs
症状I:ビルドが失敗する
次の問いをOpenCodeへ順番に答えさせます。
この失敗を変更せずに分析してください。
1. 最初に出た根本エラーはどれか
2. コード、依存関係、環境、権限、ネットワークのどの層か
3. 再現する最小の命令は何か
4. 修正候補ごとに、変更対象と副作用は何か
5. 一番小さな確認から何を試すか
Xcodeならscheme、SDK、署名、Deployment Target。Node.jsならNode版、lockfile、package manager。Pythonなら仮想環境、Python版、依存ファイルを確認します。「依存を全部最新版にする」は最初の解決策にしません。
症状J:AIが同じ操作を繰り返す
Escで止めます。OpenCodeのdoom_loopは同じ入力のツール呼び出しが3回続くと確認を求めますが、少しずつ違う失敗は検知されない場合があります。
作業を止めてください。
これまで試したこと、各結果、変わらなかった事実、
現在もっとも可能性が高い原因を表にしてください。
次の操作はまだ実行しないでください。
opencode debug configから秘密を除いた関係部分。APIキーや顧客コードは含めません。31. ログは原因調査、アップデート(更新)は互換性維持、アンインストールは最後の整理に使います
ログの場所
macOSでは~/.local/share/opencode/log/です。時刻を含む名前で保存され、公式資料では直近10個が保持されます。
ls -lt "$HOME/.local/share/opencode/log" | head
opencode --print-logs
opencode --log-level DEBUG --print-logs
ログを共有する前に、APIキー、認証ヘッダー、ユーザー名、絶対パス、顧客データを検索して隠します。共有用のセッションexportには--sanitizeがあります。
opencode export --sanitize
更新する
opencode --version
opencode upgrade
Homebrewで入れた場合は、管理方法を揃えるためbrew updateとbrew upgrade opencodeを使う方が分かりやすい運用です。Desktop版caskならbrew upgrade --cask opencode-desktopです。
OpenCode本体は起動時に自動更新できます。autoupdate: falseで無効、"notify"で通知のみですが、通知のみはHomebrewなどパッケージ管理で入れた場合には機能しないと公式が説明しています。
更新前後のチェック
- 重要作業中でないこと。
- 設定ファイルをバックアップ。
- 現在版を記録。
- 更新後に
opencode --version。 opencode debug config。/models、権限、プラグイン、1つの読み取り依頼を確認。
アンインストールは最初にdry-run
opencode uninstall --dry-run
# 設定とセッションを残す場合
opencode uninstall --keep-config --keep-data
opencode uninstallは削除対象を示して確認を求めます。--forceは確認を飛ばすため、初心者は使いません。Desktop版はアプリを終了し、macOSの通常のアプリ削除方法で削除します。CLI公式
32. 事故を防ぐ12項目は、知識より先に習慣へします
ホームフォルダ、デスクトップ全体、書類全体で起動しない。専用プロジェクトへ移動し、pwdを確認します。
意味の分からない命令を承認しない。目的、対象、失敗時の影響を説明させます。
--autoから始めない。確認画面は学習材料です。
APIキーを会話、Git、画像へ入れない。露出したら削除だけでなく提供元で無効化します。
Gitなしで大きな変更をさせない。動く状態をコミットしてから始めます。
「全部直して」と範囲を開かない。1回1目的、変更場所を限定します。
テスト成功だけで完成と言わない。実際の画面、主要操作、差分も確認します。
レビュー指摘を無条件で採用しない。コードと公式仕様で再確認します。
プラグインやMCPをまとめて追加しない。1つずつ入れ、問題時に切り戻します。
顧客・医療・財務などの機密データをモデルへ送らない。組織の規則と提供者のデータ方針を確認します。
エラーの最後だけ貼らない。実行命令と最初の根本エラーを含めます。
「確認した」と「動作した」を混ぜない。コードを読んだ、ビルドした、実際に操作した、を分けて報告させます。
33. 12の練習課題を順にこなすと、読むだけから自力運用へ移れます
すべて専用の練習フォルダで行います。各課題の合格条件まで確認してから次へ進んでください。
| 段階 | 課題 | 合格条件 |
|---|---|---|
| 1 | pwdとlsで作業場所を説明する | 絶対パスと中身を自分で読める |
| 2 | OpenCodeを起動し、変更なしでフォルダ説明 | AIが書き込みをしていない |
| 3 | /connectと/models | 選択中のprovider/modelを言える |
| 4 | 安全なpermission設定 | 読み取りは自動、編集は確認、rmは拒否 |
| 5 | Git初期化と最初のコミット | git statusがclean |
| 6 | テキストファイルを1つ作らせる | 事前説明、承認、差分確認ができる |
| 7 | /undoと/redo | ファイル内容が戻り、再び復元する |
| 8 | /newと/sessions | 仕事を2セッションへ分けて戻れる |
| 9 | AGENTS.mdを作り、人間が修正 | 具体的な禁止・確認・完了条件がある |
| 10 | @exploreで読み取り調査 | 変更なしで関係ファイルを見つける |
| 11 | reviewerを作り、差分レビュー | reviewerがファイルを変更できない |
| 12 | 小さな機能をPlan→Build→Review | テスト、差分、手動確認、コミットまで完了 |
練習用の安全な課題例
- Markdownの買い物リストを作る。
- HTML1枚の自己紹介ページを作り、ブラウザで開く。
- CSVを読み、行数と空欄数を数える小さなスクリプトを作る。
- 既存READMEの誤字1か所だけ直し、差分を見る。
34. FAQ:初心者が止まりやすい疑問へ短く答えます
Q1. OpenCodeは無料ですか?
OpenCode本体はオープンソースです。ただし、接続するAIモデルは有料の場合があります。無料モデルやローカルモデルもありますが、速度、回数、品質、Macの性能に制約があります。
Q2. ChatGPT Plusを契約していればAPI料金は不要ですか?
契約とAPI課金は一般に別ですが、OpenCode公式のOpenAI接続画面にはChatGPT Plus/Pro認証とAPIキー入力の選択肢があります。実際の利用条件と対象モデルは認証画面・OpenAI側の現在の案内を確認してください。
Q3. プログラミングを知らなくても使えますか?
小さな学習や雛形作成には使えます。ただし、OpenCodeが行う変更の意味を少しずつ学ぶ必要があります。最初は「変更しない説明」「1ファイルだけ」「テスト付き」の順で進めてください。
Q4. ターミナルが怖いです
怖さの多くは、命令の影響範囲が見えないことから来ます。専用フォルダ、pwd、git status、ask権限の4つで範囲を見えるようにします。
Q5. Desktop版だけでよいですか?
使えます。ただしPATH、作業場所、ログ、Git、非対話命令を理解するにはCLIも触ると役立ちます。まずTUIで基本を覚え、日常はDesktopへ移る使い方もできます。
Q6. iTerm2は必須ですか?
必須ではありません。Mac標準ターミナルでも動きます。見やすさとタブ管理を整えたい場合にiTerm2が便利です。
Q7. VS Codeは必要ですか?
必須ではありません。Xcode、Cursor、Windsurf、VSCodiumなどでも使えます。OpenCode TUIだけでもファイル編集と実行は可能です。
Q8. GitHubアカウントは必要ですか?
ローカルで使うだけなら不要です。GitHubへ共有、PR作成、Issues連携をする段階で必要になります。GitはGitHubなしでも使えます。
Q9. OpenRouterとZ.AI直接接続のどちらが安いですか?
価格、割引、契約プラン、実行業者が変わるため固定回答はできません。同じモデル、同じ時点、入力・出力・キャッシュ単価、購入手数料、月額枠を揃えて比較します。
Q10. ローカルのOllamaなら秘密は絶対に外へ出ませんか?
モデル推論をMac内で完結させやすい利点があります。ただしOpenCodeのWeb検索、MCP、プラグイン、パッケージ取得などが別に通信する可能性はあります。「モデルがローカル」と「作業全体がオフライン」は別です。
Q11. 長いセッションを続けるほど賢くなりますか?
関係する履歴は助けになりますが、不要な情報が増えると費用と混乱が増えます。1目的1セッション、重要な決定はファイルへ残す、区切りで/compactまたは新規セッションが基本です。
Q12. Planなら絶対に変更しませんか?
現在の公式説明では、Planのファイル編集とbashは標準でaskです。確認を許可すれば実行できます。完全に読み取り専用へしたい場合は、カスタムエージェントでedit: deny、必要なbashもdenyにします。
Q13. Exploreとreviewerは何が違いますか?
Exploreはコード内を素早く探す標準の読み取り専用subagentです。reviewerは本書で追加するカスタム担当で、変更が依頼に合うか、バグや安全問題がないかを評価します。
Q14. サブエージェントを増やすほど良くなりますか?
増やすほど費用、重複、矛盾、追跡の難しさも増えます。役割が独立し、成果物が明確な仕事だけ分けます。編集担当は1人に集めるのが初心者向けです。
Q15. /undoがあればバックアップ不要ですか?
不要にはなりません。セッション内の戻し機能、Gitコミット、外部バックアップは別の防波堤です。重要なデータは複数の回復手段を持ちます。
Q16. モデルが勝手にネット検索しますか?
websearchやwebfetchが許可され、モデルが必要と判断した場合に使えます。安全設定でaskまたはdenyにできます。外部送信したくない作業では禁止します。
Q17. エラー文を全部AIへ貼ってよいですか?
秘密、個人名、絶対パス、トークン、顧客データを除いてから貼ります。必要なのは実行命令、最初の根本エラー、その前後、再現手順です。
Q18. OpenCodeの設定をGitへ入れてよいですか?
プロジェクトのopencode.jsonやAGENTS.mdは共有できますが、APIキーを直接書いてはいけません。環境変数参照や秘密ファイル参照を使い、秘密ファイルは.gitignoreへ入れます。
Q19. 途中でモデルを替えてもよいですか?
替えられます。難問だけ上位モデルへ替える使い方は合理的です。モデルにより得意なツール、推論設定、出力の癖が違うため、切替後は目的と現状を短く再確認させます。
Q20. どこまでできれば実務の入口ですか?
コードを暗記する必要はありません。作業場所を限定し、権限を説明し、Gitで戻せ、よい依頼を書き、差分・テスト・実動作を確認し、費用を追跡できれば実務の入口に立っています。
35. 用語集:分からない言葉が出たらここへ戻ります
| 用語 | 意味 |
|---|---|
| AIコーディングエージェント | コードを答えるだけでなく、ファイルや命令を使って複数手順の開発作業を進める仕組み。 |
| API | ソフト同士が決められた形で情報や命令を渡す入口。 |
| APIキー | API利用者を識別する秘密の文字列。パスワード同様に扱う。 |
| LLM | Large Language Model。大量の文章から学び、文章やコードを入力・出力するAIモデル。 |
| BYOK | Bring Your Own Key。利用者が自分で契約したプロバイダーのAPIキーを持ち込む方式。 |
| CLI | Command Line Interface。文字の命令で使う方式。 |
| TUI | Terminal User Interface。ターミナル内に作られた対話画面。 |
| ターミナル | 文字でMacへ命令するアプリ。 |
| シェル | ターミナルに入力された命令を解釈して実行するプログラム。Macではzshが一般的。 |
| bashツール | OpenCodeのAIがシェル命令を実行するための道具名。zsh環境でも設定名はbash。 |
| PATH | 命令の実行ファイルをMacが探すフォルダ一覧。 |
| ディレクトリ | フォルダの技術的な呼び名。 |
| 作業ディレクトリ | 現在の命令やOpenCodeが基準にするフォルダ。 |
| プロジェクト | 一緒に扱うコード、設定、資料のまとまり。 |
| リポジトリ | Gitで履歴管理されたプロジェクト。 |
| Git | ファイルの変更履歴を記録・比較・復元する仕組み。 |
| GitHub | Gitリポジトリをネット上で保管・共有し、IssueやPRで共同作業するサービス。 |
| コミット | Gitで名前を付けて保存した変更地点。 |
| ブランチ | 本線から分かれて作業する履歴の枝。 |
| diff/差分 | 変更前と変更後の違い。 |
| Pull Request/PR | GitHubなどで変更内容を見せ、確認と取り込みを依頼する仕組み。 |
| セッション | 1つの仕事に関する会話、道具実行、結果のまとまり。 |
| モデル | 文章やコードを考えるAI本体。 |
| プロバイダー | モデルAPIへの接続、認証、請求を提供する窓口。 |
| OpenRouter | 多数のモデルと実行業者を共通APIと統一請求で利用する窓口。 |
| Z.AI | GLMモデルを開発・提供する事業者。 |
| Ollama | MacなどでローカルAIモデルを動かし、APIとして利用するための仕組み。 |
| トークン | AIが入力と出力を数える細かな単位。文字数とは一致しない。 |
| コンテキスト | モデルが現在の判断に使える依頼、履歴、資料、道具結果のまとまり。 |
| コンテキストウィンドウ | モデルが一度に扱えるトークン上限。 |
| compaction | 長い会話を要約し、文脈を空ける処理。 |
| tool calling | モデルが読む、書く、検索、実行などの道具を選んで呼ぶ能力。 |
| permission | 道具や対象ごとに自動許可、確認、拒否を決めるOpenCode設定。 |
| allow / ask / deny | 自動許可/人へ確認/禁止。 |
| primary agent | 利用者が直接話す主担当エージェント。 |
| subagent | 探索、調査、レビューなど一部の仕事を担当する子エージェント。 |
| Build | OpenCode標準の実装向けprimary agent。 |
| Plan | OpenCode標準の計画・分析向けprimary agent。 |
| Explore | コード内を検索・理解する読み取り専用の標準subagent。 |
| Scout | 外部資料や依存ライブラリを調べる標準subagent。 |
| reviewer | 変更を評価する役割。本書では読み取り専用カスタムsubagentとして作る。 |
| AGENTS.md | プロジェクト構造、命令、規則、確認方法をAIへ伝えるMarkdownファイル。 |
| JSON / JSONC | 設定データの書式。JSONCはコメントを書ける。 |
| MCP | Model Context Protocol。AIへ外部の道具やデータを接続する標準。 |
| プラグイン | OpenCodeのイベントや道具をコードで拡張する仕組み。 |
| スキル | SKILL.mdへ書いた再利用可能な仕事手順。必要なときに読み込む。 |
| LSP | コードの定義、参照、診断などをエディタやツールへ提供する仕組み。 |
| OAuth | パスワードを直接渡さず、ブラウザなどでサービス利用を承認する認証方式。 |
| キャッシュ | 再利用して速度や費用を抑える一時保存。古い内容が不具合原因になることもある。 |
| ZDR | Zero Data Retention。実行業者が依頼内容を保持しない方針。 |
| Manifest V3 | 現在のChrome拡張機能で使われる仕様世代。 |
| SwiftUI | Apple製アプリの画面をSwiftで作る枠組み。 |
| ビルド | ソースコードを実行可能な形へ組み立て、構文や依存関係を確認する処理。 |
| テスト | 期待する入力・操作に対して正しい結果になるかを自動または手動で確かめること。 |
| CI | コード変更のたびに、ビルドやテストを自動で行う仕組み。 |
| scheme | Xcodeで、どのアプリをどの設定でビルド・実行するかをまとめた名前。 |
| sidecar | 主アプリの横で動き、背景処理を担当する補助プログラム。 |
36. 14日間で「頼める人」から「管理できる人」へ進みます
学習の終点は、OpenCodeに何でも任せることではありません。何を任せ、どこで止め、何を証拠として確認するかを自分で決められる状態です。
| 日 | 学ぶこと | 成果物 |
|---|---|---|
| 1 | ターミナル、pwd、ls、専用フォルダ | 安全な練習場所 |
| 2 | インストール、起動、/connect、/models | 読み取りだけの初回セッション |
| 3 | permission | 安全側の全体設定 |
| 4 | Git、commit、diff | 戻せる練習リポジトリ |
| 5 | AGENTS.md | 具体的な作業規則 |
| 6 | PlanとBuild | 1ファイルの小変更 |
| 7 | セッション、compact、stats | 履歴と費用の確認メモ |
| 8 | ExploreとScout | 変更なしの調査報告 |
| 9 | reviewer | 読み取り専用レビュー設定 |
| 10 | エラー切り分け | 再現手順つき障害メモ |
| 11 | Chrome拡張実習 | Page Note拡張 |
| 12 | Macアプリ実習 | FocusTimerの基本機能 |
| 13 | 既存プロジェクト最小修正 | テストつきコミット |
| 14 | 総合課題 | 計画・実装・レビュー・検証の一式 |
総合課題
「毎日の作業を1行で記録し、日付で絞り込めるローカルアプリ」など、個人情報や課金を扱わない小さな題材を選びます。次の資料を残してください。
- 目的と対象外を1ページにまとめた仕様。
- 安全設定とAGENTS.md。
- Planの計画。
- 実装差分とGitコミット。
- 自動テスト結果と手動確認表。
- reviewerの指摘と、採用・不採用の理由。
- モデル別の利用量と概算費用。
- 残る問題と次の一手。
自力運用チェックリスト
作業前
- 現在地を確認
- 秘密を除外
- Gitの状態を確認
- 目的と完了条件を定義
作業中
- Planで範囲を確認
- 権限要求を読む
- 同じ失敗を止める
- 変更を小さく保つ
作業後
- 差分を読む
- テスト・ビルド
- 実際に操作
- レビュー
運用
- 費用を確認
- 重要決定をファイル化
- コミット
- 残るリスクを記録
OpenCodeを使いこなすとは、黒い画面へ難しい命令を速く打つことではありません。作業場所を狭くし、役割を分け、証拠を集め、戻せる状態で少しずつ進めることです。その型が身につけば、モデルや画面が変わっても学び直せます。
公式資料:2026年8月27日に確認した一次情報
OpenCodeは更新が速いため、古いブログより公式Docsと公式GitHubを優先しました。特に権限設定は、安定版の現行Docsで使われるpermission、bash表記に合わせています。検索結果に出るv2系資料と混ぜないでください。
OpenCode
- Intro / インストールと初期化
- TUI / スラッシュコマンド
- CLI / セッション・統計・更新・削除
- Config / 設定場所・優先順位・スナップショット
- Providers / OpenRouter・Z.AI・OpenAI・Ollama等
- Models / 選択・既定値・variants
- Permissions / allow・ask・deny
- Tools / 読み書き・bash・検索
- Rules / AGENTS.md
- Agents / primary・subagent・built-ins
- MCP servers
- Plugins
- Agent Skills
- Keybinds
- Web
- IDE
- GitHub integration
- Troubleshooting / ログと保存先
- Desktop download
- 公式GitHubリポジトリ
- v1.18.23リリース
モデル、料金、データ
- Z.AI GLM-5.3-Flash公式
- OpenRouter GLM-5.3-Flash
- OpenRouter Guardrails公式発表
- OpenRouter Usage Accounting
- OpenRouter Data Collection
- OpenRouter Zero Data Retention
- OpenRouter Provider Routing
比較対象とGit
- OpenAI Codex CLI公式
- OpenAI Codex AGENTS.md公式
- Anthropic Claude Code公式
- Cline公式
- Cline Checkpoints公式
- Roo Code公式(終了告知)
- Git公式 Pro Git
- GitHub公式 Git入門
- GitHub公式 remote repository
opencode --help、opencode debug config、/modelsをセットで確認してください。調査基準日:2026-08-27(Asia/Tokyo)。OpenCode v1.18.23はGitHub APIで2026-08-25 06:30:49 UTC公開を確認。GLM-5.3-FlashはZ.AI・OpenRouter両公式で2026-08-26公開を確認。