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:
- Quickly filter and add only free models (cost = $0) when browsing the model catalog in the Dashboard.
- 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?
-
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.
-
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?
-
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.
-
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:
- 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.
- 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
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:
This would help me:
What prevents this today?
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.
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?
Free model filter (catalog/dashboard):
Manual price override (per-model setting):
Example usage or interface
Dashboard model catalog view with free filter:
Manual price override in model settings:
CLI equivalent:
Alternatives or workarounds
Current workarounds:
/api/v1/modelsendpoint 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.Additional context
/api/v1/modelsresponse (fields:pricing.prompt,pricing.completion), making free-model detection straightforward for this provider.Checks