3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Claude・ChatGPT・Grok を1つのコマンドで使い分けたいなら ― OMO 入門:インストールから役割ごとのモデル設定まで

3
Last updated at Posted at 2026-10-15

はじめに

ターミナルで動く AI コーディングエージェントは、選択肢が増えてきました。
Claude Code や Codex CLI が代表的です。
この記事では、その一つである OMO(oh-my-openagent)を取り上げます。
インストールから、日常的に使える状態になるまでを順に解説します。

OMO は、ターミナルで使う AI エージェントです。
複数社のモデルを、1つのコマンドから使い分けられます。
Claude と ChatGPT のサブスクリプションに同時にログインし、作業ごとに担当モデルを割り当てられます。

筆者は Claude Code と Codex CLI を併用していましたが、OMO に寄せて1日使い込みました。
その中でつまずいた点も、対処法と一緒に載せています。

この記事で分かることは次のとおりです。

  • OMO のインストールと、最初のログインまでの手順
  • ログインの選び方で、料金の扱いが変わること
  • 入力欄の基本操作と、よく使うコマンド
  • 設定ファイル omo.jsonc で、役割ごとにモデルを割り当てる方法
  • 筆者が実際に遭遇したエラーと、その対処法

対象読者

  • Claude Code や Codex CLI を使ったことがあり、ほかの選択肢を試したい方
  • Claude と ChatGPT の両方のサブスクリプションを持っていて、使い分けたい方
  • ターミナルの基本操作(cd やコマンド実行)ができる方

動作確認環境

2026年10月時点で、次の環境で確認しました。

項目 バージョン
OS macOS 27.0(Apple Silicon)
ターミナル macOS 標準のターミナル.app
OMO 5.1.27(エンジン: senpi 2026.10.10-9)
ログインしたサービス Claude(Max)、ChatGPT(Pro)、Cursor

OMO は更新が速いツールです。
画面の表示やコマンドが、この記事の内容と違う場合があります。
最新の情報は、OMO の公式リポジトリ で確認することをおすすめします。

要点

  • インストールはコマンド1行で済み、起動は omo です。
  • Claude をプランの利用枠で使うなら、/login anthropic-subscription でログインします。
  • ChatGPT は chatgpt-subscription としてログインし、モデル名もその名前で指定します。
  • ~/.omo/omo.jsonc で、役割(エージェント)ごとに使うモデルを決められます。
  • 困ったときは、まず omo doctor で環境を診断するのが近道です。

OMO の全体像

最初に、OMO がどんな部品でできているかを整理しておきます。
全体像を先に知っておくと、後半の設定の話が理解しやすくなります。

OMO は、オープンソースのコーディングエージェント pi を改造した senpi の上で動いています。
ファイルの読み書きやコマンド実行といった基本の道具に加えて、次のような仕組みを持っています。

仕組み 役割
サブエージェント 計画・実装・レビューなどを、別のモデルに任せる
スキル 作業手順書。必要なときだけ読み込まれる
記憶(Kibitzer) 過去のやり取りから、役立つ情報を毎回の作業に添える
拡張機能 TypeScript で機能を追加する。表示のカスタマイズもできる

OMO の詳しい文書は、インストールすると手元にも置かれます。
場所は ~/.omo/binary-runtime/<バージョン>/docs/ です。
この記事で「同梱の文書」と書いているのは、このフォルダのファイルを指します。

インストール

インストールスクリプトで入れる

macOS と Linux では、次のコマンドでインストールできます。

curl -fsSL https://get.omo.dev/install.sh | bash

このスクリプトは、OS と CPU に合った omo の実行ファイルを ~/.local/bin に置きます。
ダウンロードしたファイルは、公開されているチェックサムで照合されます。

Windows の場合は、PowerShell で次のコマンドを実行します。

irm https://get.omo.dev/install.ps1 | iex

インストールが終わったら、新しいターミナルを開いてバージョンを確認します。

omo --version

筆者の環境では、次のように表示されました。

omo 5.1.27 (engine: senpi 2026.10.10-9; scheme nodef)

