ACE - Support Models

Shared model metadata and pricing helpers for ACE provider tooling.
ACE Logo

<a href="https://rubygems.org/gems/ace-support-models"><img alt="Gem Version" src="https://img.shields.io/gem/v/ace-support-models.svg" /></a>
<a href="https://www.ruby-lang.org"><img alt="Ruby" src="https://img.shields.io/badge/Ruby-3.2+-CC342D?logo=ruby" /></a>
<a href="https://opensource.org/licenses/MIT"><img alt="License: MIT" src="https://img.shields.io/badge/License-MIT-blue.svg" /></a>

Works with: Claude Code, Codex CLI, OpenCode, Gemini CLI, pi-agent, and more.

ace-support-models normalizes provider and model metadata into a single canonical source so ACE tools that reason about LLM capabilities, pricing, and compatibility do not duplicate catalogs or drift out of sync. Includes ace-models for search, pricing, and cache sync, and ace-llm-providers for provider listing.

Use Cases

Resolve model metadata consistently - avoid duplicated model catalogs across ACE features by querying one shared registry used by ace-llm and ace-review.

Calculate usage expectations - support stable cost and compatibility assumptions during tool workflows with shared pricing and capability primitives.

Share validation rules - apply one metadata model for provider and model checks so that ace-llm-providers-cli and other provider-aware packages stay aligned.

Quick Start

ace-models search claude              # Find models by name
ace-models info claude-sonnet-4-6     # Pricing and context window
ace-models cost claude-opus-4-6       # Token cost calculator
ace-models sync                       # Update cache from models.dev
ace-llm-providers list                # List known providers

Testing

Use the package test lanes directly:

ace-test ace-support-models           # fast lane default
ace-test ace-support-models feat      # feature-contract lane
ace-test ace-support-models all       # all deterministic lanes
ace-test-e2e ace-support-models       # retained workflow scenarios

For deterministic E2E setup of cache-dependent provider commands, use the public ace-models sync path with a fixture payload:

export ACE_MODELS_FIXTURE_JSON='{"anthropic":{"models":{"claude-sonnet-4":{"id":"claude-sonnet-4"}}}}'
ace-models sync
ace-llm-providers list
unset ACE_MODELS_FIXTURE_JSON

Part of ACE