OpenCode完全理解
Mac版・超初心者向け・独立マニュアル

OpenCodeを
「怖くない道具」にする本

AIやITを知らなくても大丈夫です。OpenCodeを正しく理解し、安全に始め、最後は自分で調べ、作り、確認し、直せるところまで案内します。

基準日 2026-08-27 公式Docs 同日更新 確認版 v1.18.23 単一HTML・印刷対応

最初に読む3ページ分:OpenCodeは、あなたのMacで働くAIの作業机です

OpenCodeは、文章で頼んだ仕事をもとに、プロジェクトのファイルを読み、書き換え、必要な命令を実行し、結果を確かめるためのオープンソースのAIコーディングエージェントです。ターミナル内の画面、デスクトップアプリ、Web画面、IDE連携で使えます。OpenCode公式

最初のゴール

安全設定を入れ、小さな練習用フォルダで、ファイルを1つ作って中身を確認する。

最終のゴール

作業場所、権限、モデル、費用、履歴を自分で判断し、Gitで戻せる状態で開発を進める。

最重要の注意OpenCodeの標準設定はかなり自由です。公式資料では、多くの操作が初期状態で「許可」されると説明されています。超初心者は、最初に本書の安全設定を入れてから本格作業へ進んでください。

この本は「通読部」と「困ったときに引く部分」に分かれます

初日は第1〜16章を順に読みます。OpenCodeの正体、画面、安全、Git、AGENTS.mdまでが基礎です。2日目は第17〜29章で、プロバイダー、モデル、費用、サブエージェント、3つの実習へ進みます。第30章以降は、エラーが出たときや復習したいときに開く逆引き資料です。

急いで始める90分コース

178131426 の順に読み、練習課題1〜3を行います。

完全理解コース

目次順に読みます。コードを覚えるより、「何を許可し、何を確認し、どう戻すか」を理解することが先です。

今は、次の4行だけ覚えれば十分です

cd 作業したいフォルダ
opencode
/connect
/models

cdは作業場所へ移動する命令、opencodeは起動、/connectはAIサービスとの接続、/modelsはAIモデル選択です。意味は後で丁寧にほどきます。

iTerm2についてiTerm2は、Mac標準のターミナルより表示や操作を整えやすい、使いやすい作業窓です。インストール方法は重複させないため、fujikawa.comのiTerm2解説を参照してください。標準の「ターミナル」アプリでもOpenCodeは使えます。

第I部 まず、何が起きているのかを理解する

操作を暗記する前に、OpenCode・AIモデル・ターミナル・ファイルの役割を分けます。

1. OpenCodeは「AIの頭脳」ではなく、頭脳を働かせる仕事場です

OpenCodeそのものは、ChatGPTのような巨大AIモデルではありません。OpenCodeは、AIモデルへ依頼を送り、返ってきた判断に従ってファイルやターミナルを扱う「仕事の進行役」です。

あなた目的と条件を伝える
OpenCode仕事を整理する
プロバイダーAIへつなぐ
AIモデル考えて次の行動を返す
ツール読む・書く・実行する
OpenCodeは「受付・現場監督・工具箱」をまとめた部分。考える頭脳は別に選びます。

たとえるなら、AIモデルは腕のよい職人です。OpenCodeは、職人へ設計図を渡し、倉庫から道具を出し、作業場所を限定し、作業記録を残す現場監督です。OpenRouterやZ.AIは、職人を呼ぶ窓口に当たります。

確認ポイント「OpenCodeを選ぶ」と「AIモデルを選ぶ」は別の判断です。OpenCodeをそのまま使い、日によってGLM、OpenAI、Google、ローカルモデルへ切り替えられます。

OpenCodeが得意な仕事

ひとつの質問へ答えるだけでなく、複数のファイルを調べ、計画を立て、コードを書き、テストし、失敗したら直す仕事に向きます。既存コードの説明、機能追加、バグ修正、テスト作成、文書更新、Git差分のレビューにも使えます。

OpenCodeが勝手に保証してくれないこと

正しさ、安全、安さ、著作権、公開してよい情報かどうかは、自動では保証されません。よいモデルでも勘違いします。権限が広ければ、間違った操作も実行できます。だから本書では「頼む→確認する→直す→再確認する」を1つの作業として扱います。

2. チャットAIは相談相手、コーディングエージェントは作業者です

普通のチャットAIへ「このコードを直して」と頼むと、多くの場合は修正版の文章やコードが返ります。人間がコピーし、正しい場所へ貼り、実行して確かめます。コーディングエージェントは、この後半も担当できます。

場面一般的なチャットAIOpenCode
ファイルを見る貼り付け・アップロードした範囲許可された作業フォルダを検索して読む
修正する修正版を回答として出す実ファイルを編集できる
確認する人間が実行結果を持ち帰るテストやビルドを実行し、結果を再びAIへ渡せる
長い仕事会話の中で手順を相談する複数回の道具使用をつないで進める
危険性通常は直接ファイルを壊さない広い権限では実際のファイルや命令に影響する

「ターミナル型」の意味は、黒い画面を使うことだけではありません

ターミナルは文字でMacへ命令を出す窓です。そこからOpenCodeを起動すると、OpenCodeは今いるフォルダを作業場所として扱います。画面に文章を書くだけで、その場所のファイルを調べ、必要なら命令を実行できます。この「現在地」がとても重要です。

住所を間違えると別の家で作業しますOpenCodeを起動する前に、必ずpwdで現在地、lsで中身を確認してください。初心者の事故は、難しいAI機能より「違うフォルダで起動した」ことから起きやすいものです。

3. OpenCodeの強みは、AIモデルと使い方を自分で組み替えられることです

2026年8月27日時点の違いを、初心者が選ぶときに必要な範囲へ絞ると次のようになります。製品は頻繁に変わるため、表は「永久の優劣」ではなく現在の設計思想の比較です。

製品中心となる使い方モデルの自由度向く人注意
ChatGPT会話、調査、文書、幅広い仕事ChatGPT内で提供されるモデルまずAIに相談したい人ローカル開発環境を直接扱う仕組みとは分けて考える
CodexCLI、IDE、デスクトップ、クラウドで開発OpenAIのCodex環境・モデルが中心OpenAIの統合された作業環境を使いたい人OpenCodeとは別製品。名前が似た旧「OpenCode」系情報にも注意
Claude Codeターミナル、IDE、デスクトップ、WebClaude中心。CLI/IDEは一部第三者プロバイダーも対応Claudeと深く統合された体験がほしい人OpenCodeからClaude Pro/Maxを使う非公式プラグインはAnthropicが明示的に禁止
ClineIDE中心。CLIやKanbanもあるBYOKやローカルを含めて広い差分を画面で見て逐次承認したい人チェックポイントと承認の考え方はOpenCodeと異なる
Roo CodeかつてのVS Code拡張広かった現在は新規採用しない公式文書では2026年5月15日に拡張終了
OpenCodeTUI、CLI、Desktop、Web、IDE75以上のプロバイダーとローカルモデルモデル、費用、役割、権限を自分で設計したい人自由度が高いぶん、安全設定を自分で整える

参照:OpenCodeCodex CLIClaude CodeClineRoo Code

反論:初心者ならCodexやClaude Codeの方が簡単では?その通りになる場合があります。1社のアカウントと標準モデルで迷わず始めたいなら、統合型製品は有力です。
再反論:OpenCodeを選ぶ理由費用の安いモデルを主力にし、難しいレビューだけ別モデルへ渡す構成や、Ollamaのローカルモデルへ切り替える構成を同じ道具で保ちたいなら、OpenCodeの自由度が効きます。

📍 本書の推奨は「万人にOpenCodeが最良」という意味ではありません。モデル選択の自由、OpenRouter経由の一括管理、役割別エージェントを重視する人には相性がよい、という設計上の判断です。

4. OpenCodeは「考える」と「手を動かす」を何度も往復します

OpenCodeへ依頼すると、一度の回答だけで終わらないことがあります。まず状況を読み、次の一手を決め、道具を使い、その結果を読み直します。これがエージェントの基本ループです。

1 目的何を完成させるか
2 観察ファイル・エラー・画面
3 行動編集・命令・検索
4 検証テスト・ビルド・差分
「作る→確認する→直す→再確認する」。同じ作業を空回りさせず、毎周回で新しい証拠を得ます。

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が使える読む・書く・実行などの手段工具
権限各工具を自動で使うか、確認するか、禁止するか鍵と入室ルール
30秒練習次の文を自分の言葉で言い換えてください。「OpenCodeがOpenRouterというプロバイダーを通じ、GLM-5.3-Flashというモデルへ依頼を送り、許可されたツールでプロジェクトを編集する」。言い換えられたら、この章は合格です。

第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公式

APIキーはパスワードです画面共有、スクリーンショット、Git、ブログ、質問サイトへ載せません。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"
pwd

OpenCodeを起動します

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か所を見れば迷いません

会話欄

あなたの依頼、AIの説明、ツールの実行、エラー、変更差分が時系列で並びます。/detailsでツール実行の詳細表示を切り替えられます。

状態欄

選択中のモデル、エージェント、セッションなどを確認します。画面幅や版により配置は変わるため、見た目を丸暗記せず「今のモデル」「今のエージェント」「今の作業場所」を探してください。