新しいターミナルでも omo: command not found と表示される場合は、PATH が通っていません。
シェルの設定ファイル(~/.zshrc など)に、次の1行を追加してみてください。
export PATH="$HOME/.local/bin:$PATH"
シェルごとの手順は、OMO のインストール資料 にまとまっています。

パッケージマネージャーで入れる

npm や Bun を使い慣れている場合は、パッケージとしても入れられます。

npm i -g omo-ai

パッケージ名は omo-ai です。
npm には omo という名前の別のパッケージがあるので、名前を確認してから入れることをおすすめします。

起動と最初のログイン

起動する

作業したいプロジェクトのフォルダに移動して、omo を実行します。

cd ~/projects/my-app
omo

OMO は、起動したフォルダの中でファイルを読み書きします。
変更を取り消せるよう、git で管理しているフォルダで使うことをおすすめします。

Claude にログインする(料金の扱いに注意)

Claude のサブスクリプションには、ログインの経路が2つあります。
どちらを選ぶかで、料金の扱いが変わります。

ログインの方法 料金の扱い(同梱の文書 providers.md による)
/login anthropic-subscription Claude Code の仕組みを経由して呼び出す。プランの利用枠で使える
/login で anthropic を選ぶ 外部ツールからの利用として、追加利用分(トークンごとの課金)になる

プランの利用枠で使いたい場合は、入力欄で次のコマンドを実行します。

/login anthropic-subscription

ブラウザが開くので、そこで許可すればログインは完了です。

筆者は最初、/login の一覧から anthropic を選んでいました。
後から文書を読み、こちらはプランの枠外の課金になると知りました。
Claude の利用状況は、Claude の利用状況ページ で確認できます。

ChatGPT にログインする

ChatGPT のサブスクリプションは、入力欄で /login を実行し、ChatGPT を選んでログインします。
OMO の中では、chatgpt-subscription という名前で扱われます。
後で設定ファイルにモデルを書くときも、この名前を使います。

公式 README によると、ほかに Kimi と GLM のサブスクリプションにも対応しています。
筆者は、/login cursor で Cursor にもログインしました。
Cursor 経由では、Grok などのモデルも使えます。

使えるモデルを確認する

ログインが済んだら、ターミナルで次のコマンドを実行します。

omo --list-models gpt-6

ログイン済みのサービスで使えるモデルが、提供元の名前と一緒に表示されます。
筆者の環境での一部を抜粋します。

provider                model                               context  max-out  thinking  images
chatgpt-subscription    gpt-6-astra                         600K     128K     yes       yes
chatgpt-subscription    gpt-6-sol                           400K     128K     yes       yes

設定ファイルには、chatgpt-subscription/gpt-6-sol のように「提供元/モデル名」の形で書きます。
引数の gpt-6 を claude や grok に変えると、ほかのモデルも探せます。

環境を診断する

続けて、次のコマンドで環境を診断します。

omo doctor

筆者の環境では、次のような結果になりました(一部を抜粋しています)。

PASS plugin manifest: plugin/package.json
PASS extension: plugin/extensions/omo.js
INFO omo 5.1.27 (engine: senpi 2026.10.10-9; scheme nodef)
PASS task categories: all 10 usable with your connected providers

最後の行は、ログイン済みのサービスで、作業の種類(カテゴリ)を10種類すべて動かせるという意味です。
ここで認証まわりの問題がないかを確かめ、次の章で最初の依頼を出して応答が返れば、導入は完了です。

最初の依頼を出す

入力欄に、日本語で依頼を書いて Enter を押します。

このリポジトリの構成を要約して、テストの実行方法を教えてください。

OMO はファイルを読み、必要ならコマンドを実行して答えを組み立てます。
ファイルを指定したいときは、入力欄で @ を打つと候補が出ます。

README では、難しい作業に ultrawork(または ulw)を付ける使い方が紹介されています。
付けると、コードを読んで計画を立て、手順ごとに確認しながら進めるモードになります。

1回だけ実行して終わる使い方

対話画面を開かずに、質問を1つ投げて結果だけ受け取ることもできます。

omo -p --no-session "package.json のスクリプト一覧を表にしてください。"

