Skip to content

Custom agent frontmatter: accept array for model: field #3070

@dknappettmsft

Description

@dknappettmsft

Feature request

Allow custom agent markdown frontmatter to accept an array of strings for the model: field, in addition to a single string.

Motivation

VS Code chat modes already support model: as a list — it's used to present a model picker for the chat mode. This means the same agent definition file can't currently be shared cleanly between VS Code and Copilot CLI: the CLI rejects the file with:

custom agent markdown frontmatter is malformed: model: Expected string, received array

This forces plugin authors to either:

  • Maintain two copies of every agent file (one for VS Code, one for CLI), or
  • Pick one tool and accept that the agent won't load in the other.

Proposed behavior

When model: is an array, the CLI uses the first entry as the default model for that agent (and ideally treats the rest as acceptable alternates the user can switch to with /model while invoking the agent). When model: is a string, behavior is unchanged.

Alternatives considered

  • Authors flatten model: to a single string — works in both, but loses the picker UX in VS Code.
  • A local post-install patch script — fragile, breaks after every plugin update.

Accepting an array in the CLI parser is the only change that lets the same plugin work unmodified in both surfaces.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:agentsSub-agents, fleet, autopilot, plan mode, background agents, and custom agentsarea:configurationConfig files, instruction files, settings, and environment variablesarea:modelsModel selection, availability, switching, rate limits, and model-specific behavior
    No fields configured for Feature.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions