[PR #13709] feat: Implement Roll-Call Command #14787

Open
opened 2026-02-16 18:19:32 -05:00 by yindo · 0 comments
Owner

Original Pull Request: https://github.com/anomalyco/opencode/pull/13709

State: open
Merged: No


Summary

Fixes #13711: adds a roll-call command for batch-testing availability of each model

Motivation

The models list often includes models that are inaccessible due to insufficient credits, authentication issues, deprecated status, or provider-specific restrictions like temporary rate-limits, leading to frustrating trial-and-error during setup or reconfiguration.

Dealing with it becomes exponentially complex the more providers the user connects.

This feature helps both beginners and power-users to empirically verify current model availability upfront, saving a lot of time and reducing errors downstream in different workflows.

Usage

Main help:

% bun run dev -- --help | grep roll-call
  opencode roll-call [filter]  batch-test all models for connectivity and latency

Subcommand contextual help:

% bun run dev -- roll-call --help
opencode roll-call [filter]

batch-test all models for connectivity and latency

Positionals:
  filter  regex to filter models by provider/modelID                                        [string]

Options:
  -h, --help        show help                                                              [boolean]
  -v, --version     show version number                                                    [boolean]
      --print-logs  print logs to stderr                                                   [boolean]
      --log-level   log level                   [string] [choices: "DEBUG", "INFO", "WARN", "ERROR"]
      --prompt      Prompt to send to each model                         [string] [default: "Hello"]
      --timeout     Timeout for each model call in milliseconds            [number] [default: 25000]
      --parallel    Number of parallel model calls                             [number] [default: 5]
      --retries     Number of additional retries for each model call           [number] [default: 0]
      --verbose     Show verbose output                                   [boolean] [default: false]
      --quiet       Suppress non-error output                             [boolean] [default: false]
      --output      Output format             [string] [choices: "table", "json"] [default: "table"]

also aliased as an option under models, for discoverability's sake:

% bun run dev -- models --help | grep roll-call
      --test        test all models for connectivity (alias for roll-call)                 [boolean]

Example output

% XDG_CONFIG_HOME=$PWD/.tmp/rc2-config XDG_DATA_HOME=$PWD/.tmp/rc2-config bun run dev -- roll-call --parallel 2
$ bun run --conditions=browser ./src/index.ts roll-call --parallel "2"
Starting roll call for models with prompt: "Hello"
Timeout per model: 25000ms, Parallel calls: 2
Testing 4 models...
Model                      | Access | Snippet                                                                             | Latency
-----------------------------------------------------------------------------------------------------------------------------------
opencode/big-pickle        | YES    | Hello! How can I help you today?                                                    | 4665ms
opencode/kimi-k2.5-free    | NO     | (Failed after 3 attempts. Last error: Rate limit exceeded. Please try again later.) | 7877ms
opencode/minimax-m2.5-free | YES    | Hello! How can I help you today?                                                    | 5667ms
opencode/gpt-5-nano        | YES    | Hello! Nice to meet you. What would you like to do                                  | 4755ms

3 accessible, 1 failed
**Original Pull Request:** https://github.com/anomalyco/opencode/pull/13709 **State:** open **Merged:** No --- ## Summary Fixes #13711: adds a `roll-call` command for batch-testing availability of each model ## Motivation The models list often includes models that are inaccessible due to insufficient credits, authentication issues, deprecated status, or provider-specific restrictions like temporary rate-limits, leading to frustrating trial-and-error during setup or reconfiguration. Dealing with it becomes exponentially complex the more providers the user connects. This feature helps both beginners and power-users to empirically verify _current_ model availability upfront, saving a lot of time and reducing errors downstream in different workflows. ## Usage Main help: ``` % bun run dev -- --help | grep roll-call opencode roll-call [filter] batch-test all models for connectivity and latency ``` Subcommand contextual help: ``` % bun run dev -- roll-call --help opencode roll-call [filter] batch-test all models for connectivity and latency Positionals: filter regex to filter models by provider/modelID [string] Options: -h, --help show help [boolean] -v, --version show version number [boolean] --print-logs print logs to stderr [boolean] --log-level log level [string] [choices: "DEBUG", "INFO", "WARN", "ERROR"] --prompt Prompt to send to each model [string] [default: "Hello"] --timeout Timeout for each model call in milliseconds [number] [default: 25000] --parallel Number of parallel model calls [number] [default: 5] --retries Number of additional retries for each model call [number] [default: 0] --verbose Show verbose output [boolean] [default: false] --quiet Suppress non-error output [boolean] [default: false] --output Output format [string] [choices: "table", "json"] [default: "table"] ``` also aliased as an option under `models`, for discoverability's sake: ``` % bun run dev -- models --help | grep roll-call --test test all models for connectivity (alias for roll-call) [boolean] ``` ## Example output ```bash % XDG_CONFIG_HOME=$PWD/.tmp/rc2-config XDG_DATA_HOME=$PWD/.tmp/rc2-config bun run dev -- roll-call --parallel 2 $ bun run --conditions=browser ./src/index.ts roll-call --parallel "2" Starting roll call for models with prompt: "Hello" Timeout per model: 25000ms, Parallel calls: 2 Testing 4 models... Model | Access | Snippet | Latency ----------------------------------------------------------------------------------------------------------------------------------- opencode/big-pickle | YES | Hello! How can I help you today? | 4665ms opencode/kimi-k2.5-free | NO | (Failed after 3 attempts. Last error: Rate limit exceeded. Please try again later.) | 7877ms opencode/minimax-m2.5-free | YES | Hello! How can I help you today? | 5667ms opencode/gpt-5-nano | YES | Hello! Nice to meet you. What would you like to do | 4755ms 3 accessible, 1 failed ```
yindo added the pull-request label 2026-02-16 18:19:32 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: anomalyco/opencode#14787