-p は1回実行して終了するモード、--no-session は会話の記録を残さない指定です。
スクリプトから呼び出すときに便利です。

入力欄の基本操作

よく使うキー操作をまとめます。
キー割り当ては、同梱の文書 keybindings.md で確認しました。

キー 動作
Enter 送信
Shift+Enter / Ctrl+J 改行(端末によっては効きません。後述します)
Esc 実行中の処理を中断する
Ctrl+G 外部エディタで入力内容を編集する
Ctrl+L モデルを選ぶ
Alt+Enter 作業中に、次の依頼を予約する
Ctrl+C 入力を消す(2回押すと終了)

よく使うコマンドは次のとおりです。

コマンド 動作
/login サービスにログインする
/model 使うモデルを切り替える
/reload 設定や拡張機能を読み込み直す

プロジェクトの指示を渡す

OMO は起動時に、作業フォルダとその親フォルダにある AGENTS.md または CLAUDE.md を読み込みます。
「テストは必ずこのコマンドで実行する」といった決まりごとを書いておくと、毎回伝えなくて済みます。

AGENTS.md
# プロジェクトの指示

- コードを変更したら `npm test` を実行してください。
- 本番データベースへの操作はしないでください。
- 回答は日本語で、結論から書いてください。

筆者の環境では、Claude Code 用に書いた ~/.claude/CLAUDE.md も読み込まれていました。
この挙動は公式の文書では見つけられなかったので、筆者の環境での確認にとどまります。

設定ファイルで役割とモデルを決める

ここからが OMO らしい使い方です。

設定ファイルの場所

役割(エージェント)やモデルの割り当ては、~/.omo/omo.jsonc に書きます。
プロジェクトごとに変えたい場合は、そのプロジェクトに .omo/omo.jsonc を置きます。
同じ項目が両方にあるときは、作業フォルダに近いほうが優先されます。

キー割り当てや拡張機能など、ほかの設定は ~/.omo/agent/ の下に別のファイルで置きます。
これらは後の章で紹介します。

役割(エージェント)を追加する

agents に役割を書くと、その役割を担うサブエージェントを独自に追加できます。
例えば、計画は推論の強いモデル、レビューは別のモデル、という分け方ができます。

次の例は、ChatGPT のサブスクリプションだけで動く、完成した設定ファイルです。
役割を2つ追加し、軽い作業用のモデルも指定しています。

~/.omo/omo.jsonc
{
  "$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-openagent/dev/assets/omo.schema.json",
  "agents": {
    "planner": {
      "description": "要件を分析し、実装計画を作る",
      "model": "chatgpt-subscription/gpt-6-astra",
      "reasoning": "high",
      "prompt": "You are the planning agent. Analyze requirements and produce an implementation plan. Do not modify code.",
      "tools": { "write": false, "edit": false }
    },
    "code-reviewer": {
      "description": "最終コードレビュー",
      "model": "chatgpt-subscription/gpt-6-sol",
      "reasoning": "high",
      "prompt": "You are an independent code reviewer. Report actionable findings without modifying code.",
      "tools": { "write": false, "edit": false }
    }
  },
  "categories": {
    "quick": { "model": "chatgpt-subscription/gpt-6-luna" }
  }
}

すでに設定ファイルがある場合は、agents と categories を既存の中身に足してください。
ファイルごと置き換えると、それまでの設定が消えます。

各項目の意味は次のとおりです。

項目 意味
description 役割の説明。メインのモデルが、どの役割に任せるかを決める手がかりになる
model 使うモデル。omo --list-models で確認した「提供元/モデル名」を書く
reasoning 考える深さ。low・medium・high・xhigh・max などから選ぶ
prompt その役割への指示文
tools 使える道具の制限

$schema の行を入れておくと、対応したエディタで項目名の補完やチェックが効きます。

"write": false と "edit": false で止められるのは、ファイルを書き換える専用の道具だけです。
コマンド実行の道具(bash)が使えれば、そこからファイルを変えることはできます。
完全な読み取り専用を保証する設定ではない点に、留意が必要です。

追加した役割を呼び出す