入力欄

普通の文章を入力します。@からファイルを選ぶと、その内容が会話へ加わります。行頭の!はシェル命令を直接実行し、結果を会話へ入れます。初心者は!を多用せず、まず目的を文章で伝えましょう。

表示が崩れたらターミナルの横幅を広げ、フォントサイズを少し下げます。マウス選択を優先したい場合はTUI設定のmousefalseにできます。

10. 最初は7個のキー操作と10個のスラッシュコマンドで十分です

毎日使うキー

操作意味
Return依頼を送る
Shift+Return送信せず改行する。Ctrl+Jも使える
Tabprimary agentを切り替える。標準ではBuildとPlan
Esc実行中のセッションを止める
Ctrl+P命令一覧を開く
Ctrl+XMモデル一覧。2つのキーを順番に押す
Ctrl+XLセッション一覧

Ctrl+Xは「次のキーに特別な意味を持たせる合図」で、リーダーキーと呼ばれます。標準では次のキーを待つ時間が2秒です。公式

覚えるスラッシュコマンド

命令役割使う場面
/helpヘルプ何が使えるか迷った
/connectプロバイダー接続APIキーやログインを登録
/modelsモデル一覧使うAIを切り替える
/initAGENTS.mdの作成・改善プロジェクトの説明書を整える
/new新しいセッション別の仕事を始める。別名/clear
/sessions履歴一覧前の仕事へ戻る。/resumeも同じ
/compact長い会話を短く整理文脈がいっぱいに近い。別名/summarize
/undo直前の会話とファイル変更を戻す依頼をやり直す。Gitリポジトリが必要
/redoundoした変更を復元戻しすぎた
/exit終了作業を終える。/qでもよい
/shareは公開リンクを作ります共有は標準で手動です。秘密のコード、個人情報、APIキー、顧客データが含まれないと確認できるまで使わないでください。安全重視なら設定で"share": "disabled"にします。

11. プロジェクトは作業の住所、セッションは案件ごとのノートです

OpenCodeでは「どのフォルダで起動したか」と「どの会話を続けているか」を分けて考えます。フォルダ側がプロジェクト、会話側がセッションです。

MacDocuments
プロジェクトfocus-timer
セッションA初期画面を作る
セッションBバグを直す
1つのプロジェクトに複数のセッションを持てます。仕事を混ぜないために分けます。

作業ディレクトリを毎回確認する

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領域に整理されます。公式

セッション履歴はGitの代わりではありません会話が残っても、変更を安全に比較・保存・共同作業できるとは限りません。大切な節目はGitでコミットします。

第III部 OpenCodeに何を許すかを決める

ファイル、シェル、権限、Git、AGENTS.md、設定ファイルをつなげます。

12. OpenCodeの道具は「探す・読む・書く・実行する」の4群です

OpenCodeのAIモデルは、ファイルを直接触るわけではありません。OpenCodeが用意した道具を呼び出し、その結果をまたAIへ返します。公式に示される主な内蔵ツールは次のとおりです。Tools公式

主なツール何をするか初心者の注意
探すglobgreplistファイル名や中身を検索基本は読み取り。最初に許可しやすい
読むreadファイル内容を読む.envには秘密がある。標準で読み取り拒否
書くeditwriteapply_patch既存ファイルを直す、新規作成、上書き必ず差分と対象パスを確認
実行するbashテスト、ビルド、Git、パッケージ操作など削除・公開・課金・外部送信につながる命令も実行できる
補助lspwebfetchwebsearchskillコード解析、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公式

OpenCodeを入れただけでは安全設定は完成していませんプロンプトに「危険なことをしないで」と書くのはお願いです。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"を先に置き、後ろへ具体的な許可・拒否を置きます。

この設定で起きること

自動

通常の読み取り、検索、pwdgit 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公式

作業フォルダ今のファイル
GitMac内の履歴
GitHubネット上の共有先
GitとGitHubは別物です。Gitだけでも履歴を残せます。

新しい練習フォルダを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が優先されます。互換読み込みは環境変数で無効化できます。

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、権限確認、共有設定など、変更した項目を実画面で確かめます。

JSONCはコメントを書けますopencode.jsoncなら// なぜこの設定にしたかを残せます。純粋なJSONではコメントを書けません。

第IV部 AIの接続先、モデル、料金を自分で選ぶ

OpenRouter・Z.AI・OpenAI・Anthropic・Google・Ollamaを同じ地図に置きます。

17. プロバイダーは「どの会社の窓口から、どのAIを呼ぶか」を決めます

OpenCodeはAI SDKとModels.devを利用し、75以上のLLMプロバイダーとローカルモデルに対応します。多くの人気プロバイダーは事前登録され、/connectで資格情報を入れると/modelsに現れます。Providers公式

