forked from agents/opencode
Compare commits
20 Commits
codex
...
e9fb5713b1
| Author | SHA1 | Date | |
|---|---|---|---|
| e9fb5713b1 | |||
| 200c3fe5f8 | |||
| e7aeec46f2 | |||
| ff6d5f89be | |||
| f886e6b440 | |||
| 2d6c198df8 | |||
| 571f658c0c | |||
| a9a279f068 | |||
| 6d78aef5a4 | |||
| 888a0eb2b4 | |||
| b9653d78a6 | |||
| 6d8635c1ac | |||
| abea1e52c0 | |||
| 6f832d3d8c | |||
| 51e11f7582 | |||
| 4eadc3b3e9 | |||
| aa4a96626c | |||
| a0c1d889d8 | |||
| 0b77e65186 | |||
| 1be7ac925d |
12
.env.example
12
.env.example
@@ -1,5 +1,11 @@
|
|||||||
CPA_API_KEY=
|
# Provider
|
||||||
|
LITELLM_BASE_URL=https://ai.furtherverse.com
|
||||||
|
LITELLM_API_KEY=
|
||||||
|
BAILIAN_API_KEY=
|
||||||
|
|
||||||
|
# MCP
|
||||||
EXA_API_KEY=
|
EXA_API_KEY=
|
||||||
CONTEXT7_API_KEY=
|
CONTEXT7_API_KEY=
|
||||||
# Windows only
|
|
||||||
OPENCODE_GIT_BASH_PATH=%USERPROFILE%\scoop\shims\bash.exe
|
# Windows
|
||||||
|
OPENCODE_GIT_BASH_PATH=%USERPROFILE%\scoop\apps\git\current\bin\bash.exe
|
||||||
|
|||||||
@@ -11,7 +11,8 @@
|
|||||||
"formatter": {
|
"formatter": {
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
"indentStyle": "space",
|
"indentStyle": "space",
|
||||||
"indentWidth": 2
|
"indentWidth": 2,
|
||||||
|
"lineWidth": 120
|
||||||
},
|
},
|
||||||
"linter": {
|
"linter": {
|
||||||
"enabled": true,
|
"enabled": true,
|
||||||
|
|||||||
@@ -1,79 +1,26 @@
|
|||||||
// bunx oh-my-opencode doctor --verbose
|
|
||||||
{
|
{
|
||||||
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json",
|
"$schema": "https://raw.githubusercontent.com/code-yeongyu/oh-my-opencode/master/assets/oh-my-opencode.schema.json",
|
||||||
"agents": {
|
"agents": {
|
||||||
// ref: https://github.com/code-yeongyu/oh-my-opencode/blob/dev/AGENTS.md#agent-models
|
"sisyphus": { "model": "anthropic/claude-opus-4-6", "variant": "max" },
|
||||||
"sisyphus": {
|
"hephaestus": { "model": "openai/gpt-5.3-codex", "variant": "medium" },
|
||||||
"model": "cpa-anthropic/claude-opus-4-6",
|
"oracle": { "model": "openai/gpt-5.2", "variant": "high" },
|
||||||
"variant": "max"
|
"librarian": { "model": "bailian-coding-plan/MiniMax-M2.5" },
|
||||||
},
|
"explore": { "model": "bailian-coding-plan/MiniMax-M2.5" },
|
||||||
"hephaestus": {
|
"multimodal-looker": { "model": "bailian-coding-plan/kimi-k2.5" },
|
||||||
"model": "cpa-openai/gpt-5.3-codex",
|
"prometheus": { "model": "anthropic/claude-opus-4-6", "variant": "max" },
|
||||||
"variant": "medium"
|
"metis": { "model": "anthropic/claude-opus-4-6", "variant": "max" },
|
||||||
},
|
"momus": { "model": "openai/gpt-5.2", "variant": "medium" },
|
||||||
"atlas": {
|
"atlas": { "model": "bailian-coding-plan/kimi-k2.5" }
|
||||||
"model": "cpa-anthropic/claude-sonnet-4-5"
|
|
||||||
},
|
|
||||||
"oracle": {
|
|
||||||
"model": "cpa-openai/gpt-5.2",
|
|
||||||
"variant": "high"
|
|
||||||
},
|
|
||||||
"librarian": {
|
|
||||||
"model": "cpa-google/gemini-3-flash"
|
|
||||||
},
|
|
||||||
"explore": {
|
|
||||||
"model": "cpa-google/gemini-3-flash"
|
|
||||||
},
|
|
||||||
"multimodal-looker": {
|
|
||||||
"model": "cpa-google/gemini-3-flash"
|
|
||||||
},
|
|
||||||
"prometheus": {
|
|
||||||
"model": "cpa-anthropic/claude-opus-4-6",
|
|
||||||
"variant": "max"
|
|
||||||
},
|
|
||||||
"metis": {
|
|
||||||
"model": "cpa-anthropic/claude-opus-4-6",
|
|
||||||
"variant": "max"
|
|
||||||
},
|
|
||||||
"momus": {
|
|
||||||
"model": "cpa-openai/gpt-5.2",
|
|
||||||
"variant": "medium"
|
|
||||||
},
|
|
||||||
"sisyphus-junior": {
|
|
||||||
"model": "cpa-anthropic/claude-sonnet-4-5"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"categories": {
|
"categories": {
|
||||||
// ref: https://github.com/code-yeongyu/oh-my-opencode/blob/dev/docs/category-skill-guide.md#available-built-in-categories
|
"visual-engineering": { "model": "google/gemini-3.1-pro-preview", "variant": "high" },
|
||||||
"visual-engineering": {
|
"ultrabrain": { "model": "openai/gpt-5.3-codex", "variant": "xhigh" },
|
||||||
"model": "cpa-google/gemini-3-pro",
|
"deep": { "model": "openai/gpt-5.3-codex", "variant": "medium" },
|
||||||
"variant": "high"
|
"artistry": { "model": "google/gemini-3.1-pro-preview", "variant": "high" },
|
||||||
},
|
"quick": { "model": "anthropic/claude-haiku-4-5" },
|
||||||
"ultrabrain": {
|
"unspecified-low": { "model": "anthropic/claude-sonnet-4-6" },
|
||||||
"model": "cpa-openai/gpt-5.3-codex",
|
"unspecified-high": { "model": "anthropic/claude-opus-4-6", "variant": "max" },
|
||||||
"variant": "xhigh"
|
"writing": { "model": "bailian-coding-plan/kimi-k2.5" }
|
||||||
},
|
|
||||||
"deep": {
|
|
||||||
"model": "cpa-openai/gpt-5.3-codex",
|
|
||||||
"variant": "medium"
|
|
||||||
},
|
|
||||||
"artistry": {
|
|
||||||
"model": "cpa-google/gemini-3-pro",
|
|
||||||
"variant": "high"
|
|
||||||
},
|
|
||||||
"quick": {
|
|
||||||
"model": "cpa-google/gemini-3-flash"
|
|
||||||
},
|
|
||||||
"unspecified-low": {
|
|
||||||
"model": "cpa-anthropic/claude-sonnet-4-5"
|
|
||||||
},
|
|
||||||
"unspecified-high": {
|
|
||||||
"model": "cpa-anthropic/claude-opus-4-6",
|
|
||||||
"variant": "max"
|
|
||||||
},
|
|
||||||
"writing": {
|
|
||||||
"model": "cpa-google/gemini-3-flash"
|
|
||||||
}
|
|
||||||
},
|
},
|
||||||
"git_master": {
|
"git_master": {
|
||||||
"commit_footer": false,
|
"commit_footer": false,
|
||||||
|
|||||||
188
opencode.jsonc
188
opencode.jsonc
@@ -1,105 +1,147 @@
|
|||||||
{
|
{
|
||||||
"$schema": "https://opencode.ai/config.json",
|
"$schema": "https://opencode.ai/config.json",
|
||||||
"autoupdate": false,
|
"autoupdate": false,
|
||||||
"theme": "system",
|
"model": "anthropic/claude-opus-4-6",
|
||||||
"model": "cpa-anthropic/claude-opus-4-6",
|
"small_model": "anthropic/claude-haiku-4-5",
|
||||||
"small_model": "cpa-google/gemini-3-flash",
|
|
||||||
"plugin": ["oh-my-opencode@latest"],
|
"plugin": ["oh-my-opencode@latest"],
|
||||||
|
"experimental": {
|
||||||
|
"disable_paste_summary": true
|
||||||
|
},
|
||||||
|
"disabled_providers": ["opencode"],
|
||||||
"provider": {
|
"provider": {
|
||||||
// ref: https://models.dev/
|
"anthropic": {
|
||||||
"cpa-anthropic": {
|
|
||||||
"name": "CPA Anthropic",
|
|
||||||
"npm": "@ai-sdk/anthropic",
|
"npm": "@ai-sdk/anthropic",
|
||||||
"options": {
|
"options": {
|
||||||
"baseURL": "https://cpa.furtherverse.com/v1",
|
"baseURL": "{env:LITELLM_BASE_URL}/v1",
|
||||||
"apiKey": "{env:CPA_API_KEY}",
|
"apiKey": "{env:LITELLM_API_KEY}"
|
||||||
"setCacheKey": true
|
|
||||||
},
|
},
|
||||||
"models": {
|
"models": {
|
||||||
"claude-opus-4-6": {
|
"claude-opus-4-6": {
|
||||||
"name": "Claude Opus 4.6",
|
"name": "Claude Opus 4.6",
|
||||||
"tool_call": true,
|
|
||||||
"reasoning": true,
|
"reasoning": true,
|
||||||
"modalities": {
|
"modalities": { "input": ["text", "image", "pdf"], "output": ["text"] },
|
||||||
"input": ["text", "image", "pdf"],
|
"limit": { "context": 200000, "output": 128000 }
|
||||||
"output": ["text"]
|
|
||||||
},
|
},
|
||||||
"limit": { "context": 1000000, "output": 128000 }
|
"claude-sonnet-4-6": {
|
||||||
},
|
"name": "Claude Sonnet 4.6",
|
||||||
"claude-sonnet-4-5": {
|
"reasoning": true,
|
||||||
"name": "Claude Sonnet 4.5",
|
"modalities": { "input": ["text", "image", "pdf"], "output": ["text"] },
|
||||||
"tool_call": true,
|
"limit": { "context": 200000, "output": 64000 }
|
||||||
"reasoning": false,
|
|
||||||
"modalities": {
|
|
||||||
"input": ["text", "image", "pdf"],
|
|
||||||
"output": ["text"]
|
|
||||||
},
|
},
|
||||||
|
"claude-haiku-4-5": {
|
||||||
|
"name": "Claude Haiku 4.5",
|
||||||
|
"reasoning": true,
|
||||||
|
"modalities": { "input": ["text", "image", "pdf"], "output": ["text"] },
|
||||||
"limit": { "context": 200000, "output": 64000 }
|
"limit": { "context": 200000, "output": 64000 }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"cpa-google": {
|
"openai": {
|
||||||
"name": "CPA Google",
|
|
||||||
"npm": "@ai-sdk/google",
|
|
||||||
"options": {
|
|
||||||
"baseURL": "https://cpa.furtherverse.com/v1beta",
|
|
||||||
"apiKey": "{env:CPA_API_KEY}",
|
|
||||||
"setCacheKey": true
|
|
||||||
},
|
|
||||||
"models": {
|
|
||||||
"gemini-3-pro": {
|
|
||||||
"name": "Gemini 3 Pro",
|
|
||||||
"tool_call": true,
|
|
||||||
"reasoning": true,
|
|
||||||
"modalities": {
|
|
||||||
"input": ["text", "image", "video", "audio", "pdf"],
|
|
||||||
"output": ["text"]
|
|
||||||
},
|
|
||||||
"limit": { "context": 1048576, "output": 65536 }
|
|
||||||
},
|
|
||||||
"gemini-3-flash": {
|
|
||||||
"name": "Gemini 3 Flash",
|
|
||||||
"tool_call": true,
|
|
||||||
"reasoning": true,
|
|
||||||
"modalities": {
|
|
||||||
"input": ["text", "image", "video", "audio", "pdf"],
|
|
||||||
"output": ["text"]
|
|
||||||
},
|
|
||||||
"limit": { "context": 1048576, "output": 65536 }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"cpa-openai": {
|
|
||||||
"name": "CPA OpenAI",
|
|
||||||
"npm": "@ai-sdk/openai",
|
"npm": "@ai-sdk/openai",
|
||||||
"options": {
|
"options": {
|
||||||
"baseURL": "https://cpa.furtherverse.com/v1",
|
"baseURL": "{env:LITELLM_BASE_URL}/v1",
|
||||||
"apiKey": "{env:CPA_API_KEY}",
|
"apiKey": "{env:LITELLM_API_KEY}"
|
||||||
"setCacheKey": true
|
|
||||||
},
|
},
|
||||||
"models": {
|
"models": {
|
||||||
"gpt-5.3-codex": {
|
|
||||||
"name": "GPT-5.3-Codex",
|
|
||||||
"tool_call": true,
|
|
||||||
"reasoning": true,
|
|
||||||
"modalities": {
|
|
||||||
"input": ["text", "image", "pdf"],
|
|
||||||
"output": ["text"]
|
|
||||||
},
|
|
||||||
"limit": { "context": 400000, "input": 272000, "output": 128000 }
|
|
||||||
},
|
|
||||||
"gpt-5.2": {
|
"gpt-5.2": {
|
||||||
"name": "GPT-5.2",
|
"name": "GPT-5.2",
|
||||||
"tool_call": true,
|
|
||||||
"reasoning": true,
|
"reasoning": true,
|
||||||
"modalities": {
|
"modalities": { "input": ["text", "image"], "output": ["text"] },
|
||||||
"input": ["text", "image"],
|
"limit": { "context": 400000, "input": 272000, "output": 128000 }
|
||||||
"output": ["text"]
|
|
||||||
},
|
},
|
||||||
|
"gpt-5.3-codex": {
|
||||||
|
"name": "GPT-5.3-Codex",
|
||||||
|
"reasoning": true,
|
||||||
|
"modalities": { "input": ["text", "image", "pdf"], "output": ["text"] },
|
||||||
"limit": { "context": 400000, "input": 272000, "output": 128000 }
|
"limit": { "context": 400000, "input": 272000, "output": 128000 }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
"google": {
|
||||||
|
"npm": "@ai-sdk/google",
|
||||||
|
"options": {
|
||||||
|
"baseURL": "{env:LITELLM_BASE_URL}/v1beta",
|
||||||
|
"apiKey": "{env:LITELLM_API_KEY}"
|
||||||
|
},
|
||||||
|
"models": {
|
||||||
|
"gemini-3.1-pro-preview": {
|
||||||
|
"name": "Gemini 3.1 Pro",
|
||||||
|
"reasoning": true,
|
||||||
|
"modalities": { "input": ["text", "image", "video", "audio", "pdf"], "output": ["text"] },
|
||||||
|
"limit": { "context": 1048576, "output": 65536 }
|
||||||
|
},
|
||||||
|
"gemini-3-flash-preview": {
|
||||||
|
"name": "Gemini 3 Flash",
|
||||||
|
"reasoning": true,
|
||||||
|
"modalities": { "input": ["text", "image", "video", "audio", "pdf"], "output": ["text"] },
|
||||||
|
"limit": { "context": 1048576, "output": 65536 }
|
||||||
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"disabled_providers": ["opencode"]
|
"bailian-coding-plan": {
|
||||||
|
"npm": "@ai-sdk/anthropic",
|
||||||
|
"name": "Model Studio Coding Plan",
|
||||||
|
"options": {
|
||||||
|
"baseURL": "https://coding.dashscope.aliyuncs.com/apps/anthropic/v1",
|
||||||
|
"apiKey": "{env:BAILIAN_API_KEY}"
|
||||||
|
},
|
||||||
|
"models": {
|
||||||
|
// GLM
|
||||||
|
"glm-5": {
|
||||||
|
"name": "GLM-5",
|
||||||
|
"reasoning": true,
|
||||||
|
"modalities": { "input": ["text"], "output": ["text"] },
|
||||||
|
"limit": { "context": 204800, "output": 131072 }
|
||||||
|
},
|
||||||
|
"glm-4.7": {
|
||||||
|
"name": "GLM-4.7",
|
||||||
|
"reasoning": true,
|
||||||
|
"modalities": { "input": ["text"], "output": ["text"] },
|
||||||
|
"limit": { "context": 204800, "output": 131072 }
|
||||||
|
},
|
||||||
|
|
||||||
|
// Kimi
|
||||||
|
"kimi-k2.5": {
|
||||||
|
"name": "Kimi K2.5",
|
||||||
|
"reasoning": true,
|
||||||
|
"modalities": { "input": ["text", "image", "video"], "output": ["text"] },
|
||||||
|
"limit": { "context": 262144, "output": 262144 }
|
||||||
|
},
|
||||||
|
|
||||||
|
// MiniMax
|
||||||
|
"MiniMax-M2.5": {
|
||||||
|
"name": "MiniMax-M2.5",
|
||||||
|
"reasoning": true,
|
||||||
|
"modalities": { "input": ["text"], "output": ["text"] },
|
||||||
|
"limit": { "context": 204800, "output": 131072 }
|
||||||
|
},
|
||||||
|
|
||||||
|
// Qwen
|
||||||
|
"qwen3.5-plus": {
|
||||||
|
"name": "Qwen3.5 Plus",
|
||||||
|
"reasoning": true,
|
||||||
|
"modalities": { "input": ["text", "image", "video"], "output": ["text"] },
|
||||||
|
"limit": { "context": 1000000, "output": 65536 }
|
||||||
|
},
|
||||||
|
"qwen3-max-2026-01-23": {
|
||||||
|
"name": "Qwen3 Max 2026-01-23",
|
||||||
|
"reasoning": false,
|
||||||
|
"modalities": { "input": ["text"], "output": ["text"] },
|
||||||
|
"limit": { "context": 262144, "output": 65536 }
|
||||||
|
},
|
||||||
|
"qwen3-coder-next": {
|
||||||
|
"name": "Qwen3 Coder Next",
|
||||||
|
"reasoning": false,
|
||||||
|
"modalities": { "input": ["text"], "output": ["text"] },
|
||||||
|
"limit": { "context": 262144, "output": 65536 }
|
||||||
|
},
|
||||||
|
"qwen3-coder-plus": {
|
||||||
|
"name": "Qwen3 Coder Plus",
|
||||||
|
"reasoning": false,
|
||||||
|
"modalities": { "input": ["text"], "output": ["text"] },
|
||||||
|
"limit": { "context": 1000000, "output": 65536 }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user