追加した役割は、OMO を起動し直すと使えるようになります。
筆者の環境では、実行中のセッションで新しい役割を呼ぶと「その名前のエージェントはない」というエラーになりました。

起動し直したら、依頼文の中で役割の名前を挙げて頼みます。

planner に、ログイン機能を追加する実装計画を立ててもらってください。

OMO には explore など組み込みの役割もあります。
自分で追加する役割には、組み込みと重ならない名前を付けておくと混乱しません。

Claude や Grok を組み合わせる

Claude のモデルを使うには、先に /login anthropic-subscription でログインしておきます。
そのうえで omo --list-models claude を実行し、表示された「提供元/モデル名」を model に書きます。

Grok を使う場合は、/login cursor で Cursor にログインします。
筆者の環境では cursor/grok-4.7 という名前で表示され、調査用の役割に割り当てて使いました。
Cursor で使えるモデルはアカウントごとに異なるので、名前は自分の環境で確認するのが確実です。

軽い作業用のモデル(quick)

設定例の categories.quick は、軽い作業用のカテゴリです。
後述する記憶機能(Kibitzer)の判定も、既定ではこのカテゴリのモデルで動きます。
ここを確実に動くモデルにしておくと、後で紹介するエラーを防げます。

筆者がつまずいたところと対処法

実際に1日使って遭遇した問題を、対処法と一緒に紹介します。
原因まで確かめられたものと、推測にとどまるものを分けて書いています。

ターミナル.app で改行できない

macOS 標準のターミナル.app では、改行のつもりのキーで送信されてしまいました。
Shift+Enter と Ctrl+J の、どちらを押しても同じでした。
同じ端末で、Claude Code と Codex CLI は Ctrl+J で改行できます。
そのため、OMO 側の問題と考えています。
開発元には Issue #9796 として報告しました。

ターミナルの設定を変えずに済む回避策は、次の2つです。

1つ目は、Ctrl+G で外部エディタを開く方法です。
入力内容がエディタで開くので、自由に改行して保存・終了すると入力欄に戻ります。
エディタは、設定の externalEditor、環境変数の VISUAL、EDITOR の順に探されます。
VS Code のようなウィンドウで開くエディタは、閉じるまで待つ指定(code --wait など)が必要です。

2つ目は、改行用のキーを自分で追加する方法です。
~/.omo/agent/keybindings.json を作り、次のように書きます。

~/.omo/agent/keybindings.json
{
  "tui.input.newLine": ["shift+enter", "ctrl+j", "ctrl+q"]
}

保存したら、入力欄で /reload を実行すると反映されます。
ctrl+q を選んだのは、OMO の既定のキー割り当てで使われていない数少ない組み合わせだったからです。

OMO の文書によると、iTerm2・Ghostty・Kitty では Shift+Enter で改行できます。
ターミナルを替えられる場合は、それがいちばん手軽です。

「Kibitzer gate failed」というエラーが何度も出る

次のようなエラーが、会話の合間に繰り返し表示されました。

× Kibitzer gate failed · start_failed
the child session started on chatgpt-subscription/gpt-6-luna instead of the pinned
chatgpt-subscription/gpt-6-luna-fast; refusing the substitution
after 3 consecutive failures; set categories.quick.model (or memory.recall.category)
in omo.json to a model that answers

Kibitzer は、過去の記憶から今回の作業に役立つものを選ぶ仕組みです。
このエラーは、指定したモデルと、実際に起動したモデルが一致しなかったことを示しています。
OMO は一致しない結果を使わないため、判定が失敗していました。
なぜ別のモデルで起動したのかまでは、確かめられていません。

このときも、メインの応答は普段どおり続きました。
ただし、記憶を参照する判定は失敗していたことになります。

対処法は、エラー文のとおり categories.quick.model に確実に応答するモデルを指定することです。
判定に使うカテゴリ自体を変えたい場合は、memory.recall.category で指定できます。

Haiku を指定したら、文章量が足りず起動できなかった

軽いモデルで試そうと、次のコマンドを実行しました。

omo -p --no-session --model anthropic/claude-haiku-5-5 "質問の文章"

すると、起動前に次のようなエラーで止まりました(一部を抜粋しています)。

systemPromptTokens: 22190,
activeToolSchemaTokens: 12096,
requiredTokens: 107246,
shortfallTokens: 7246,
verdict: "impossible",

OMO は、指示文と道具の説明、それに出力用の余白などを合わせて、必要な文章量を見積もっています。
筆者の環境では、その合計が約10万7千トークンになりました。
モデルが一度に扱える文章量(コンテキスト)を約7千トークン上回ったため、起動を断られたようです。

この数字は、読み込んでいる指示ファイルやスキルの量で変わります。
筆者の環境は指示ファイルとスキルが多めなので、ほかの環境では起動できる可能性もあります。
メインのモデルには、扱える文章量の大きいモデルを選んでおくと安心です。

Cursor のモデルが途中から応答しなくなる

長く続けていたセッションで Cursor のモデルを呼ぶと、次のエラーが返りました。

Cursor conversation is poisoned for this session; use another provider

OMO の変更履歴には、会話の途中の履歴圧縮で、Cursor との会話の状態が壊れる不具合を直した記録があります。
ただ、今回のエラーが同じ原因かどうかは特定できていません。
筆者の場合は、新しいセッションで起動し直して使いました。

困ったら omo doctor

設定を変えた後や、何かがおかしいと感じたときは、まず omo doctor を実行するのがおすすめです。
OMO の構成、ログイン状態、カテゴリごとの利用可否をまとめて確認できます。

さらに便利にする

基本の使い方に慣れたら、次のような拡張もできます。

Claude Code のスキルを流用する

Claude Code 用のスキル(.claude/skills/ の手順書)は、OMO でも読み込めます。
プロジェクトのフォルダに .senpi/settings.json を作り、次のように書きます。

.senpi/settings.json
{
  "skills": ["../.claude/skills"]
}

起動し直すか /reload を実行した後、/skill:スキル名 で呼び出せれば読み込めています。
筆者の環境では、既存のスキルがそのまま一覧に並びました。

ただし、Claude Code にしかない道具を前提にしたスキルは、そのままでは動かない場合があります。
その場合は、スキルの手順を OMO の道具に合わせて調整する必要があります。

入力欄の下に情報を表示する

TypeScript のファイルを置くと、OMO が拡張機能として読み込みます。
置き場所は ~/.omo/agent/extensions/ です。
筆者は、Claude と Codex の利用率(5時間枠と週の枠)を入力欄の下に表示する拡張を作りました。

書き方は、同梱の文書 extensions.md が参考になります。
同じフォルダの1つ上にある examples/extensions/ には、サンプルもあります。
表示の追加には ctx.ui.setStatus() を使います。

更新とアンインストール

インストールの方法ごとに、手順が異なります。

インストール方法 更新 アンインストール
インストールスクリプト(macOS / Linux) 同じ curl コマンドをもう一度実行 rm ~/.local/bin/omo
npm omo update npm uninstall -g omo-ai
Bun omo update bun remove -g omo-ai

Windows での更新とアンインストールは、OMO のインストール資料 にまとまっています。

どの方法でも、設定やログイン情報は ~/.omo/ に残ります。
完全に消したい場合は、このフォルダも削除します。

まとめ

OMO は、curl の1行でインストールし、/login でサブスクリプションにつなげば使い始められます。
Claude は anthropic-subscription でログインすると、プランの利用枠で使えます。
そこから ~/.omo/omo.jsonc で、役割ごとにモデルを割り当てます。
そうすると、複数社のモデルを作業に合わせて使い分けられます。

筆者が使ってみて感じたのは、「どのモデルに何を任せるか」を自分で決められる面白さでした。
一方で、ターミナルとの相性や、ログインの経路による料金の違いなど、知らないとつまずく点もありました。
まずはインストールと omo doctor までを試し、普段の小さな作業から任せてみるのがよいと思います。

この記事の下書きには生成AIを利用しています。
手順とコマンドは、動作確認環境に書いた筆者の環境で実行して確認しました。
料金の扱いなど、文書から引用した内容は、その旨を本文に記載しています。

参考文献

3
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?