Oracle (CLI) — 使い方
Oracle はプロンプト + 選択したファイルを一つの「ワンショット」リクエストにバンドルし、別モデルが実際のリポジトリコンテキストで回答できるようにする(API またはブラウザ自動化)。出力はアドバイスとして扱い、コードベース + テストで検証すること。
主な使い方(ブラウザ、GPT-5.2 Pro)
デフォルトワークフロー: --engine browser で ChatGPT の GPT-5.2 Pro を使用。これは「ヒューマン・イン・ザ・ループ」パス: 10分〜1時間かかることがある。再アタッチ可能なセッションが保存される。
推奨デフォルト:
- •エンジン: browser (
--engine browser) - •モデル: GPT-5.2 Pro (
--model gpt-5.2-proまたは--model "5.2 Pro") - •添付: ディレクトリ/glob + 除外。シークレットは避ける。
ゴールデンパス(高速 + 信頼性)
- •小さなファイルセットを選ぶ(真実を含む最小限のファイル)
- •送信内容をプレビュー(
--dry-run+ 必要なら--files-report) - •通常の GPT-5.2 Pro ChatGPT ワークフローにはブラウザモード。API は明示的に使いたい時のみ
- •実行がデタッチ/タイムアウトしたら: 保存されたセッションに再アタッチ(再実行しない)
コマンド
- •
ヘルプ表示(セッションごとに1回):
- •
npx -y @steipete/oracle --help
- •
- •
プレビュー(トークン消費なし):
- •
npx -y @steipete/oracle --dry-run summary -p "<タスク>" --file "src/**" --file "!**/*.test.*"
- •
- •
トークン/コスト確認:
- •
npx -y @steipete/oracle --dry-run summary --files-report -p "<タスク>" --file "src/**"
- •
- •
ブラウザ実行(メインパス、長時間は正常):
- •
npx -y @steipete/oracle --engine browser --model gpt-5.2-pro -p "<タスク>" --file "src/**"
- •
- •
手動ペーストフォールバック(バンドル作成、クリップボードにコピー):
- •
npx -y @steipete/oracle --render --copy -p "<タスク>" --file "src/**"
- •
ファイル添付 (--file)
--file はファイル、ディレクトリ、glob を受け付ける。複数回指定可能。
- •
含める:
- •
--file "src/**"(ディレクトリ glob) - •
--file src/index.ts(リテラルファイル) - •
--file docs --file README.md(ディレクトリ + ファイル)
- •
- •
除外(
!プレフィックス):- •
--file "src/**" --file "!src/**/*.test.ts" --file "!**/*.snap"
- •
- •
デフォルト動作:
- •デフォルト除外:
node_modules,dist,coverage,.git,.turbo,.next,build,tmp - •glob 展開時は
.gitignoreを尊重 - •シンボリックリンクを追わない
- •1MB 超のファイルは拒否
- •デフォルト除外:
バジェット + 観察可能性
- •目標: 入力合計を ~196k トークン以下に
- •
--files-reportでトークン消費の多いファイルを事前に確認
エンジン(API vs ブラウザ)
- •自動選択:
OPENAI_API_KEYがあればapi、なければbrowser - •ブラウザエンジンは GPT + Gemini のみ対応。Claude/Grok/Codex には
--engine apiを使用 - •API 実行はコストが発生するため、開始前にユーザーの明示的同意が必要
セッション + slug
- •
~/.oracle/sessionsに保存 - •実行がデタッチ/タイムアウトしたら再アタッチ:
- •一覧:
oracle status --hours 72 - •アタッチ:
oracle session <id> --render
- •一覧:
- •
--slug "<3-5 words>"でセッション ID を読みやすく
プロンプトテンプレート
Oracle はプロジェクト知識ゼロで開始。含めるべき内容:
- •プロジェクト概要(スタック + ビルド/テストコマンド + プラットフォーム制約)
- •"どこに何があるか"(主要ディレクトリ、エントリポイント、設定ファイル)
- •具体的な質問 + 試したこと + エラーテキスト(そのまま)
- •制約("X は変えないで", "公開 API は維持", "パフォーマンス予算")
- •望む出力("パッチ計画 + テストを返して", "リスクのある仮定を列挙", "トレードオフ付きで3つの選択肢")
安全性
- •デフォルトでシークレットを添付しない(
.env、キーファイル、認証トークン) - •必要なものだけ共有。積極的に墨消し
- •"必要十分なコンテキスト"を優先: 少ないファイル + 良いプロンプト > リポジトリ全体