OpenCode共通の操作
OpenRouter多数のモデルを1キーで
直接接続Z.AI・OpenAI等
ローカルOllama等
窓口を替えてもOpenCodeの基本操作は同じです。
接続先特徴初回の考え方
OpenRouter多数のモデル、統一請求、複数実行業者への振り分けモデルを横断したい。専用キーに小さな上限を付ける
Z.AIGLM APIまたはGLM Coding Planへ直接つなぐGLM中心で経路を単純にしたい
OpenAIAPIキーまたは公式画面にあるChatGPT Plus/Pro認証利用条件と課金経路を認証画面で確認
Anthropic公式ガイドはAPIキーを案内非公式にClaude Pro/Maxを流用するプラグインは使わない
Google公式プロバイダー一覧ではGoogle Vertex AIを詳細案内Cloudプロジェクト、Vertex AI有効化、認証が必要
OllamaMac内のローカルモデルをOpenAI互換URLで利用通信費を抑えやすいが、メモリ、速度、道具呼び出し品質を自分で管理

接続の共通手順

/connect
# 一覧からプロバイダーを選ぶ
# APIキーまたはブラウザ認証を完了
/models

直接接続とOpenRouterの反論・再反論

反論:OpenRouterを挟むと経路と確認先が1つ増える障害、データ取扱い、請求の調査では、OpenRouterと実際のモデル提供者の両方を見る必要があります。GLMだけを長く使うならZ.AI直接接続の方が単純な場合があります。
再反論:モデル切替と上限管理をまとめられる同じOpenRouterキーでGLM、OpenAI、Googleなどへ切り替えられ、Guardrailsでモデル許可や予算上限を設定できます。主力とレビュー用を分ける構成では運用が楽になります。

データの通り道を理解する

OpenRouterを使うと、依頼はOpenRouterを通り、選ばれた実行業者へ送られます。OpenRouter公式は、本文の記録は選択制で初期状態では無効と説明していますが、実行業者ごとの保存・学習方針は異なります。必要ならZDR(保存しない実行先だけに限定)やdata collection拒否を設定します。データ収集ZDR

秘密情報をAIへ送らない設計が先秘密を送ってから保存方針を調べるのでは遅い場合があります。顧客データ、医療情報、未公開の契約、秘密鍵、.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は、必要になってから

一部モデルにはlowhighなどの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などをそのまま写さないでください。

公開直後のモデルですモデルの価格、実行業者、OpenCode側の既定値は短期間で変わる可能性があります。本書は2026年8月27日の状態を記録しています。実作業前に/modelsとモデルページを再確認してください。

20. 料金は「読ませた量+答えた量」で増え、長い会話ほど入力が膨らみます

AIは文章をトークンという細かな単位へ分けて数えます。入力トークンには、あなたの依頼、会話履歴、AGENTS.md、ファイル、ツール説明、実行結果などが含まれます。出力トークンはAIの返答やコードです。

入力依頼+履歴+資料
×
入力単価100万tokenあたり
出力回答+コード
×
出力単価100万tokenあたり
概算費用米ドル
実際はキャッシュ、推論トークン、画像、実行業者などで変わります。

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セッション1目的にし、関係ない履歴を引きずらない。
  2. @で必要なファイルだけ渡す。
  3. 巨大なログはエラー前後へ絞る。
  4. 探索と定型修正は安い主力モデル、設計と最終レビューは上位モデルへ分ける。
  5. エージェントのstepsで反復上限を設ける。
  6. opencode stats --models 10でモデル別利用量を見る。
  7. OpenRouterのキー上限とGuardrailを使う。

文脈がいっぱいになるとcompactが働きます

OpenCodeは標準で文脈が満杯に近づくと自動的に要約します。古いツール出力を削るpruneや、要約用の余白reservedも設定できます。手動なら/compactです。要約は便利ですが、細部を失う可能性があるため、重要な決定はAGENTS.md、仕様書、作業メモ、Gitコミットへ残します。

料金の確認場所を2つ持つ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公式

あなた目的・制約・完了条件
Build / Planprimary agent
Exploreコード内を読む
Scout外部資料を調べる
Reviewerカスタムで追加
標準のreviewerはありません。本書では読み取り専用のカスタムsubagentとして作ります。

標準で入っている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へ「この指摘の原因を確認し、正しければ修正」と渡してください。

役割分離の完成条件reviewerのeditdenyであること、git pushを実行できないこと、レビュー依頼が実装の目的を含むこと。この3点を確認します。

23. 主力・探索・外部調査・レビューの4役で、仕事の流れが安定します

最初から多数のエージェントを作る必要はありません。標準のBuild、Explore、Scoutに、前章のreviewerを1つ足せば十分です。

Explore変更箇所を発見
読み取り専用
BuildGLM-5.3-Flash
実装と検証
Reviewer上位モデル
変更なし
Build採用した指摘だけ修正
あなた差分と実動作を承認
外部仕様が必要なときだけScoutを途中へ入れます。

おすすめの一連の依頼

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公式

プラグインは文章ではなく実行コードですREADMEだけで判断せず、公開元、更新履歴、ソース、要求権限を確認します。不具合時はopencode --pureで外部プラグインなしに起動し、原因を切り分けます。

スキルは必要なときだけ本文を読み込みます

SKILL.mdへ名前、説明、手順を書きます。OpenCodeは一覧として名前と説明を見せ、必要になったときだけ全文を読み込みます。プロジェクトなら.opencode/skills/名前/SKILL.md、全体なら~/.config/opencode/skills/名前/SKILL.mdです。Skills公式

初心者が拡張を入れる順番

  1. 拡張なしでOpenCodeを安定させる。
  2. 1つだけ追加する。
  3. 何が増えたか、どこへ接続するかを記録する。
  4. 問題が出たら無効化し、--pureで再現する。

25. 同じOpenCodeでも、TUI・Desktop・Web・IDEは「見せ方」と得意場面が違います

画面得意始め方注意
TUIキーボード中心、OpenCodeの基本理解opencode現在の作業場所を確認
CLI非対話1回の処理、スクリプト、CIopencode run "依頼"自動実行の権限と出力保存
Desktopタブで複数セッション、視覚的な管理アプリを起動背景でローカルサーバーが動く
Webブラウザでセッションを管理opencode webネットワーク公開時は必ずパスワード
IDE選択コードや開いているファイルと連携IDE内ターミナルでopencodeCLIの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公式

0.0.0.0は「家の外へ開く可能性がある」設定です意味が分からないうちは使いません。ルーター、VPN、会社ネットワークの条件により届く範囲が変わります。

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. 元へ戻す方法
依頼を一度で完璧にしなくてよい最初にPlanへ渡し、返ってきた計画を読んで「ここは違う」「このファイルは触らない」と直します。会話で設計を固めてからBuildへ移ります。

27. Macアプリ実習では、Xcodeで箱を作り、OpenCodeに小さな機能を足させます

最初から署名、配布、App Storeまで進めません。SwiftUIの空のmacOS AppをXcodeで作り、「集中タイマー」を1画面だけ実装します。完成条件は、ビルドでき、開始・一時停止・リセットが動くことです。

準備

  1. Xcodeを開き、「Create a new Xcode project」を選びます。
  2. macOSのAppを選び、Product NameをFocusTimer、InterfaceをSwiftUI、LanguageをSwiftにします。
  3. ~/Documents/OpenCodeProjects/FocusTimerなど専用フォルダへ保存します。
  4. 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更新スレッド、
アプリ終了時の停止処理、テスト不足を確認してください。
この実習で学ぶことXcodeはプロジェクトの箱と実行画面、OpenCodeはファイル調査・編集・ビルド、Gitは戻る地点、人間は実際の操作確認を担当します。

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へ読み込む

  1. Chromeでchrome://extensionsを開きます。
  2. 右上の「デベロッパーモード」を有効にします。
  3. 「パッケージ化されていない拡張機能を読み込む」を押します。
  4. page-note-extensionフォルダを選びます。
  5. 通常ページで拡張を開き、タイトル・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へ「最初に出た根本エラー」「環境エラーかコードエラーか」「変更なしで直せる準備不足か」を分けて報告させます。

既存プロジェクトの完了条件依頼したバグが再現しない、既存テストが壊れていない、差分が目的内、未コミットだった他の変更が保持されている。この4点が揃って完了です。

第VII部 困ったときに自力で戻る

エラーを症状別に切り分け、記録し、元へ戻すための逆引き資料です。

30. エラーは「起動・認証・モデル・権限・通信・プロジェクト」の6層に分けます

何でも再インストールすると、原因が消えず、設定や履歴だけ失うことがあります。症状がどの層かを先に決め、狭い確認から進めます。

1 起動命令が見つかるか
2 認証キー・ログイン
3 モデルID・利用権
4 権限ask / deny
5 通信APIへ届くか
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 --prefixbrew list opencodeも確認します。

症状B:OpenCodeが起動しない、すぐ終了する

opencode --version
opencode --print-logs
opencode --log-level DEBUG --print-logs
opencode --pure

--pureで起動できるなら外部プラグインが有力です。opencode upgradeで最新版へ更新し、ログの最初のエラーを見ます。最後の連鎖エラーだけをAIへ貼らないでください。

