Last active
September 18, 2026 10:46
-
-
Save morisono/5a50ef249b85e08a2aa6e5475ca8a64d to your computer and use it in GitHub Desktop.
Pi agent models config file ~/.pi/agents/models.json. for more: https://pi.dev/docs/latest/models
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| { | |
| "providers": { | |
| "openrouter": { | |
| "baseUrl": "https://openrouter.ai/api/v1", | |
| "apiKey": "$OPENROUTER_API_KEY", | |
| "api": "openai-completions", | |
| "models": [ | |
| { | |
| "id": "openrouter/openai/gpt-astra-latest", | |
| "name": "OpenRouter OpenAI: GPT Astra Latest", | |
| "compat": { | |
| "openRouterRouting": { | |
| "allow_fallbacks": true, | |
| "require_parameters": false, | |
| "data_collection": "deny", | |
| "zdr": true, | |
| "enforce_distillable_text": false, | |
| "order": ["anthropic", "amazon-bedrock", "google-vertex"], | |
| "only": ["anthropic", "amazon-bedrock"], | |
| "ignore": ["gmicloud", "friendli"], | |
| "quantizations": ["fp16", "bf16"], | |
| "sort": { | |
| "by": "price", | |
| "partition": "model" | |
| }, | |
| "max_price": { | |
| "prompt": 10, | |
| "completion": 20 | |
| }, | |
| "preferred_min_throughput": { | |
| "p50": 100, | |
| "p90": 50 | |
| }, | |
| "preferred_max_latency": { | |
| "p50": 1, | |
| "p90": 3, | |
| "p99": 5 | |
| } | |
| } | |
| } | |
| }, | |
| { | |
| "id": "openrouter/openai/gpt-sol-latest", | |
| "name": "OpenRouter OpenAI: GPT Sol Latest", | |
| "compat": { | |
| "openRouterRouting": { | |
| "allow_fallbacks": true, | |
| "require_parameters": false, | |
| "data_collection": "deny", | |
| "zdr": true, | |
| "enforce_distillable_text": false, | |
| "order": ["openai", "amazon-bedrock", "google-vertex"], | |
| "only": ["openai", "amazon-bedrock"], | |
| "ignore": ["gmicloud", "friendli"], | |
| "quantizations": ["fp16", "bf16"], | |
| "sort": { | |
| "by": "price", | |
| "partition": "model" | |
| }, | |
| "max_price": { | |
| "prompt": 10, | |
| "completion": 20 | |
| }, | |
| "preferred_min_throughput": { | |
| "p50": 100, | |
| "p90": 50 | |
| }, | |
| "preferred_max_latency": { | |
| "p50": 1, | |
| "p90": 3, | |
| "p99": 5 | |
| } | |
| } | |
| } | |
| }, | |
| { | |
| "id": "openrouter/openai/gpt-terra-latest", | |
| "name": "OpenRouter OpenAI: GPT Terra Latest", | |
| "compat": { | |
| "openRouterRouting": { | |
| "allow_fallbacks": true, | |
| "require_parameters": false, | |
| "data_collection": "deny", | |
| "zdr": true, | |
| "enforce_distillable_text": false, | |
| "order": ["openai", "amazon-bedrock", "google-vertex"], | |
| "only": ["openai", "amazon-bedrock"], | |
| "ignore": ["gmicloud", "friendli"], | |
| "quantizations": ["fp16", "bf16"], | |
| "sort": { | |
| "by": "price", | |
| "partition": "model" | |
| }, | |
| "max_price": { | |
| "prompt": 10, | |
| "completion": 20 | |
| }, | |
| "preferred_min_throughput": { | |
| "p50": 100, | |
| "p90": 50 | |
| }, | |
| "preferred_max_latency": { | |
| "p50": 1, | |
| "p90": 3, | |
| "p99": 5 | |
| } | |
| } | |
| } | |
| }, | |
| { | |
| "id": "openrouter/openai/gpt-luna-latest", | |
| "name": "OpenRouter OpenAI: GPT Luna Latest", | |
| "compat": { | |
| "openRouterRouting": { | |
| "allow_fallbacks": true, | |
| "require_parameters": false, | |
| "data_collection": "deny", | |
| "zdr": true, | |
| "enforce_distillable_text": false, | |
| "order": ["openai", "amazon-bedrock", "google-vertex"], | |
| "only": ["openai", "amazon-bedrock"], | |
| "ignore": ["gmicloud", "friendli"], | |
| "quantizations": ["fp16", "bf16"], | |
| "sort": { | |
| "by": "price", | |
| "partition": "model" | |
| }, | |
| "max_price": { | |
| "prompt": 10, | |
| "completion": 20 | |
| }, | |
| "preferred_min_throughput": { | |
| "p50": 100, | |
| "p90": 50 | |
| }, | |
| "preferred_max_latency": { | |
| "p50": 1, | |
| "p90": 3, | |
| "p99": 5 | |
| } | |
| } | |
| } | |
| }, | |
| { | |
| "id": "openrouter/openai/gpt-chat-latest", | |
| "name": "OpenRouter OpenAI: GPT Chat Latest", | |
| "compat": { | |
| "openRouterRouting": { | |
| "allow_fallbacks": true, | |
| "require_parameters": false, | |
| "data_collection": "deny", | |
| "zdr": true, | |
| "enforce_distillable_text": false, | |
| "order": ["openai", "amazon-bedrock", "google-vertex"], | |
| "only": ["openai", "amazon-bedrock"], | |
| "ignore": ["gmicloud", "friendli"], | |
| "quantizations": ["fp16", "bf16"], | |
| "sort": { | |
| "by": "price", | |
| "partition": "model" | |
| }, | |
| "max_price": { | |
| "prompt": 10, | |
| "completion": 20 | |
| }, | |
| "preferred_min_throughput": { | |
| "p50": 100, | |
| "p90": 50 | |
| }, | |
| "preferred_max_latency": { | |
| "p50": 1, | |
| "p90": 3, | |
| "p99": 5 | |
| } | |
| } | |
| } | |
| }, | |
| { | |
| "id": "openrouter/anthropic/claude-fable-latest", | |
| "name": "OpenRouter Claude: Fable Latest", | |
| "compat": { | |
| "openRouterRouting": { | |
| "allow_fallbacks": true, | |
| "require_parameters": false, | |
| "data_collection": "deny", | |
| "zdr": true, | |
| "enforce_distillable_text": false, | |
| "order": ["anthropic", "amazon-bedrock", "google-vertex"], | |
| "only": ["anthropic", "amazon-bedrock"], | |
| "ignore": ["gmicloud", "friendli"], | |
| "quantizations": ["fp16", "bf16"], | |
| "sort": { | |
| "by": "price", | |
| "partition": "model" | |
| }, | |
| "max_price": { | |
| "prompt": 10, | |
| "completion": 20 | |
| }, | |
| "preferred_min_throughput": { | |
| "p50": 100, | |
| "p90": 50 | |
| }, | |
| "preferred_max_latency": { | |
| "p50": 1, | |
| "p90": 3, | |
| "p99": 5 | |
| } | |
| } | |
| } | |
| }, | |
| { | |
| "id": "openrouter/anthropic/claude-opus-latest", | |
| "name": "OpenRouter Claude: Opus Latest", | |
| "compat": { | |
| "openRouterRouting": { | |
| "allow_fallbacks": true, | |
| "require_parameters": false, | |
| "data_collection": "deny", | |
| "zdr": true, | |
| "enforce_distillable_text": false, | |
| "order": ["anthropic", "amazon-bedrock", "google-vertex"], | |
| "only": ["anthropic", "amazon-bedrock"], | |
| "ignore": ["gmicloud", "friendli"], | |
| "quantizations": ["fp16", "bf16"], | |
| "sort": { | |
| "by": "price", | |
| "partition": "model" | |
| }, | |
| "max_price": { | |
| "prompt": 10, | |
| "completion": 20 | |
| }, | |
| "preferred_min_throughput": { | |
| "p50": 100, | |
| "p90": 50 | |
| }, | |
| "preferred_max_latency": { | |
| "p50": 1, | |
| "p90": 3, | |
| "p99": 5 | |
| } | |
| } | |
| } | |
| }, | |
| { | |
| "id": "openrouter/anthropic/claude-sonnet-latest", | |
| "name": "OpenRouter Claude: Sonnet Latest", | |
| "compat": { | |
| "openRouterRouting": { | |
| "allow_fallbacks": true, | |
| "require_parameters": false, | |
| "data_collection": "deny", | |
| "zdr": true, | |
| "enforce_distillable_text": false, | |
| "order": ["anthropic", "amazon-bedrock", "google-vertex"], | |
| "only": ["anthropic", "amazon-bedrock"], | |
| "ignore": ["gmicloud", "friendli"], | |
| "quantizations": ["fp16", "bf16"], | |
| "sort": { | |
| "by": "price", | |
| "partition": "model" | |
| }, | |
| "max_price": { | |
| "prompt": 10, | |
| "completion": 20 | |
| }, | |
| "preferred_min_throughput": { | |
| "p50": 100, | |
| "p90": 50 | |
| }, | |
| "preferred_max_latency": { | |
| "p50": 1, | |
| "p90": 3, | |
| "p99": 5 | |
| } | |
| } | |
| } | |
| }, | |
| { | |
| "id": "openrouter/deepseek/deepseek-v4.1-flash", | |
| "name": "OpenRouter Deepseek: V4.1 Flash", | |
| "compat": { | |
| "openRouterRouting": { | |
| "allow_fallbacks": true, | |
| "require_parameters": false, | |
| "data_collection": "deny", | |
| "zdr": true, | |
| "enforce_distillable_text": false, | |
| "order": ["deepseek", "amazon-bedrock", "google-vertex"], | |
| "only": ["deepseek", "amazon-bedrock"], | |
| "ignore": ["gmicloud", "friendli"], | |
| "quantizations": ["fp16", "bf16"], | |
| "sort": { | |
| "by": "price", | |
| "partition": "model" | |
| }, | |
| "max_price": { | |
| "prompt": 10, | |
| "completion": 20 | |
| }, | |
| "preferred_min_throughput": { | |
| "p50": 100, | |
| "p90": 50 | |
| }, | |
| "preferred_max_latency": { | |
| "p50": 1, | |
| "p90": 3, | |
| "p99": 5 | |
| } | |
| } | |
| } | |
| }, | |
| { | |
| "id": "openrouter/meta/muse-spark-1.3-contributor", | |
| "name": "OpenRouter Meta: Muse-Spark-1.3-Contributor", | |
| "compat": { | |
| "openRouterRouting": { | |
| "allow_fallbacks": true, | |
| "require_parameters": false, | |
| "data_collection": "deny", | |
| "zdr": true, | |
| "enforce_distillable_text": false, | |
| "order": ["meta", "amazon-bedrock", "google-vertex"], | |
| "only": ["meta", "amazon-bedrock"], | |
| "ignore": ["gmicloud", "friendli"], | |
| "quantizations": ["fp16", "bf16"], | |
| "sort": { | |
| "by": "price", | |
| "partition": "model" | |
| }, | |
| "max_price": { | |
| "prompt": 10, | |
| "completion": 20 | |
| }, | |
| "preferred_min_throughput": { | |
| "p50": 100, | |
| "p90": 50 | |
| }, | |
| "preferred_max_latency": { | |
| "p50": 1, | |
| "p90": 3, | |
| "p99": 5 | |
| } | |
| } | |
| } | |
| }, | |
| { | |
| "id": "openrouter/typesafe/jev-latest", | |
| "name": "OpenRouter TypeSafe: Jev Lates", | |
| "compat": { | |
| "openRouterRouting": { | |
| "allow_fallbacks": true, | |
| "require_parameters": false, | |
| "data_collection": "deny", | |
| "zdr": true, | |
| "enforce_distillable_text": false, | |
| "order": ["typesafe", "amazon-bedrock", "google-vertex"], | |
| "only": ["typesafe", "amazon-bedrock"], | |
| "ignore": ["gmicloud", "friendli"], | |
| "quantizations": ["fp16", "bf16"], | |
| "sort": { | |
| "by": "price", | |
| "partition": "model" | |
| }, | |
| "max_price": { | |
| "prompt": 10, | |
| "completion": 20 | |
| }, | |
| "preferred_min_throughput": { | |
| "p50": 100, | |
| "p90": 50 | |
| }, | |
| "preferred_max_latency": { | |
| "p50": 1, | |
| "p90": 3, | |
| "p99": 5 | |
| } | |
| } | |
| } | |
| } | |
| ] | |
| }, | |
| "opencode": { | |
| "baseUrl": "https://opencode.ai/zen/v1/responses", | |
| "api": "openai-completions", | |
| "apiKey": "$OPENCODE_API_KEY", | |
| "models": [ | |
| { | |
| "id": "opencode/muse-spark-1.3-contributor-free", | |
| "name": "Opencode: Muse Spark 1.3 Contributor Free", | |
| "reasoning": false, | |
| "input": ["text"], | |
| "contextWindow": 128000, | |
| "maxTokens": 32000, | |
| "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 } | |
| } | |
| ] | |
| }, | |
| "ollama": { | |
| "baseUrl": "http://localhost:11434/v1", | |
| "api": "openai-completions", | |
| "apiKey": "ollama", | |
| "models": [ | |
| { | |
| "id": "ollama/llama3.1:8b", | |
| "name": "Ollama Llama 3.1 8B (Local)", | |
| "reasoning": false, | |
| "input": ["text"], | |
| "contextWindow": 128000, | |
| "maxTokens": 32000, | |
| "cost": { "input": 0, "output": 0, "cacheRead": 0, "cacheWrite": 0 } | |
| } | |
| ] | |
| } | |
| } | |
| } |
Author
Author
Author
Author
- OpenCode's free tier can only be used from within OpenCode
- You need to set env var before run Pi
set -gx OPENROUTER_API_KEY sk-xxx
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
https://openrouter.ai/