Hacktoberfest 2026:メンテナが10月に向けて印を付けた、オープンで初心者向けの issue。 Hacktoberfest の issue を見る

ACP: expose the model list as a category:model config option (session/new returns only mode and allow_all)

オープン
#4,880 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
52/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
活発
技術スタック
node.js, shell
領域
api, cli

調査の方向性

Start at the copilot --acp entry point and trace the session/new, session/load, and session/set_config_option handlers; the issue names no source files or tests. Compare their behavior with the interactive /model picker. Done means model options and the active value are exposed, model changes emit updates, and unknown --model values no longer silently fall back.

索引モデルが issue の本文から書いたものです。

説明

triage
Describe the feature or problem you'd like to solve

Over copilot --acp, a client has no way to list the models available to the signed-in account or to pick one for a session.

Measured on GitHub Copilot CLI 1.0.85 (macOS arm64):

  • session/new returns sessionId, modes and configOptions only. configOptions holds exactly two select options, mode and allow_all. There is no option with category: "model".
  • session/load returns the same set.
  • Sending /model as a prompt answers: "The model-picker dialog is only available in the interactive CLI."
  • --model <id> accepts any string. copilot --acp --model=not_a_real_model_xyz starts, creates a session and completes a prompt with no error, no stderr, and nothing on the wire reports which model actually ran.

So an ACP client (an editor or a desktop app embedding Copilot) can only offer a single "Copilot default" row. It cannot show the models the user's plan allows, and if it hard-codes ids it cannot tell when one silently fell back.

Proposed solution

Advertise the model list the way the ACP spec already provides for it:

  1. Include a SessionConfigOption with type: "select" and category: "model" in session/new and session/load responses, listing the ids the account can use and currentValue set to the active model. Grouping by vendor via SessionConfigSelectGroup is fine.
  2. Accept session/set_config_option for that option and emit config_option_update on change, so a client can switch models mid-session without respawning.
  3. Ideally, reject an unknown --model value (or at least log it to stderr) instead of silently running the default.

This is the same shape the interactive /model picker already has; it just needs to be exposed on the ACP surface.

Example prompts or workflows

An ACP client starts copilot --acp, calls session/new, reads the model config option, shows its values in a picker, and calls session/set_config_option with the user's choice. Today step 3 yields nothing to show.

Additional context

Minimal reproduction (Node 24):

import { spawn } from 'node:child_process'
const c = spawn('copilot', ['--acp', '--no-auto-update'], { stdio: ['pipe', 'pipe', 'inherit'] })
const send = (o) => c.stdin.write(JSON.stringify(o) + '\n')
let buf = ''
c.stdout.on('data', (d) => {
  buf += d
  for (const line of buf.split('\n').slice(0, -1)) {
    const m = JSON.parse(line)
    if (m.id === 1) send({ jsonrpc: '2.0', id: 2, method: 'session/new', params: { cwd: process.cwd(), mcpServers: [] } })
    if (m.id === 2) { console.log(Object.keys(m.result), m.result.configOptions.map((o) => o.id)); c.kill() }
  }
  buf = buf.slice(buf.lastIndexOf('\n') + 1)
})
send({ jsonrpc: '2.0', id: 1, method: 'initialize', params: { protocolVersion: 1, clientCapabilities: { fs: { readTextFile: false, writeTextFile: false } }, clientInfo: { name: 'probe', version: '0' } } })

Prints [ 'sessionId', 'modes', 'configOptions' ] [ 'mode', 'allow_all' ].

Version: GitHub Copilot CLI 1.0.85. ACP SDK used by the client: @agentclientprotocol/sdk 1.4.0.

主要言語
Shell
スター
11.2k
フォーク
1.9k
平均マージ
14時間 16分
マージ済み PR(30日)
6

コントリビューションガイド

コントリビューションガイドを開く

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

github/copilot-cli のほかの issue

github/copilot-cli の issue をすべて見る

似ている issue

Shell/Bash の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。