症状C:APIキーが無効、認証できない

  1. /connectでもう一度正しいプロバイダーを選びます。
  2. キーの先頭・末尾へ空白や改行が入っていないか確認します。
  3. 期限、残高、利用上限、組織・プロジェクトの制限を提供元で確認します。
  4. 会社や学校のネットワークがAPIドメインを止めていないか確認します。

auth.jsonを画面へ表示して確認しようとしないでください。秘密を露出します。必要ならプロバイダー側で古いキーを無効化し、新しい専用キーを発行します。

症状D:モデルが出ない、ProviderModelNotFoundError

opencode models
opencode debug config

モデルIDはprovider/model-idです。OpenRouter経由ならopenrouter/z-ai/glm-5.3-flashのようになります。次を順に確認します。

  • プロバイダー認証が完了しているか。
  • モデル名を古い記事から写していないか。
  • enabled_providersdisabled_providersで隠していないか。
  • blacklistwhitelistで一覧を絞っていないか。
  • モデルに地域、契約、組織の利用条件がないか。
  • 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:権限エラー、毎回聞かれる、逆に聞かれない

  1. opencode debug configで最終的なpermissionを見ます。
  2. プロジェクト設定が全体設定を上書きしていないか確認します。
  3. ルールは最後に一致したものが勝つため、並び順を確認します。
  4. --autoやTUIのauto indicatorが有効でないか見ます。
  5. 会社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回続くと確認を求めますが、少しずつ違う失敗は検知されない場合があります。

作業を止めてください。
これまで試したこと、各結果、変わらなかった事実、
現在もっとも可能性が高い原因を表にしてください。
次の操作はまだ実行しないでください。
問い合わせ用の最小セットOS、OpenCode版、インストール方法、実行した命令、最初のエラー、再現手順、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 updatebrew upgrade opencodeを使う方が分かりやすい運用です。Desktop版caskならbrew upgrade --cask opencode-desktopです。

OpenCode本体は起動時に自動更新できます。autoupdate: falseで無効、"notify"で通知のみですが、通知のみはHomebrewなどパッケージ管理で入れた場合には機能しないと公式が説明しています。

更新前後のチェック

  1. 重要作業中でないこと。
  2. 設定ファイルをバックアップ。
  3. 現在版を記録。
  4. 更新後にopencode --version
  5. opencode debug config
  6. /models、権限、プラグイン、1つの読み取り依頼を確認。

アンインストールは最初にdry-run

opencode uninstall --dry-run

# 設定とセッションを残す場合
opencode uninstall --keep-config --keep-data

opencode uninstallは削除対象を示して確認を求めます。--forceは確認を飛ばすため、初心者は使いません。Desktop版はアプリを終了し、macOSの通常のアプリ削除方法で削除します。CLI公式

32. 事故を防ぐ12項目は、知識より先に習慣へします

1

ホームフォルダ、デスクトップ全体、書類全体で起動しない。専用プロジェクトへ移動し、pwdを確認します。

2

意味の分からない命令を承認しない。目的、対象、失敗時の影響を説明させます。

3

--autoから始めない。確認画面は学習材料です。

4

APIキーを会話、Git、画像へ入れない。露出したら削除だけでなく提供元で無効化します。

5

Gitなしで大きな変更をさせない。動く状態をコミットしてから始めます。

6

「全部直して」と範囲を開かない。1回1目的、変更場所を限定します。

7

テスト成功だけで完成と言わない。実際の画面、主要操作、差分も確認します。

8

レビュー指摘を無条件で採用しない。コードと公式仕様で再確認します。

9

プラグインやMCPをまとめて追加しない。1つずつ入れ、問題時に切り戻します。

10

顧客・医療・財務などの機密データをモデルへ送らない。組織の規則と提供者のデータ方針を確認します。

11

エラーの最後だけ貼らない。実行命令と最初の根本エラーを含めます。

12

「確認した」と「動作した」を混ぜない。コードを読んだ、ビルドした、実際に操作した、を分けて報告させます。

合言葉作業場所を確認する。戻る地点を作る。小さく頼む。差分を見る。実物で試す。秘密を渡さない。

33. 12の練習課題を順にこなすと、読むだけから自力運用へ移れます

すべて専用の練習フォルダで行います。各課題の合格条件まで確認してから次へ進んでください。

