oh-my-opencode 2.1.0 → 2.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.ja.md ADDED
@@ -0,0 +1,702 @@
1
+ <!-- <CENTERED SECTION FOR GITHUB DISPLAY> -->
2
+
3
+ <div align="center">
4
+
5
+ [![Oh My OpenCode](./.github/assets/hero.jpg)](https://github.com/code-yeongyu/oh-my-opencode#oh-my-opencode)
6
+
7
+ [![Preview](./.github/assets/preview.png)](https://github.com/code-yeongyu/oh-my-opencode#oh-my-opencode)
8
+
9
+
10
+ </div>
11
+
12
+ > `oh-my-opencode` をインストールして、ドーピングしたかのようにコーディングしましょう。バックグラウンドでエージェントを走らせ、oracle、librarian、frontend engineer のような専門エージェントを呼び出してください。丹精込めて作られた LSP/AST ツール、厳選された MCP、そして完全な Claude Code 互換レイヤーを、たった一行で手に入れましょう。
13
+
14
+ <div align="center">
15
+
16
+ [![GitHub Release](https://img.shields.io/github/v/release/code-yeongyu/oh-my-opencode?color=369eff&labelColor=black&logo=github&style=flat-square)](https://github.com/code-yeongyu/oh-my-opencode/releases)
17
+ [![GitHub Contributors](https://img.shields.io/github/contributors/code-yeongyu/oh-my-opencode?color=c4f042&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-opencode/graphs/contributors)
18
+ [![GitHub Forks](https://img.shields.io/github/forks/code-yeongyu/oh-my-opencode?color=8ae8ff&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-opencode/network/members)
19
+ [![GitHub Stars](https://img.shields.io/github/stars/code-yeongyu/oh-my-opencode?color=ffcb47&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-opencode/stargazers)
20
+ [![GitHub Issues](https://img.shields.io/github/issues/code-yeongyu/oh-my-opencode?color=ff80eb&labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-opencode/issues)
21
+ [![License](https://img.shields.io/badge/license-MIT-white?labelColor=black&style=flat-square)](https://github.com/code-yeongyu/oh-my-opencode/blob/master/LICENSE)
22
+
23
+ [English](README.md) | [한국어](README.ko.md) | [日本語](README.ja.md)
24
+
25
+ </div>
26
+
27
+ <!-- </CENTERED SECTION FOR GITHUB DISPLAY> -->
28
+
29
+ ## 目次
30
+
31
+ - [Oh My OpenCode](#oh-my-opencode)
32
+ - [この Readme は読まなくていいです](#この-readme-は読まなくていいです)
33
+ - [エージェントの時代ですから](#エージェントの時代ですから)
34
+ - [10分の投資で OhMyOpenCode が可能にすること](#10分の投資で-ohmyopencode-が可能にすること)
35
+ - [インストール](#インストール)
36
+ - [人間の方へ](#人間の方へ)
37
+ - [LLM エージェントの方へ](#llm-エージェントの方へ)
38
+ - [ステップ 1: OpenCode インストール確認](#ステップ-1-opencode-インストール確認)
39
+ - [ステップ 2: oh-my-opencode プラグイン設定](#ステップ-2-oh-my-opencode-プラグイン設定)
40
+ - [ステップ 3: 設定確認](#ステップ-3-設定確認)
41
+ - [ステップ 4: 認証情報の設定](#ステップ-4-認証情報の設定)
42
+ - [4.1 Anthropic (Claude)](#41-anthropic-claude)
43
+ - [4.2 Google Gemini (Antigravity OAuth)](#42-google-gemini-antigravity-oauth)
44
+ - [4.3 OpenAI (ChatGPT Plus/Pro)](#43-openai-chatgpt-pluspro)
45
+ - [4.3.1 モデル設定](#431-モデル設定)
46
+ - [⚠️ 注意](#️-注意)
47
+ - [機能](#機能)
48
+ - [Agents: あなたの新しいチームメイト](#agents-あなたの新しいチームメイト)
49
+ - [バックグラウンドエージェント: 本当のチームのように働く](#バックグラウンドエージェント-本当のチームのように働く)
50
+ - [ツール: 同僚にはもっと良い道具を](#ツール-同僚にはもっと良い道具を)
51
+ - [なぜあなただけ IDE を使っているのですか?](#なぜあなただけ-ide-を使っているのですか)
52
+ - [Context is all you need.](#context-is-all-you-need)
53
+ - [マルチモーダルを活用し、トークンは節約する](#マルチモーダルを活用しトークンは節約する)
54
+ - [止まらないエージェントループ](#止まらないエージェントループ)
55
+ - [Claude Code 互換性: さらば Claude Code、ようこそ OpenCode](#claude-code-互換性-さらば-claude-codeようこそ-opencode)
56
+ - [Hooks 統合](#hooks-統合)
57
+ - [設定ローダー](#設定ローダー)
58
+ - [データストレージ](#データストレージ)
59
+ - [互換性トグル](#互換性トグル)
60
+ - [エージェントのためだけでなく、あなたのために](#エージェントのためだけでなくあなたのために)
61
+ - [設定](#設定)
62
+ - [Google Auth](#google-auth)
63
+ - [Agents](#agents)
64
+ - [MCPs](#mcps)
65
+ - [LSP](#lsp)
66
+ - [作者のノート](#作者のノート)
67
+ - [注意](#注意)
68
+
69
+ # Oh My OpenCode
70
+
71
+ oMoMoMoMoMo···
72
+
73
+
74
+ [Claude Code](https://www.claude.com/product/claude-code) は素晴らしいですよね。
75
+ でも、もしあなたがハッカーなら、[OpenCode](https://github.com/sst/opencode) と恋に落ちることになるでしょう。
76
+
77
+ - 無限に拡張可能で、無限にカスタマイズ可能です。
78
+ - 画面のチラつき(フリッカー)がありません。
79
+ - 編集するファイルに合わせて [LSP](https://opencode.ai/docs/lsp/)、[Linter、Formatter](https://opencode.ai/docs/formatters/) が自動的に有効化され、すべて調整可能です。
80
+ - 複数のモデルを組み合わせて使用でき、**用途に応じてオーケストレーションできます。**
81
+ - 機能が豊富で、美しい。ターミナルが描画に苦しむことはありません。高パフォーマンスです。
82
+
83
+ Windows から Linux に初めて乗り換えた時のこと、自分の思い通りに設定して興奮したあの感覚を覚えていますか?
84
+ そんな魔法が失われたかのような今の時代に、OpenCode はその感覚を取り戻してくれます。
85
+ コーディングとコンピュータを愛するあなたにとって、OpenCode はまさに「Windows の後の Linux」のような瞬間になるはずです。
86
+
87
+ **しかし問題は、学ぶべきことが多すぎること、複雑であること、そしてあなたの時間は高価だということです。**
88
+
89
+ 私がその問題を解決しました。
90
+ あなたがハッカーでなくても構いません。数分の投資で、スキルと生産性を何倍にもブーストしてください。
91
+ このドキュメントをエージェントに渡して、セットアップを任せましょう。
92
+
93
+ ## この Readme は読まなくていいです
94
+
95
+ ### エージェントの時代ですから
96
+ - **ただこのリンクを Claude Code / AmpCode / Factory Droid / Cursor に貼り付けて、説明を求めてください。**
97
+ - なぜこれが良いのか、単なるボイラープレートではないのか、具体的に何が良くなるのか聞いてみてください。
98
+ - もしあなたが LLM エージェントなら、このプロジェクトによって今すぐ何が可能になるのか、ユーザーに説明してください。
99
+
100
+ ### 10分の投資で OhMyOpenCode が可能にすること
101
+
102
+ インストールするだけで、エージェントは以下のようなワークフローで働けるようになります:
103
+
104
+ 1. バックグラウンドタスクとして Gemini 3 Pro にフロントエンドを書かせている間に、Claude Opus 4.5 がバックエンドを作成し、デバッグで詰まったら GPT 5.2 に助けを求めます。フロントエンドの実装完了報告が来たら、それを検証して出荷します。
105
+ 2. 何か調べる必要があれば、公式ドキュメント、コードベースの全履歴、GitHub に公開されている実装例まで徹底的に調査します。単なる grep だけでなく、内蔵された LSP ツールや AST-Grep まで駆使します。
106
+ 3. LLM に仕事を任せる際、コンテキスト管理の心配はもう不要です。私がやります。
107
+ - OhMyOpenCode は複数のエージェントを積極的に活用し、コンテキストの負荷を軽減します。
108
+ - **あなたのエージェントは今や開発チームのリードです。あなたは AI マネージャーです。**
109
+ 4. 頼んだ仕事が完了するまで止まりません。
110
+ 5. このプロジェクトについて深く知りたくない?大丈夫です。ただ 'ultrathink' と入力してください。
111
+
112
+ 注:これをインストールしたからといって、魔法のように OpenCode がこのように動作するわけではありません。上記の説明は「こういう使い方もできる」という例示です。単にあなたのエージェントに優秀な同僚を紹介し、強力な道具を渡すだけです。彼らに協力しろと指示すれば、協力するでしょう。
113
+ すべてはあなたが完全にコントロールできます。
114
+ ultrathink を通じて自動的に動作させることもできますが、必須ではありません。このプロジェクトはあなたの AI エージェントのワークフローを強制しません。
115
+ ただ、あなたのエージェントに素晴らしい同僚を紹介し、より良い道具を手に持たせるだけです。
116
+
117
+ - 複雑で巨大なタスクを投げてください。
118
+ - プロンプトに "ultrawork" というキーワードを入れるだけで、すべて自動的に処理します。
119
+
120
+ ## インストール
121
+
122
+
123
+ ### 人間の方へ
124
+
125
+ 面倒な作業は LLM エージェントに任せましょう。このリンクをコピーして貼り付け、インストールと設定をお願いしてください。
126
+
127
+ ### LLM エージェントの方へ
128
+
129
+ <details>
130
+ <summary>LLM エージェント向け手順(クリックして展開)</summary>
131
+
132
+ あなたがユーザーの oh-my-opencode 設定を支援する LLM エージェントなら、以下の手順に従ってください:
133
+
134
+
135
+ ### ステップ 1: OpenCode インストール確認
136
+
137
+ ```bash
138
+ if command -v opencode &> /dev/null; then
139
+ echo "OpenCode $(opencode --version) はインストールされています"
140
+ else
141
+ echo "OpenCode がインストールされていません。先にインストールしてください。"
142
+ echo "参照: https://opencode.ai/docs"
143
+ fi
144
+ ```
145
+
146
+ OpenCode がインストールされていない場合は、[OpenCode インストールガイド](https://opencode.ai/docs)を確認し、インストールを進めてください。コンテキストを節約するため、サブエージェントを呼び出してインストールを行わせ、その結果を報告させるように案内してください。
147
+
148
+ ### ステップ 2: oh-my-opencode プラグイン設定
149
+
150
+ ```bash
151
+ mkdir -p ~/.config/opencode
152
+
153
+ if [ -f ~/.config/opencode/opencode.json ]; then
154
+ # 既存の設定ファイルがある場合: jq または python で plugin を追加
155
+ if command -v jq &> /dev/null; then
156
+ jq '.plugin = ((.plugin // []) + ["oh-my-opencode"] | unique)' \
157
+ ~/.config/opencode/opencode.json > /tmp/oc.json && \
158
+ mv /tmp/oc.json ~/.config/opencode/opencode.json
159
+ else
160
+ echo "~/.config/opencode/opencode.json の plugin 配列に \"oh-my-opencode\" を追加してください"
161
+ fi
162
+ else
163
+ # 新しい設定ファイル作成
164
+ echo '{"plugin":["oh-my-opencode"]}' > ~/.config/opencode/opencode.json
165
+ fi
166
+ ```
167
+
168
+ ### ステップ 3: 設定確認
169
+
170
+ ```bash
171
+ opencode --version # 1.0.132 以上であること
172
+ cat ~/.config/opencode/opencode.json # plugin 配列に "oh-my-opencode" が含まれていること
173
+ ```
174
+
175
+ ### ステップ 4: 認証情報の設定
176
+
177
+ plugin に oh-my-opencode を追加したら、tmux を使用してユーザーの認証設定を進めてください。以下の手順をすべて完了する必要があります。
178
+
179
+ #### 4.1 Anthropic (Claude)
180
+
181
+ ```bash
182
+ opencode auth login
183
+ # Provider: Anthropic を選択
184
+ # Login method: Claude Pro/Max を選択
185
+ # ユーザーにブラウザでの OAuth フロー完了を案内してください
186
+ # 完了まで待機
187
+ # 成功を確認し、ユーザーに報告
188
+ ```
189
+
190
+ #### 4.2 Google Gemini (Antigravity OAuth)
191
+
192
+ まず、`~/.config/opencode/oh-my-opencode.json` で Google auth を有効にします:
193
+
194
+ ```json
195
+ {
196
+ "google_auth": true
197
+ }
198
+ ```
199
+
200
+ その後、認証を行います:
201
+
202
+ ```bash
203
+ opencode auth login
204
+ # Provider: Google を選択
205
+ # Login method: OAuth with Google (Antigravity) を選択
206
+ # ユーザーにブラウザでの OAuth フロー完了を案内
207
+ # 完了まで待機
208
+ # 成功を確認し、ユーザーに報告
209
+ ```
210
+
211
+ #### 4.3 OpenAI (ChatGPT Plus/Pro)
212
+
213
+ まず、opencode-openai-codex-auth プラグインを追加します:
214
+
215
+ ```json
216
+ {
217
+ "plugin": [
218
+ "oh-my-opencode",
219
+ "opencode-openai-codex-auth@4.1.0"
220
+ ]
221
+ }
222
+ ```
223
+
224
+ **重要**: 現在、公式 npm パッケージに 400 エラー (`"No tool call found for function call output with call_id"`) を引き起こすバグがあります。修正版がリリースされるまでは、**ホットフィックスブランチの使用を推奨します**。`~/.config/opencode/package.json` を修正してください:
225
+
226
+ ```json
227
+ {
228
+ "dependencies": {
229
+ "opencode-openai-codex-auth": "code-yeongyu/opencode-openai-codex-auth#fix/orphaned-function-call-output-with-tools"
230
+ }
231
+ }
232
+ ```
233
+
234
+ その後、`cd ~/.config/opencode && bun i` を実行してください。`opencode.json` ではバージョン指定なしで `"opencode-openai-codex-auth"` として使用します(`@4.1.0` は除外)。
235
+
236
+ #### 4.3.1 モデル設定
237
+ `opencode.json` に完全なモデル設定も構成する必要があります。
238
+ [opencode-openai-codex-auth ドキュメント](https://github.com/numman-ali/opencode-openai-codex-auth)を読み、[`config/full-opencode.json`](https://github.com/numman-ali/opencode-openai-codex-auth/blob/main/config/full-opencode.json) から provider/models 設定をコピーして、ユーザーの既存のセットアップを壊さないよう慎重にマージしてください。
239
+
240
+ その後、認証を行います:
241
+
242
+ ```bash
243
+ opencode auth login
244
+ # Provider: OpenAI を選択
245
+ # Login method: ChatGPT Plus/Pro (Codex Subscription) を選択
246
+ # ユーザーにブラウザでの OAuth フロー完了を案内
247
+ # 完了まで待機
248
+ # 成功を確認し、ユーザーに報告
249
+ ```
250
+
251
+
252
+ ### ⚠️ 注意
253
+
254
+ **ユーザーが明示的に要求しない限り、モデル設定を変更したり、機能(エージェント、フック、MCP)を無効化しないでください。**
255
+
256
+ プラグインはデフォルトで完璧に動作します。推奨される `google_auth: true` 設定を除き、明示的な要求なしに他の設定を変更したり機能をオフにしないでください。
257
+
258
+ </details>
259
+
260
+
261
+ ## 機能
262
+
263
+ ### Agents: あなたの新しいチームメイト
264
+
265
+ - **OmO** (`anthropic/claude-opus-4-5`): **デフォルトエージェントです。** OpenCode のための強力な AI オーケストレーターです。専門のサブエージェントを活用して、複雑なタスクを計画、委任、実行します。バックグラウンドタスクへの委任と Todo ベースのワークフローを重視します。最大の推論能力を発揮するため、Claude Opus 4.5 と拡張思考 (32k token budget) を使用します。
266
+ - **oracle** (`openai/gpt-5.2`): アーキテクチャ、コードレビュー、戦略立案のための専門アドバイザー。GPT-5.2 の卓越した論理的推論と深い分析能力を活用します。AmpCode からインスピレーションを得ました。
267
+ - **librarian** (`anthropic/claude-sonnet-4-5`): マルチリポジトリ分析、ドキュメント検索、実装例の調査を担当。Claude Sonnet 4.5 を使用して、深いコードベース理解と GitHub リサーチ、根拠に基づいた回答を提供します。AmpCode からインスピレーションを得ました。
268
+ - **explore** (`opencode/grok-code`): 高速なコードベース探索、ファイルパターンマッチング。Claude Code は Haiku を使用しますが、私たちは Grok を使います。現在無料であり、極めて高速で、ファイル探索タスクには十分な知能を備えているからです。Claude Code からインスピレーションを得ました。
269
+ - **frontend-ui-ux-engineer** (`google/gemini-3-pro-preview`): 開発者に転身したデザイナーという設定です。素晴らしい UI を作ります。美しく独創的な UI コードを生成することに長けた Gemini を使用します。
270
+ - **document-writer** (`google/gemini-3-pro-preview`): テクニカルライティングの専門家という設定です。Gemini は文筆家であり、流れるような文章を書きます。
271
+ - **multimodal-looker** (`google/gemini-2.5-flash`): 視覚コンテンツ解釈のための専門エージェント。PDF、画像、図表を分析して情報を抽出します。
272
+
273
+ メインエージェントはこれらを自動的に呼び出しますが、明示的に呼び出すことも可能です:
274
+
275
+ ```
276
+ Ask @oracle to review this design and propose an architecture
277
+ (@oracle にこの設計をレビューさせ、アーキテクチャを提案させて)
278
+ Ask @librarian how this is implemented—why does the behavior keep changing?
279
+ (@librarian にこれがどう実装されているか聞いて、なぜ挙動が変わり続けるのか教えて)
280
+ Ask @explore for the policy on this feature
281
+ (@explore にこの機能のポリシーを聞いて)
282
+ ```
283
+
284
+ エージェントのモデル、プロンプト、権限は `oh-my-opencode.json` でカスタマイズ可能です。詳細は [設定](#設定) を参照してください。
285
+
286
+ ### バックグラウンドエージェント: 本当のチームのように働く
287
+
288
+ 上記のエージェントたちを、一瞬たりとも休ませることなく働かせられたらどうでしょうか?
289
+
290
+ - GPT にデバッグさせておいて、Claude が別のアプローチで根本原因を探るワークフロー
291
+ - Gemini がフロントエンドを書いている間に、Claude がバックエンドを書くワークフロー
292
+ - 大量の並列探索を開始し、その部分は一旦置いておいて実装を進め、探索結果が出たらそれを使って仕上げるワークフロー
293
+
294
+ これらのワークフローが OhMyOpenCode では可能です。
295
+
296
+ サブエージェントをバックグラウンドで実行できます。メインエージェントはタスクが完了すると通知を受け取ります。必要であれば結果を待つこともできます。
297
+
298
+ **エージェントが、あなたのチームのように働くようにしましょう。**
299
+
300
+ ### ツール: 同僚にはもっと良い道具を
301
+
302
+ #### なぜあなただけ IDE を使っているのですか?
303
+
304
+ シンタックスハイライト、自動補完、リファクタリング、ナビゲーション、分析…そして今やエージェントがコードを書く時代です。
305
+
306
+ **なぜあなただけがそれらのツールを使っているのですか?**
307
+ **エージェントにそれらを使わせれば、彼らはレベルアップします。**
308
+
309
+ [OpenCode は LSP を提供していますが](https://opencode.ai/docs/lsp/)、あくまで分析用です。
310
+
311
+ あなたがエディタで使っているその機能、他のエージェントは触ることができません。
312
+ 最高の同僚に最高の道具を渡してください。これでリファクタリングも、ナビゲーションも、分析も、エージェントが適切に行えるようになります。
313
+
314
+ - **lsp_hover**: その位置の型情報、ドキュメント、シグネチャを取得
315
+ - **lsp_goto_definition**: シンボル定義へジャンプ
316
+ - **lsp_find_references**: ワークスペース全体で使用箇所を検索
317
+ - **lsp_document_symbols**: ファイルのシンボルアウトラインを取得
318
+ - **lsp_workspace_symbols**: プロジェクト全体から名前でシンボルを検索
319
+ - **lsp_diagnostics**: ビルド前にエラー/警告を取得
320
+ - **lsp_servers**: 利用可能な LSP サーバー一覧
321
+ - **lsp_prepare_rename**: 名前変更操作の検証
322
+ - **lsp_rename**: ワークスペース全体でシンボル名を変更
323
+ - **lsp_code_actions**: 利用可能なクイックフィックス/リファクタリングを取得
324
+ - **lsp_code_action_resolve**: コードアクションを適用
325
+ - **ast_grep_search**: AST 認識コードパターン検索 (25言語対応)
326
+ - **ast_grep_replace**: AST 認識コード置換
327
+
328
+ #### Context Is All You Need
329
+ - **Directory AGENTS.md / README.md Injector**: ファイルを読み込む際、`AGENTS.md` と `README.md` の内容を自動的に注入します。ファイルディレクトリからプロジェクトルートまで遡り、パス上の **すべて** の `AGENTS.md` ファイルを収集します。ネストされたディレクトリごとの指示をサポートします:
330
+ ```
331
+ project/
332
+ ├── AGENTS.md # プロジェクト全体のコンテキスト
333
+ ├── src/
334
+ │ ├── AGENTS.md # src 専用コンテキスト
335
+ │ └── components/
336
+ │ ├── AGENTS.md # コンポーネント専用コンテキスト
337
+ │ └── Button.tsx # このファイルを読むと上記3つの AGENTS.md がすべて注入される
338
+ ```
339
+ `Button.tsx` を読むと、順序通りに注入されます:`project/AGENTS.md` → `src/AGENTS.md` → `components/AGENTS.md`。各ディレクトリのコンテキストはセッションごとに一度だけ注入されます。
340
+ - **Conditional Rules Injector**: すべてのルールが常に必要なわけではありません。条件に一致する場合にのみ、`.claude/rules/` ディレクトリからルールを注入します。
341
+ - ファイルディレクトリからプロジェクトルートまで上方向に探索し、`~/.claude/rules/` (ユーザー) パスも含みます。
342
+ - `.md` および `.mdc` ファイルをサポートします。
343
+ - Frontmatter の `globs` フィールド(glob パターン)に基づいてマッチングします。
344
+ - 常に適用されるべきルールのために `alwaysApply: true` オプションをサポートします。
345
+ - ルールファイルの例:
346
+ ```markdown
347
+ ---
348
+ globs: ["*.ts", "src/**/*.js"]
349
+ description: "TypeScript/JavaScript coding rules"
350
+ ---
351
+ - Use PascalCase for interface names
352
+ - Use camelCase for function names
353
+ ```
354
+ - **Online**: プロジェクトのルールがすべてではありません。拡張機能のための内蔵 MCP を提供します:
355
+ - **context7**: ライブラリの最新公式ドキュメントを取得
356
+ - **websearch_exa**: Exa AI を活用したリアルタイムウェブ検索
357
+ - **grep_app**: 数百万の公開 GitHub リポジトリから超高速コード検索(実装例を探すのに最適)
358
+
359
+ #### マルチモーダルを活用し、トークンは節約する
360
+
361
+ AmpCode からインスピレーションを受けた look_at ツールを、OhMyOpenCode でも提供します。
362
+ エージェントが巨大なファイルを直接読んでコンテキストを浪費する代わりに、内部的に別のエージェントを活用して必要な情報だけを抽出します。
363
+
364
+ #### 止まらないエージェントループ
365
+ - 内蔵 grep、glob ツールを置き換えます。デフォルトの実装にはタイムアウトがなく、無限にハングする可能性があります。
366
+
367
+
368
+ ### Claude Code 互換性: さらば Claude Code、ようこそ OpenCode
369
+
370
+ Oh My OpenCode には Claude Code 互換レイヤーが存在します。
371
+ Claude Code を使用していた場合、既存の設定がそのまま動作します。
372
+
373
+ #### Hooks 統合
374
+
375
+ Claude Code の `settings.json` フックシステムを通じてカスタムスクリプトを実行します。
376
+ Oh My OpenCode は以下の場所からフックを読み込んで実行します:
377
+
378
+ - `~/.claude/settings.json` (ユーザー)
379
+ - `./.claude/settings.json` (プロジェクト)
380
+ - `./.claude/settings.local.json` (ローカル、git-ignored)
381
+
382
+ サポートされるフックイベント:
383
+ - **PreToolUse**: ツール実行前に実行。ブロックしたり、ツール入力を修正したりできます。
384
+ - **PostToolUse**: ツール実行後に実行。警告やコンテキストを追加できます。
385
+ - **UserPromptSubmit**: ユーザーがプロンプトを送信した時に実行。ブロックしたり、メッセージを注入したりできます。
386
+ - **Stop**: セッションがアイドル状態になった時に実行。フォローアップのプロンプトを注入できます。
387
+
388
+ `settings.json` の例:
389
+ ```json
390
+ {
391
+ "hooks": {
392
+ "PostToolUse": [
393
+ {
394
+ "matcher": "Write|Edit",
395
+ "hooks": [{ "type": "command", "command": "eslint --fix $FILE" }]
396
+ }
397
+ ]
398
+ }
399
+ }
400
+ ```
401
+
402
+ #### 設定ローダー
403
+
404
+ **Command Loader**: 4つのディレクトリからマークダウンベースのスラッシュコマンドをロードします:
405
+ - `~/.claude/commands/` (ユーザー)
406
+ - `./.claude/commands/` (プロジェクト)
407
+ - `~/.config/opencode/command/` (opencode グローバル)
408
+ - `./.opencode/command/` (opencode プロジェクト)
409
+
410
+ **Skill Loader**: `SKILL.md` があるディレクトリベースのスキルをロードします:
411
+ - `~/.claude/skills/` (ユーザー)
412
+ - `./.claude/skills/` (プロジェクト)
413
+
414
+ **Agent Loader**: マークダウンファイルからカスタムエージェント定義をロードします:
415
+ - `~/.claude/agents/*.md` (ユーザー)
416
+ - `./.claude/agents/*.md` (プロジェクト)
417
+
418
+ **MCP Loader**: `.mcp.json` ファイルから MCP サーバー設定をロードします:
419
+ - `~/.claude/.mcp.json` (ユーザー)
420
+ - `./.mcp.json` (プロジェクト)
421
+ - `./.claude/.mcp.json` (ローカル)
422
+ - 環境変数展開をサポート (`${VAR}` 構文)
423
+
424
+ #### データストレージ
425
+
426
+ **Todo 管理**: セッションの Todo が `~/.claude/todos/` に Claude Code 互換形式で保存されます。
427
+
428
+ **Transcript**: セッションのアクティビティが `~/.claude/transcripts/` に JSONL 形式で記録され、再生や分析が可能です。
429
+
430
+ #### 互換性トグル
431
+
432
+ 特定の Claude Code 互換機能を無効にするには、`claude_code` 設定オブジェクトを使用できます:
433
+
434
+ ```json
435
+ {
436
+ "claude_code": {
437
+ "mcp": false,
438
+ "commands": false,
439
+ "skills": false,
440
+ "agents": false,
441
+ "hooks": false
442
+ }
443
+ }
444
+ ```
445
+
446
+ | トグル | `false` の場合、ロードが無効になるパス | 影響を受けないもの |
447
+ | ---------- | ------------------------------------------------------------------------------------- | ----------------------------------------------------- |
448
+ | `mcp` | `~/.claude/.mcp.json`, `./.mcp.json`, `./.claude/.mcp.json` | 内蔵 MCP (context7, websearch_exa) |
449
+ | `commands` | `~/.claude/commands/*.md`, `./.claude/commands/*.md` | `~/.config/opencode/command/`, `./.opencode/command/` |
450
+ | `skills` | `~/.claude/skills/*/SKILL.md`, `./.claude/skills/*/SKILL.md` | - |
451
+ | `agents` | `~/.claude/agents/*.md`, `./.claude/agents/*.md` | 内蔵エージェント (oracle, librarian 等) |
452
+ | `hooks` | `~/.claude/settings.json`, `./.claude/settings.json`, `./.claude/settings.local.json` | - |
453
+
454
+ すべてのトグルはデフォルトで `true` (有効) です。完全な Claude Code 互換性を望む場合は `claude_code` オブジェクトを省略してください。
455
+
456
+ ### エージェントのためだけでなく、あなたのために
457
+
458
+ エージェントが活躍すれば、あなたも幸せになります。ですが、私はあなた自身も助けたいのです。
459
+
460
+ - **Keyword Detector**: プロンプト内のキーワードを自動検知して専門モードを有効化します:
461
+ - `ultrawork` / `ulw`: 並列エージェントオーケストレーションによる最大パフォーマンスモード
462
+ - `search` / `find` / `찾아` / `検索`: 並列 explore/librarian エージェントによる検索最大化
463
+ - `analyze` / `investigate` / `분석` / `調査`: 多段階の専門家相談による深層分析モード
464
+ - **Todo Continuation Enforcer**: エージェントが停止する前にすべての TODO 項目を完了するように強制します。LLM の「中途半端に終わる」癖を防止します。
465
+ - **Comment Checker**: 学習データの影響でしょうか、LLM はコメントが多すぎます。無駄なコメントを書かないようリマインドします。BDD パターン、指示子、docstring などの有効なコメントは賢く除外し、それ以外のコメントについては正当性を求め、クリーンなコードを維持させます。
466
+ - **Think Mode**: 拡張思考 (Extended Thinking) が必要な状況を自動検知してモードを切り替えます。「深く考えて (think deeply)」「ultrathink」といった表現を検知すると、推論能力を最大化するようモデル設定を動的に調整します。
467
+ - **Context Window Monitor**: [Context Window Anxiety Management](https://agentic-patterns.com/patterns/context-window-anxiety-management/) パターンを実装しています。
468
+ - 使用率が 70% を超えると、まだ余裕があることをエージェントにリマインドし、焦って雑な仕事をすることを防ぎます。
469
+ - **Agent Usage Reminder**: 検索ツールを直接呼び出す際、バックグラウンドタスクを通じた専門エージェントの活用を推奨するリマインダーを表示します。
470
+ - **Anthropic Auto Compact**: Claude モデルがトークン制限に達すると、自動的にセッションを要約・圧縮します。手動での介入は不要です。
471
+ - **Session Recovery**: セッションエラー(ツールの結果欠落、thinking ブロックの問題、空のメッセージなど)から自動復旧します。セッションが途中でクラッシュすることはありません。もしクラッシュしても復旧します。
472
+ - **Auto Update Checker**: oh-my-opencode の新バージョンがリリースされると通知します。
473
+ - **Startup Toast**: OhMyOpenCode ロード時にウェルカムメッセージを表示します。セッションを正しく始めるための、ささやかな "oMoMoMo" です。
474
+ - **Background Notification**: バックグラウンドエージェントのタスクが完了すると通知を受け取ります。
475
+ - **Session Notification**: エージェントがアイドル状態になると OS 通知を送ります。macOS、Linux、Windows で動作します—エージェントが入力を待っている時を見逃しません。
476
+ - **Empty Task Response Detector**: Task ツールが空の応答を返すと検知します。既に空の応答が返ってきているのに、いつまでも待ち続ける状況を防ぎます。
477
+ - **Grep Output Truncator**: grep は山のようなテキストを返すことがあります。残りのコンテキストウィンドウに応じて動的に出力を切り詰めます—50% の余裕を維持し、最大 50k トークンに制限します。
478
+ - **Tool Output Truncator**: 同じ考え方をより広範囲に適用します。Grep、Glob、LSP ツール、AST-grep の出力を切り詰めます。一度の冗長な検索がコンテキスト全体を食いつぶすのを防ぎます。
479
+
480
+ ## 設定
481
+
482
+ こだわりが強く反映された設定ですが、好みに合わせて調整可能です。
483
+
484
+ 設定ファイルの場所(優先順):
485
+ 1. `.opencode/oh-my-opencode.json` (プロジェクト)
486
+ 2. `~/.config/opencode/oh-my-opencode.json` (ユーザー)
487
+
488
+ スキーマ自動補完がサポートされています:
489
+
490
+ ```json
491
+ {
492
+ "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json"
493
+ }
494
+ ```
495
+
496
+ ### Google Auth
497
+
498
+ Google Gemini モデルのための内蔵 Antigravity OAuth を有効化します:
499
+
500
+ ```json
501
+ {
502
+ "google_auth": true
503
+ }
504
+ ```
505
+
506
+ 有効化すると、`opencode auth login` 実行時に Google プロバイダーで "OAuth with Google (Antigravity)" ログインオプションが表示されます。
507
+
508
+ ### Agents
509
+
510
+ 内蔵エージェント設定をオーバーライドできます:
511
+
512
+ ```json
513
+ {
514
+ "agents": {
515
+ "explore": {
516
+ "model": "anthropic/claude-haiku-4-5",
517
+ "temperature": 0.5
518
+ },
519
+ "frontend-ui-ux-engineer": {
520
+ "disable": true
521
+ }
522
+ }
523
+ }
524
+ ```
525
+
526
+ 各エージェントでサポートされるオプション:`model`, `temperature`, `top_p`, `prompt`, `tools`, `disable`, `description`, `mode`, `color`, `permission`。
527
+
528
+ `OmO` (メインオーケストレーター) と `build` (デフォルトエージェント) も同じオプションで設定をオーバーライドできます。
529
+
530
+ #### Permission オプション
531
+
532
+ エージェントができる操作を細かく制御します:
533
+
534
+ ```json
535
+ {
536
+ "agents": {
537
+ "explore": {
538
+ "permission": {
539
+ "edit": "deny",
540
+ "bash": "ask",
541
+ "webfetch": "allow"
542
+ }
543
+ }
544
+ }
545
+ }
546
+ ```
547
+
548
+ | Permission | 説明 | 値 |
549
+ |------------|------|----|
550
+ | `edit` | ファイル編集権限 | `ask` / `allow` / `deny` |
551
+ | `bash` | Bash コマンド実行権限 | `ask` / `allow` / `deny` またはコマンド別: `{ "git": "allow", "rm": "deny" }` |
552
+ | `webfetch` | ウェブアクセス権限 | `ask` / `allow` / `deny` |
553
+ | `doom_loop` | 無限ループ検知のオーバーライド許可 | `ask` / `allow` / `deny` |
554
+ | `external_directory` | プロジェクトルート外へのファイルアクセス | `ask` / `allow` / `deny` |
555
+
556
+ または `~/.config/opencode/oh-my-opencode.json` か `.opencode/oh-my-opencode.json` の `disabled_agents` を使用して無効化できます:
557
+
558
+ ```json
559
+ {
560
+ "disabled_agents": ["oracle", "frontend-ui-ux-engineer"]
561
+ }
562
+ ```
563
+
564
+ 利用可能なエージェント:`oracle`, `librarian`, `explore`, `frontend-ui-ux-engineer`, `document-writer`, `multimodal-looker`
565
+
566
+ ### OmO Agent
567
+
568
+ 有効時(デフォルト)、OmO は2つのプライマリエージェントを追加し、内蔵エージェントをサブエージェントに降格させます:
569
+
570
+ - **OmO**: プライマリオーケストレーターエージェント (Claude Opus 4.5)
571
+ - **OmO-Plan**: OpenCode の plan エージェントの全設定を実行時に継承 (description に "OhMyOpenCode version" を追加)
572
+ - **build**: サブエージェントに降格
573
+ - **plan**: サブエージェントに降格
574
+
575
+ OmO を無効化して元の build/plan エージェントを復元するには:
576
+
577
+ ```json
578
+ {
579
+ "omo_agent": {
580
+ "disabled": true
581
+ }
582
+ }
583
+ ```
584
+
585
+ 他のエージェント同様、OmO と OmO-Plan もカスタマイズ可能です:
586
+
587
+ ```json
588
+ {
589
+ "agents": {
590
+ "OmO": {
591
+ "model": "anthropic/claude-sonnet-4",
592
+ "temperature": 0.3
593
+ },
594
+ "OmO-Plan": {
595
+ "model": "openai/gpt-5.2"
596
+ }
597
+ }
598
+ }
599
+ ```
600
+
601
+ | オプション | デフォルト | 説明 |
602
+ |------------|------------|------|
603
+ | `disabled` | `false` | `true` の場合、OmO エージェントを無効化し、元の build/plan をプライマリとして復元します。`false` (デフォルト) の場合、OmO と OmO-Plan がプライマリエージェントになります。 |
604
+
605
+ ### Hooks
606
+
607
+ `~/.config/opencode/oh-my-opencode.json` または `.opencode/oh-my-opencode.json` の `disabled_hooks` を通じて特定の内蔵フックを無効化できます:
608
+
609
+ ```json
610
+ {
611
+ "disabled_hooks": ["comment-checker", "agent-usage-reminder"]
612
+ }
613
+ ```
614
+
615
+ 利用可能なフック:`todo-continuation-enforcer`, `context-window-monitor`, `session-recovery`, `session-notification`, `comment-checker`, `grep-output-truncator`, `tool-output-truncator`, `directory-agents-injector`, `directory-readme-injector`, `empty-task-response-detector`, `think-mode`, `anthropic-auto-compact`, `rules-injector`, `background-notification`, `auto-update-checker`, `startup-toast`, `keyword-detector`, `agent-usage-reminder`, `non-interactive-env`, `interactive-bash-session`
616
+
617
+ ### MCPs
618
+
619
+ コンテキスト7、Exa、grep.app MCP がデフォルトで有効になっています。
620
+
621
+ - **context7**: ライブラリの最新公式ドキュメントを取得
622
+ - **websearch_exa**: Exa AI を活用したリアルタイムウェブ検索
623
+ - **grep_app**: [grep.app](https://grep.app) を通じて数百万の公開 GitHub リポジトリから超高速コード検索
624
+
625
+ 不要であれば、`~/.config/opencode/oh-my-opencode.json` または `.opencode/oh-my-opencode.json` の `disabled_mcps` を使用して無効化できます:
626
+
627
+ ```json
628
+ {
629
+ "disabled_mcps": ["context7", "websearch_exa", "grep_app"]
630
+ }
631
+ ```
632
+
633
+ ### LSP
634
+
635
+ OpenCode は分析のために LSP ツールを提供しています。
636
+ Oh My OpenCode では、LSP のリファクタリング(名前変更、コードアクション)ツールを提供します。
637
+ OpenCode でサポートされるすべての LSP 構成およびカスタム設定(opencode.json で設定されたもの)をそのままサポートし、Oh My OpenCode 専用の追加設定も以下のように可能です。
638
+
639
+ `~/.config/opencode/oh-my-opencode.json` または `.opencode/oh-my-opencode.json` の `lsp` オプションを通じて LSP サーバーを追加設定できます:
640
+
641
+ ```json
642
+ {
643
+ "lsp": {
644
+ "typescript-language-server": {
645
+ "command": ["typescript-language-server", "--stdio"],
646
+ "extensions": [".ts", ".tsx"],
647
+ "priority": 10
648
+ },
649
+ "pylsp": {
650
+ "disabled": true
651
+ }
652
+ }
653
+ }
654
+ ```
655
+
656
+ 各サーバーは次をサポートします:`command`, `extensions`, `priority`, `env`, `initialization`, `disabled`。
657
+
658
+
659
+ ## 作者のノート
660
+
661
+ Oh My OpenCode をインストールしてください。
662
+
663
+ 私はこれまで、$24,000 分のトークンを純粋に個人の開発目的で使用してきました。
664
+ あらゆるツールを試し、徹底的に設定しました。私の選択は OpenCode でした。
665
+
666
+ 私がぶつかったすべての問題への答えを、このプラグインに詰め込みました。ただインストールして使ってください。
667
+ OpenCode が Debian / ArchLinux だとしたら、Oh My OpenCode は Ubuntu / [Omarchy](https://omarchy.org/) です。
668
+
669
+
670
+ [AmpCode](https://ampcode.com) や [Claude Code](https://code.claude.com/docs/overview) から強い影響とインスピレーションを受け、彼らの機能をそのまま、あるいはより良く、ここに移植しました。そして今も作り続けています。
671
+ **Open**Code ですからね。
672
+
673
+ 他のエージェントハーネスが約束しておきながら提供できていない、マルチモデルオーケストレーション、安定性、豊富な機能を、ただ OpenCode で享受してください。
674
+ 私がテストし、アップデートし続けます。私はこのプロジェクトの最も熱心なユーザーですから。
675
+ - 純粋な論理力が一番鋭いモデルはどれか?
676
+ - デバッグの神は誰か?
677
+ - 文章を書くのが一番うまいのは誰か?
678
+ - フロントエンドを支配するのは誰か?
679
+ - バックエンドを掌握するのは誰か?
680
+ - 日常使いで最速のモデルは何か?
681
+ - 他のハーネスが出している新機能は何か?
682
+
683
+ このプラグインは、それらの経験の結晶です。皆さんはただ最高のものを受け取ってください。もしもっと良いアイデアがあれば、PR はいつでも歓迎です。
684
+
685
+ **Agent Harness 選びで悩むのはやめましょう。**
686
+ **私がリサーチし、最高のものを取り入れ、ここにアップデートを出し続けます。**
687
+
688
+ もしこの文章が傲慢に聞こえ、もっと良い答えをお持ちなら、ぜひ貢献してください。歓迎します。
689
+
690
+ こここで言及されたどのプロジェクトやモデルとも、私には一切関係がありません。これは純粋に個人的な実験と好みによって作られました。
691
+
692
+ このプロジェクトの 99% は OpenCode を使って書かれました。機能を中心にテストしましたが、私は TypeScript を正しく書く方法をあまり知りません。**しかし、このドキュメントは私が直接レビューし、大部分を書き直したので、安心して読んでください。**
693
+
694
+ ## 注意
695
+
696
+ - 生産性が上がりすぎる可能性があります。隣の同僚にバレないように気をつけてください。
697
+ - とはいえ、私が言いふらしますけどね。誰が勝つか賭けましょう。
698
+ - [1.0.132](https://github.com/sst/opencode/releases/tag/v1.0.132) またはそれ以下のバージョンを使用している場合、OpenCode のバグにより設定が正しく行われない可能性があります。
699
+ - [修正 PR](https://github.com/sst/opencode/pull/5040) は 1.0.132 以降にマージされたため、新しいバージョンを使用してください。
700
+ - 余談:この PR も、OhMyOpenCode の Librarian、Explore、Oracle セットアップを活用して偶然発見され、修正されました。
701
+
702
+ *素晴らしいヒーロー画像を作成してくれた [@junhoyeo](https://github.com/junhoyeo) に感謝します*