0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

Kimi Code CLIをOpenAIキーで動かしたら、標準の-pでも自動修正が走った

0
Last updated at Posted at 2026-08-10

はじめに

Moonshot AI が公開しているターミナル型コーディングエージェント「Kimi Code CLI」を実際にインストールし、Moonshot 純正のモデルではなく手持ちの OpenAI API キーを繋いで動かしてみました。対象読者は、CLI 型コーディングエージェントの選択肢を増やしたい方・「エージェント CLI は特定ベンダーのモデルに縛られるのか」を知りたい開発者です。

この記事で解決できること

  • Kimi Code CLI を npm でインストールし、ログインなしでプロバイダを追加する手順
  • 手持ちの OpenAI キーで実際にファイル編集タスクを実行した結果
  • 非対話モード(-p)で踏んだ具体的なオプションの制約

前提条件

  • Node.js 22 以降(今回は v22.22.2 で検証)
  • npm が使えること
  • OpenAI など、任意の LLM プロバイダの API キー

TL;DR

  1. npm install -g @moonshot-ai/kimi-code でインストール
  2. kimi provider catalog add openai --api-key "$OPENAI_API_KEY" でログインをスキップしてプロバイダを登録
  3. kimi -p "プロンプト" --model openai/gpt-5-mini で非対話実行 → 実際にバグを直したコードが buggy.py に書き戻された

手順

1. インストール

Moonshot は単一バイナリのインストールスクリプトを公式に案内していますが、Node.js 環境があるなら npm 経由でも入ります。

npm install -g @moonshot-ai/kimi-code
kimi --version
# => 0.34.0

kimi --help を見ると、login(デバイスコード認証)・doctor(設定検証)・provider(プロバイダ管理)・acp(Agent Client Protocol サーバー)などのサブコマンドが並びます。

2. ログインせずにプロバイダを追加する

公式ドキュメントには「初回起動時に /login を実行し、Kimi Code OAuth か Moonshot AI Open Platform の API キーで認証する」とあります。ただし provider サブコマンドは非対話で使えるため、Moonshot のアカウントを作らなくても、models.dev の公開レジストリ経由で他社プロバイダを直接登録できます。

kimi provider catalog list openai
# => OpenAI  wire=openai  models=47

kimi provider catalog add openai --api-key "$OPENAI_API_KEY" --default-model gpt-5-mini
# => Imported OpenAI (openai) with 30 models from https://models.dev/api.json.
# => Default model set to openai/gpt-5-mini.

(models.dev は随時モデルが追加・更新される生きたレジストリのため、モデル数は2026年8月10日の実行時点の値です。手元で再実行すると件数が変わることがあります。)

kimi provider list で登録済みプロバイダを確認できます。

kimi provider list
# => openai  type=openai  models=30  source=inline
# => Default model: openai/gpt-5-mini

models.dev のカタログを見ると、OpenAI・Google・Anthropic・Groq・Cerebras など主要どころに加えて180近いプロバイダが並んでおり、「Kimi」を名乗る CLI でありながら実体は汎用エージェントハーネスに近い設計だと分かります。この汎用性の高さは、Moonshot 自身のモデルを常用する場合よりも「手持ちの契約プロバイダをそのまま使い回したいチーム」にとって価値が出るポイントです。

3. 非対話プロンプトで動かす

疎通確認として、日本語で1問1答を投げてみます。

kimi -p "1+1は何ですか?日本語で一言だけ答えてください。" --model openai/gpt-5-mini
# => 二

次に、実際のバグ修正タスクを与えました。

# buggy.py(修正前)
def add(a, b):
    return a - b  # bug: should be addition

print(add(2, 3))
kimi -p "buggy.pyのadd関数のバグを直してください。差分だけ簡潔に教えてください。" --model openai/gpt-5-mini

出力は次のとおりでした。

まず buggy.py を読みます。
次に、add 関数の演算子を修正します。
修正しました。行単位の差分は以下です。
- 変更前: return a - b  # bug: should be addition
- 変更後: return a + b

実際に buggy.py を開くと、return a + b に書き換わっていました。ツール呼び出しの承認を求めるフラグを何も付けていないのに、ファイル読み込み→編集がそのまま実行されています。

4. 踏んだ制約: -p--yolo / --auto は併用不可

対話セッションのつもりで承認モードのフラグを付けたところ、両方ともエラーになりました。

kimi -p "..." --yolo
# => error: Cannot combine --prompt with --yolo.

kimi -p "..." --auto
# => error: Cannot combine --prompt with --auto.

--help には「--yolo は通常のツール呼び出しを自動承認する(エージェントは質問する場合がある)」「--auto は完全自律で質問もしない」とあり、対話 UI 向けの承認モード切り替えという位置づけです。一方 -p(非対話プロンプト実行)は前段の検証で見たとおり、フラグなしでもツール呼び出しがそのまま実行されました。つまり -p モードは承認モードの選択肢ではなく、常に非対話・自動実行前提 という設計だと考えられます。CI やスクリプトから叩く際にこのフラグを付けようとすると素直に弾かれるので、-p を使う時点で --yolo は不要と覚えておくとハマりません。

トラブルシューティング

Q1: provider catalog add が失敗する場合

A: --api-key を渡さずに実行すると KIMI_REGISTRY_API_KEY 環境変数にフォールバックします。どちらも未設定だとプロバイダは追加されるもののキー未設定のまま登録されるため、kimi provider listsource=inline になっているか、キーが反映されているかを確認してください。

Q2: kimi doctor で何も出ない場合

A: 初回実行時は ~/.kimi-code/config.toml が存在しないため「File does not exist; built-in defaults will apply.」という SKIP 表示になります。これはエラーではなく、組み込みデフォルトが使われているという通知です。

まとめ

  • Kimi Code CLI は Moonshot 純正モデル専用ではなく、models.dev 経由で OpenAI など任意のプロバイダを登録できる汎用エージェントハーネスとして動きます
  • ログイン(OAuth / Moonshot API キー)をスキップし、provider catalog add だけで疎通できました
  • -p の非対話モードはフラグなしでもツール呼び出しをそのまま実行し、--yolo / --auto とは併用できません
  • GitHub スター数は6.2k(MIT ライセンス)で、CLI 単体としては後発ながら実用段階のツールです(MoonshotAI/kimi-code

関連記事

参考リンク

0
0
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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?