段階課題合格条件
1pwdlsで作業場所を説明する絶対パスと中身を自分で読める
2OpenCodeを起動し、変更なしでフォルダ説明AIが書き込みをしていない
3/connect/models選択中のprovider/modelを言える
4安全なpermission設定読み取りは自動、編集は確認、rmは拒否
5Git初期化と最初のコミットgit statusがclean
6テキストファイルを1つ作らせる事前説明、承認、差分確認ができる
7/undo/redoファイル内容が戻り、再び復元する
8/new/sessions仕事を2セッションへ分けて戻れる
9AGENTS.mdを作り、人間が修正具体的な禁止・確認・完了条件がある
10@exploreで読み取り調査変更なしで関係ファイルを見つける
11reviewerを作り、差分レビューreviewerがファイルを変更できない
12小さな機能をPlan→Build→Reviewテスト、差分、手動確認、コミットまで完了

練習用の安全な課題例

  • Markdownの買い物リストを作る。
  • HTML1枚の自己紹介ページを作り、ブラウザで開く。
  • CSVを読み、行数と空欄数を数える小さなスクリプトを作る。
  • 既存READMEの誤字1か所だけ直し、差分を見る。
卒業条件AIの提案を見なくても、現在地、変更差分、実行したテスト、料金の確認先、戻す方法を自分で説明できれば、基本運用は身についています。

34. FAQ:初心者が止まりやすい疑問へ短く答えます

Q1. OpenCodeは無料ですか?

OpenCode本体はオープンソースです。ただし、接続するAIモデルは有料の場合があります。無料モデルやローカルモデルもありますが、速度、回数、品質、Macの性能に制約があります。

Q2. ChatGPT Plusを契約していればAPI料金は不要ですか?

契約とAPI課金は一般に別ですが、OpenCode公式のOpenAI接続画面にはChatGPT Plus/Pro認証とAPIキー入力の選択肢があります。実際の利用条件と対象モデルは認証画面・OpenAI側の現在の案内を確認してください。

Q3. プログラミングを知らなくても使えますか?

小さな学習や雛形作成には使えます。ただし、OpenCodeが行う変更の意味を少しずつ学ぶ必要があります。最初は「変更しない説明」「1ファイルだけ」「テスト付き」の順で進めてください。

Q4. ターミナルが怖いです

怖さの多くは、命令の影響範囲が見えないことから来ます。専用フォルダ、pwdgit statusask権限の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利用者を識別する秘密の文字列。パスワード同様に扱う。
LLMLarge Language Model。大量の文章から学び、文章やコードを入力・出力するAIモデル。
BYOKBring Your Own Key。利用者が自分で契約したプロバイダーのAPIキーを持ち込む方式。
CLICommand Line Interface。文字の命令で使う方式。
TUITerminal User Interface。ターミナル内に作られた対話画面。
ターミナル文字でMacへ命令するアプリ。
シェルターミナルに入力された命令を解釈して実行するプログラム。Macではzshが一般的。
bashツールOpenCodeのAIがシェル命令を実行するための道具名。zsh環境でも設定名はbash
PATH命令の実行ファイルをMacが探すフォルダ一覧。
ディレクトリフォルダの技術的な呼び名。
作業ディレクトリ現在の命令やOpenCodeが基準にするフォルダ。
プロジェクト一緒に扱うコード、設定、資料のまとまり。
リポジトリGitで履歴管理されたプロジェクト。
Gitファイルの変更履歴を記録・比較・復元する仕組み。
GitHubGitリポジトリをネット上で保管・共有し、IssueやPRで共同作業するサービス。
コミットGitで名前を付けて保存した変更地点。
ブランチ本線から分かれて作業する履歴の枝。
diff/差分変更前と変更後の違い。
Pull Request/PRGitHubなどで変更内容を見せ、確認と取り込みを依頼する仕組み。
セッション1つの仕事に関する会話、道具実行、結果のまとまり。
モデル文章やコードを考えるAI本体。
プロバイダーモデルAPIへの接続、認証、請求を提供する窓口。
OpenRouter多数のモデルと実行業者を共通APIと統一請求で利用する窓口。
Z.AIGLMモデルを開発・提供する事業者。
OllamaMacなどでローカルAIモデルを動かし、APIとして利用するための仕組み。
トークンAIが入力と出力を数える細かな単位。文字数とは一致しない。
コンテキストモデルが現在の判断に使える依頼、履歴、資料、道具結果のまとまり。
コンテキストウィンドウモデルが一度に扱えるトークン上限。
compaction長い会話を要約し、文脈を空ける処理。
tool callingモデルが読む、書く、検索、実行などの道具を選んで呼ぶ能力。
permission道具や対象ごとに自動許可、確認、拒否を決めるOpenCode設定。
allow / ask / deny自動許可/人へ確認/禁止。
primary agent利用者が直接話す主担当エージェント。
subagent探索、調査、レビューなど一部の仕事を担当する子エージェント。
BuildOpenCode標準の実装向けprimary agent。
PlanOpenCode標準の計画・分析向けprimary agent。
Exploreコード内を検索・理解する読み取り専用の標準subagent。
Scout外部資料や依存ライブラリを調べる標準subagent。
reviewer変更を評価する役割。本書では読み取り専用カスタムsubagentとして作る。
AGENTS.mdプロジェクト構造、命令、規則、確認方法をAIへ伝えるMarkdownファイル。
JSON / JSONC設定データの書式。JSONCはコメントを書ける。
MCPModel Context Protocol。AIへ外部の道具やデータを接続する標準。
プラグインOpenCodeのイベントや道具をコードで拡張する仕組み。
スキルSKILL.mdへ書いた再利用可能な仕事手順。必要なときに読み込む。
LSPコードの定義、参照、診断などをエディタやツールへ提供する仕組み。
OAuthパスワードを直接渡さず、ブラウザなどでサービス利用を承認する認証方式。
キャッシュ再利用して速度や費用を抑える一時保存。古い内容が不具合原因になることもある。
ZDRZero Data Retention。実行業者が依頼内容を保持しない方針。
Manifest V3現在のChrome拡張機能で使われる仕様世代。
SwiftUIApple製アプリの画面をSwiftで作る枠組み。
ビルドソースコードを実行可能な形へ組み立て、構文や依存関係を確認する処理。
テスト期待する入力・操作に対して正しい結果になるかを自動または手動で確かめること。
CIコード変更のたびに、ビルドやテストを自動で行う仕組み。
schemeXcodeで、どのアプリをどの設定でビルド・実行するかをまとめた名前。
sidecar主アプリの横で動き、背景処理を担当する補助プログラム。

36. 14日間で「頼める人」から「管理できる人」へ進みます

学習の終点は、OpenCodeに何でも任せることではありません。何を任せ、どこで止め、何を証拠として確認するかを自分で決められる状態です。

学ぶこと成果物
1ターミナル、pwd、ls、専用フォルダ安全な練習場所
2インストール、起動、/connect、/models読み取りだけの初回セッション
3permission安全側の全体設定
4Git、commit、diff戻せる練習リポジトリ
5AGENTS.md具体的な作業規則
6PlanとBuild1ファイルの小変更
7セッション、compact、stats履歴と費用の確認メモ
8ExploreとScout変更なしの調査報告
9reviewer読み取り専用レビュー設定
10エラー切り分け再現手順つき障害メモ
11Chrome拡張実習Page Note拡張
12Macアプリ実習FocusTimerの基本機能
13既存プロジェクト最小修正テストつきコミット
14総合課題計画・実装・レビュー・検証の一式

総合課題

「毎日の作業を1行で記録し、日付で絞り込めるローカルアプリ」など、個人情報や課金を扱わない小さな題材を選びます。次の資料を残してください。

  • 目的と対象外を1ページにまとめた仕様。
  • 安全設定とAGENTS.md。
  • Planの計画。
  • 実装差分とGitコミット。
  • 自動テスト結果と手動確認表。
  • reviewerの指摘と、採用・不採用の理由。
  • モデル別の利用量と概算費用。
  • 残る問題と次の一手。

自力運用チェックリスト

作業前

  • 現在地を確認
  • 秘密を除外
  • Gitの状態を確認
  • 目的と完了条件を定義

作業中

  • Planで範囲を確認
  • 権限要求を読む
  • 同じ失敗を止める
  • 変更を小さく保つ

作業後

  • 差分を読む
  • テスト・ビルド
  • 実際に操作
  • レビュー

運用

  • 費用を確認
  • 重要決定をファイル化
  • コミット
  • 残るリスクを記録

OpenCodeを使いこなすとは、黒い画面へ難しい命令を速く打つことではありません。作業場所を狭くし、役割を分け、証拠を集め、戻せる状態で少しずつ進めることです。その型が身につけば、モデルや画面が変わっても学び直せます。

公式資料:2026年8月27日に確認した一次情報

OpenCodeは更新が速いため、古いブログより公式Docsと公式GitHubを優先しました。特に権限設定は、安定版の現行Docsで使われるpermissionbash表記に合わせています。検索結果に出るv2系資料と混ぜないでください。

OpenCode

モデル、料金、データ

比較対象とGit

更新時の読み方版番号だけでなく、Docsの最終更新日、設定スキーマ、実際のopencode --helpopencode 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公開を確認。

著者: 藤川忠彦(ふじかわ ただひろ) — 企業向けAI導入アドバイザー、神奈川県茅ヶ崎市。

上る段と並走する手すりでOpenCodeを順に安全に覚える道筋を表した表紙画像
FUJIKAWA LAB SPECIMEN 43 / 43