Skip to content

Make models provider-aware instead of OpenCode-only #8

Description

@kud

Problem

ai-conventional-commit is now genuinely provider-agnostic, but the models command is not.

Today ai-conventional-commit models still shells out directly to opencode models, and the timeout fallback picker does the same. That means the model list only represents OpenCode-backed models, even though the CLI also supports provider-specific model namespaces such as:

  • claude/*
  • anthropic/*
  • OpenCode-backed provider/model values

So the current models UX is no longer truthful: it presents an OpenCode inventory as if it were the complete model inventory for the application.

Current behaviour

ModelsCommand is explicitly described as List available models via opencode CLI and wraps opencode models. The timeout picker in src/model/picker.ts also calls opencode models directly.

Direction

Make model discovery provider-aware rather than assuming OpenCode is the universal source of truth.

Possible shape:

  • define model-discovery capability per provider/adapter;
  • aggregate discoverable models from all configured/available providers;
  • preserve static aliases where a provider has a small canonical set (for example Claude CLI aliases such as claude/sonnet, claude/opus, claude/haiku);
  • use dynamic discovery where the provider exposes it (for example OpenCode);
  • handle providers that cannot enumerate models cleanly without pretending they can;
  • make models --interactive --save operate over the provider-aware list;
  • use the same discovery abstraction for timeout fallback instead of calling OpenCode directly.

The UI should make provider boundaries visible enough that users understand where each model comes from, while still keeping the canonical stored value as the normal provider/model string.

Docs

Update provider/model documentation so ai-conventional-commit models is described as an application-level model picker rather than an OpenCode wrapper.

Also verify model-default documentation while touching this area: the provider docs currently say there is no built-in model default, while the environment-variable table still shows github-copilot/claude-sonnet-4.6 as the default for AICC_MODEL.

Done when

  • ai-conventional-commit models no longer represents only opencode models.
  • Interactive model selection includes the supported provider namespaces where discovery is possible.
  • Timeout fallback uses the same provider-aware model source.
  • Providers without dynamic model enumeration are handled explicitly.
  • Documentation accurately reflects the multi-provider architecture.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions