OpenClaudeは、OpenAI互換API・Gemini・Ollamaなど複数のLLMプロバイダーに対応したオープンソースのコーディングエージェントCLIです。ひとつのターミナルワークフローで、プロンプト・ツール実行・MCP連携・スラッシュコマンドをまとめて扱えます。READMEにはCodex OAuthやAtomic Chatなど、200以上のモデルバックエンドを切り替えられると書かれています。
入口は`bin/openclaude`で、ここから`scripts/build.ts`(bun実行)でビルドされた`dist/cli.mjs`が起動します。中核の`src/QueryEngine.ts`が1回の問い合わせのライフサイクル(モデル呼び出し・使用量集計・中断トレース・自動コンパクト)を管理しています。`src/Tool.ts`は各ツールの入出力スキーマと権限モード(permission mode)を定義し、ツール呼び出し前後の許可判定を担います。`src/Task.ts`は`local_bash`や`local_agent`、`remote_agent`などタスク種別ごとにIDを発行し、終了状態(completed・failed・killed)を判定してゾンビタスクへの誤操作を防いでいます。`src/bridge/`配下にはJWT認証やwebhookサニタイズ、リモートセッション接続の実装があり、別デバイスからの操作を仲介する機構と見られます。さらに`scripts/verify-no-phone-home.ts`や`scripts/externalsValidation.ts`など検証専用スクリプトが多数存在し、インストール後に不要な外部通信が発生しないか、依存関係の宣言が実態と一致しているかを機械的にチェックしています。
- STEP 01
`npm install -g @gitlawb/openclaude`または`bun install`でインストールすると、`bin/openclaude`が実行ファイルとして登録されます。
- STEP 02
初回起動時にプロバイダー選択画面が出て、Ollamaを選べばAPIキーなしでローカルモデルと会話を始められます。
- STEP 03
OpenAIやGeminiなどクラウド系を選ぶ場合は`.env.example`を参考にAPIキーを設定し、`profile:init`系のスクリプトでプロファイルを登録します。
- STEP 04
ターミナル内でスラッシュコマンドを打つと、ツール呼び出し前に権限確認プロンプトが表示され、許可すると`Task`としてバックグラウンド実行に回ります。
- STEP 05
`bun run check`(smoke・deadcode・testを連結)を回すと、ビルド後にCLIが実際に起動しバージョンを返すかまで確認できます。
- STEP 06
リモート操作(bridge)機能を試すには別途JWTやwebhook周りの設定が必要で、単なる起動だけでは有効になりません。
手元には、プロバイダーを問わず同じターミナル操作でコーディングエージェントを動かせるCLIバイナリが残ります。ツール実行・タスク管理・MCP連携・スラッシュコマンドが一体化しており、Ollamaを選べば費用をかけずに試せます。加えて、インストール時に余計な通信をしていないかを検証する`verify-no-phone-home`のようなスクリプトも同梱されています。
提供された代表ファイルの中に`src/assistant/AssistantSessionChooser.tsx`があり、中身は「Stub — AssistantSessionChooser not included in source snapshot」と明記されたダミー実装でした。つまりこのファイル群は完全な原本ではなく、一部UIコンポーネントの実際の挙動はこの資料だけでは確認できません。
`src/bridge/`にあるリモートセッション・JWT認証・webhookサニタイズの機能は、セキュリティに関わる設定を利用者側で追加しないと有効にならない構成に見えます。
ビルドには`.bun-version`で固定されたBunが必要で、Dockerfileでもバージョン一致を厳密にチェックしています。npm経由のプリビルド利用であれば意識しなくて済みますが、ソースからのビルドは環境要件がやや細かいです。
クラウドAPIとローカルOllamaの両方を1つのCLIで行き来したい開発者、特に費用をかけずに試したい人にはOllama経由の利用が向いています。プロバイダー切り替えや権限プロンプト、タスクID管理、インストール検証スクリプトなど、README記載の主張を裏付けるコードが実ファイルとして確認できたため、この判断は導入せずとも一定の信頼性を持って読めます。ただし一部ファイルがスタブと明記されていた点は率直な限界として認識しておくべきです。