メインコンテンツまでスキップ

コーディング

コーディング 画面(/coding)は、リポジトリを対象にしたコーディング作業を 会話形式で進める機能です。バックエンドは OpenCode ACP に一本化されています。

二層構成

コーディングは次の二層で動きます。

  • Coordinator(進行役の LLM) — 進捗・質問・最終要約だけを担当します。
  • Worker(外部 CLI) — リポジトリ調査・実装・テスト・技術判断を担当します。

Coordinator は応答本文に <cli_request> を出力してタスクを委譲します。 アプリがそれを抽出して Worker を実行し、Worker の出力を次ターンの観測として返します。 Coordinator が run_shell などのツールで CLI を起動することはなく、バックエンド名は Coordinator に開示されません。

Web UI で使う

  1. 左サイドバーでプロジェクトとセッションを選びます。
  2. セッションが無い場合は + 新規 で作成します(プロジェクトが必要)。
  3. 入力欄からメッセージを送ります(送信)。実行中の会話は キャンセル できます。
  4. モデルを変えるには モデルを変更(次回送信から適用)を使います。
  5. 会話設定 ⚙ で、そのセッションで許可するツールを調整できます。
  6. 既定設定 で、新規会話に適用する既定ツールセットを設定できます。

セッションタイトルは セッションタイトル 入力で変更できます。

CLI で使う

新規セッションは --project-id、再開は --resume-session を指定します。 プロンプトは位置引数として渡すか、stdin から読み取ります。

uv run -m obsidian_ai_hub --coding --project-id 42 "このモジュールのテストを追加して"
uv run -m obsidian_ai_hub --coding --resume-session asess_1234567890ab "続きを進めて"
cat prompt.txt | uv run -m obsidian_ai_hub --coding --project-id 42

--json で結果を JSON として出力できます。

設定

config/config.ymlcoding で設定します。環境変数が YAML より優先されます。

coding:
orchestrator:
provider: openai # openai | ollama | gemini | opencode_go | local
model: gpt-5.6-terra
cli:
opencode_path: /path/to/your/opencode # 既定: PATH 上の opencode
acp:
opencode_model: opencode-go/muse-spark-1.3-contributor
opencode_models:
- opencode-go/muse-spark-1.3-contributor
設定環境変数既定
coding.orchestrator.providerCODING_ORCHESTRATOR_PROVIDERopenai
coding.orchestrator.modelCODING_ORCHESTRATOR_MODELgpt-5.6-terra
coding.cli.opencode_pathCODING_OPENCODE_CLI_PATHopencode
coding.acp.opencode_modelCODING_OPENCODE_MODELopencode-go/muse-spark-1.3-contributor
coding.acp.opencode_modelsCODING_OPENCODE_MODELS上記 1 件
  • 使用モデルは毎ターンの prompt 前に session/set_model で固定されます。拒否された場合はそのターンが失敗します。
  • 選択できるモデルは opencode_models の許可リストに限られます。
  • 旧 Direct CLI(Codex / OpenCode run)と Codex バックエンドは廃止済みです。既存の旧セッションは読み取り専用で、新しい実行には OpenCode ACP の新規セッションが必要です。

詳細は コーディング設定 を参照してください。

次に読む