Skip to content

[Feature]: Filter free models in catalog & manual price override for models without pricing metadata #3665

Description

@nordz0r

Area

Catalog / models

What are you trying to accomplish?

I use OpenRouter and KiloCode providers which offer many free models alongside paid ones.
I want to:

  1. Quickly filter and add only free models (cost = $0) when browsing the model catalog in the Dashboard.
  2. Manually set or override the price (input/output cost per token) for models where pricing metadata is missing or incorrect — especially for newly added or self-hosted models.

This would help me:

  • Avoid accidental cost when experimenting (only use free-tier models)
  • Get accurate usage cost tracking for models that don't report pricing through their API

What prevents this today?

  1. Free model filter: The Dashboard model catalog shows all discovered models without a way to filter by cost. For OpenRouter alone this can be 200+ models, and manually checking which are free requires cross-referencing the OpenRouter pricing page. There is no "free only" toggle or price-based filter.

  2. Manual price override: When a model's pricing is not provided by the provider API (common with self-hosted Ollama models, some OpenRouter community models, KiloCode free-tier models), the usage cost in the Dashboard shows $0.00 or "unknown". There is no UI to manually set input/output token costs so that usage tracking reflects actual costs.

PR #3582 added pricing-policy resolution for usage tracking, but it works with provider-reported prices only — there is no manual override mechanism exposed in the GUI or CLI.

What should OpenCodex do?

  1. Free model filter (catalog/dashboard):

    • Add a toggle or filter option in the model catalog view: "Show only free models" (where both input and output cost = 0).
    • For providers that report pricing metadata (OpenRouter, KiloCode), use it to classify models as free/paid.
    • The filter should work during initial model discovery (adding a new provider) and in the existing model management view.
  2. Manual price override (per-model setting):

    • In the model detail/edit view (or a new "Pricing" column in the model list), allow the user to manually set:
      • Input cost per 1M tokens
      • Output cost per 1M tokens
    • Manual overrides should take precedence over provider-reported prices in usage cost calculations.
    • Overrides should persist in the local configuration and survive catalog re-sync.
    • A visual indicator (e.g., pencil icon or "custom" badge) should show when a model has manually overridden pricing.

Example usage or interface

Dashboard model catalog view with free filter:

┌─────────────────────────────────────────────────┐
│  Provider: openrouter                           │
│  [✓] Show only free models    [Search: ___]     │
│                                                 │
│  Model                        Cost     Status   │
│  ─────────────────────────────────────────────── │
│  google/gemma-3-1b-it:free    $0.00    [✓]      │
│  meta-llama/llama-4-scout     $0.00    [✓]      │
│  deepseek/deepseek-r1:free    $0.00    [ ]      │
│  ...                                            │
└─────────────────────────────────────────────────┘

Manual price override in model settings:

┌─────────────────────────────────────────────────┐
│  Model: ollama/my-custom-model                  │
│                                                 │
│  Pricing:  ○ Auto (from provider)               │
│            ● Manual override                    │
│                                                 │
│  Input:  [___0.50___] per 1M tokens             │
│  Output: [___1.50___] per 1M tokens             │
│                                                 │
│  [Save]  [Reset to auto]                        │
└─────────────────────────────────────────────────┘

CLI equivalent:

# Set custom pricing for a model
ocx model set-price ollama/my-model --input 0.50 --output 1.50

# List only free models from a provider
ocx model list --provider openrouter --free-only

Alternatives or workarounds

Current workarounds:

  1. Free filter: Manually cross-reference OpenRouter's /api/v1/models endpoint or pricing page, then individually toggle off paid models in the Dashboard. This is tedious with 200+ models and breaks on every catalog re-sync.
  2. Price override: No workaround exists — models with missing pricing always show $0.00 in usage, making cost tracking unreliable for mixed free/paid setups.

Additional context

Checks

  • I searched existing issues and documentation.
  • This request describes a concrete OpenCodex workflow rather than merely naming a desired technology.
  • I removed secrets and personal data.

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

    catalogModel catalog, slugs, visibility, routed entriesenhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions