[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-1295":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":17,"stars7d":18,"stars30d":19,"stars90d":16,"forks30d":16,"starsTrendScore":20,"compositeScore":21,"rankGlobal":10,"rankLanguage":10,"license":22,"archived":23,"fork":23,"defaultBranch":24,"hasWiki":25,"hasPages":23,"topics":26,"createdAt":10,"pushedAt":10,"updatedAt":34,"readmeContent":35,"aiSummary":36,"trendingCount":16,"starSnapshotCount":16,"syncStatus":37,"lastSyncTime":38,"discoverSource":39},1295,"oc-go-cc","samueltuyizere\u002Foc-go-cc","samueltuyizere","Use your OpenCode Go subscription with Claude Code.","",null,"Go",650,88,1,11,0,28,66,290,84,9.85,"GNU Affero General Public License v3.0",false,"main",true,[27,28,29,30,31,32,33],"claude","claude-code","claude-code-cli","opencode","opencode-ai","opencode-go","opencode-zen","2026-06-12 02:00:26","# oc-go-cc\n\nA Go CLI proxy that lets you use your [OpenCode Go](https:\u002F\u002Fopencode.ai\u002Fdocs\u002Fgo\u002F) subscription with [Claude Code](https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fclaude-code).\n\n`oc-go-cc` sits between Claude Code and OpenCode Go, intercepting Anthropic API requests, transforming them to OpenAI format, and forwarding them to OpenCode Go's endpoint. Claude Code thinks it's talking to Anthropic — but your requests go to affordable open models instead.\n\n## Why?\n\nOpenCode Go gives you access to powerful open coding models for **$5\u002Fmonth** (then $10\u002Fmonth). This proxy makes those models work seamlessly with Claude Code's interface — no patches, no forks, just set two environment variables and go.\n\n## Features\n\n- **Transparent Proxy** — Claude Code sends Anthropic-format requests, proxy transforms to OpenAI format and back\n- **Model Routing** — Automatically routes to different models based on context (default, thinking, long context, background)\n- **Fallback Chains** — If a model fails, automatically tries the next one in your configured chain\n- **Circuit Breaker** — Tracks model health and skips failing models to avoid latency spikes\n- **Real-time Streaming** — Full SSE streaming with live OpenAI → Anthropic format transformation\n- **Tool Calling** — Proper Anthropic tool_use\u002Ftool_result ↔ OpenAI function calling translation\n- **Token Counting** — Uses tiktoken (cl100k_base) for accurate token counting and context threshold detection\n- **JSON Configuration** — Flexible config file with environment variable overrides and `${VAR}` interpolation\n- **Background Mode** — Run as daemon detached from terminal\n- **Auto-start on Login** — Launch on system startup via launchd (macOS)\n\n## Installation\n\n### Homebrew (macOS & Linux)\n\n```bash\nbrew tap samueltuyizere\u002Ftap\nbrew install oc-go-cc\n```\n\n### Build from Source\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fsamueltuyizere\u002Foc-go-cc.git\ncd oc-go-cc\nmake build\n\n# Binary is at bin\u002Foc-go-cc\n# Optionally install to $GOPATH\u002Fbin\nmake install\n```\n\n### Download a Release Binary\n\nDownload the latest release for your platform from the [Releases page](https:\u002F\u002Fgithub.com\u002Fsamueltuyizere\u002Foc-go-cc\u002Freleases):\n\n| Platform              | File                         |\n| --------------------- | ---------------------------- |\n| macOS (Apple Silicon) | `oc-go-cc_darwin-arm64`      |\n| macOS (Intel)         | `oc-go-cc_darwin-amd64`      |\n| Linux (x86_64)        | `oc-go-cc_linux-amd64`       |\n| Linux (ARM64)         | `oc-go-cc_linux-arm64`       |\n| Windows (x86_64)      | `oc-go-cc_windows-amd64.exe` |\n| Windows (ARM64)       | `oc-go-cc_windows-arm64.exe` |\n\n```bash\n# Example: macOS Apple Silicon\ncurl -L -o oc-go-cc https:\u002F\u002Fgithub.com\u002Fsamueltuyizere\u002Foc-go-cc\u002Freleases\u002Flatest\u002Fdownload\u002Foc-go-cc_darwin-arm64\nchmod +x oc-go-cc\nsudo mv oc-go-cc \u002Fusr\u002Flocal\u002Fbin\u002F\n```\n\n### Requirements\n\n- An [OpenCode Go](https:\u002F\u002Fopencode.ai\u002Fauth) subscription and API key\n- Go 1.21+ (only needed if building from source)\n\n## Quick Start\n\n### 1. Initialize Configuration\n\n```bash\noc-go-cc init\n```\n\nCreates a default config at `~\u002F.config\u002Foc-go-cc\u002Fconfig.json`. If the config already exists, it shows the path so you can edit it directly.\n\n### 2. Set Your API Key\n\n```bash\nexport OC_GO_CC_API_KEY=sk-opencode-your-key-here\n```\n\n### 3. Start the Proxy\n\n```bash\noc-go-cc serve\n```\n\nYou'll see output like:\n\n```\nStarting oc-go-cc v0.1.0\nListening on 127.0.0.1:3456\nForwarding to: https:\u002F\u002Fopencode.ai\u002Fzen\u002Fgo\u002Fv1\u002Fchat\u002Fcompletions\n\nConfigure Claude Code with:\n  export ANTHROPIC_BASE_URL=http:\u002F\u002F127.0.0.1:3456\n  export ANTHROPIC_AUTH_TOKEN=unused\n```\n\n#### Running in Background\n\nTo run the proxy in the background (detached from terminal):\n\n```bash\noc-go-cc serve --background\n# or\noc-go-cc serve -b\n```\n\nThis starts the server as a background daemon and returns immediately. Logs are written to `~\u002F.config\u002Foc-go-cc\u002Foc-go-cc.log`.\n\n#### Auto-start on Login\n\nTo start the proxy automatically when you log in:\n\n```bash\noc-go-cc autostart enable\n```\n\nThis creates a launchd plist on macOS. To disable:\n\n```bash\noc-go-cc autostart disable\n```\n\nCheck status:\n\n```bash\noc-go-cc autostart status\n```\n\n### 4. Configure Claude Code\n\nIn a separate terminal (or the same one before running `claude`):\n\n```bash\nexport ANTHROPIC_BASE_URL=http:\u002F\u002F127.0.0.1:3456\nexport ANTHROPIC_AUTH_TOKEN=unused\n```\n\n### 5. Run Claude Code\n\n```bash\nclaude\n```\n\nThat's it. Claude Code will now route all requests through oc-go-cc to OpenCode Go.\n\n## How It Works\n\n```\n┌─────────────┐     Anthropic API      ┌─────────────┐     OpenAI API       ┌─────────────┐\n│  Claude Code ├──────────────────────►│  oc-go-cc    ├────────────────────►│  OpenCode Go │\n│  (CLI)       │  POST \u002Fv1\u002Fmessages   │  (Proxy)     │  \u002Fchat\u002Fcompletions  │  (Upstream)  │\n│              │◄──────────────────────┤              │◄────────────────────┤              │\n└─────────────┘   Anthropic SSE        └─────────────┘   OpenAI SSE          └─────────────┘\n```\n\n1. Claude Code sends a request in [Anthropic Messages API](https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fapi\u002Fmessages) format\n2. oc-go-cc parses the request, counts tokens, and selects a model via routing rules\n3. The request is transformed to [OpenAI Chat Completions](https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fapi-reference\u002Fchat) format\n4. The transformed request is sent to OpenCode Go's endpoint\n5. The response (streaming or non-streaming) is transformed back to Anthropic format\n6. Claude Code receives the response as if it came from Anthropic directly\n\n### What Gets Transformed\n\n| Anthropic                                                    | OpenAI                                  |\n| ------------------------------------------------------------ | --------------------------------------- |\n| `system` (string or array)                                   | `messages[0]` with `role: \"system\"`     |\n| `content: [{\"type\":\"text\",\"text\":\"...\"}]`                    | `content: \"...\"`                        |\n| `tool_use` content blocks                                    | `tool_calls` array                      |\n| `tool_result` content blocks                                 | `role: \"tool\"` messages                 |\n| `thinking` content blocks                                    | `reasoning_content`                     |\n| `stop_reason: \"end_turn\"`                                    | `finish_reason: \"stop\"`                 |\n| `stop_reason: \"tool_use\"`                                    | `finish_reason: \"tool_calls\"`           |\n| SSE `message_start` \u002F `content_block_delta` \u002F `message_stop` | SSE `role` \u002F `delta.content` \u002F `[DONE]` |\n\n### DeepSeek V4 Thinking Mode\n\nDeepSeek V4 Pro and Flash use the OpenAI-compatible `\u002Fchat\u002Fcompletions` endpoint through OpenCode Go. They support thinking mode and configurable reasoning effort.\n\nFor Claude Code and other agentic coding workflows, configure DeepSeek V4 models with:\n\n```json\n{\n  \"provider\": \"opencode-go\",\n  \"model_id\": \"deepseek-v4-pro\",\n  \"max_tokens\": 8192,\n  \"reasoning_effort\": \"max\",\n  \"thinking\": {\n    \"type\": \"enabled\"\n  }\n}\n```\n\n`oc-go-cc` forwards these fields to OpenCode Go as OpenAI Chat Completions parameters:\n\n- `reasoning_effort`: controls DeepSeek V4 thinking effort (`high` or `max`)\n- `thinking`: enables or disables DeepSeek V4 thinking mode\n\nDeepSeek V4 thinking responses are returned as OpenAI `reasoning_content` and transformed back into Anthropic `thinking` blocks for Claude Code.\n\n## Configuration\n\n### Config File\n\nLocation: `~\u002F.config\u002Foc-go-cc\u002Fconfig.json`\n\nOverride with `OC_GO_CC_CONFIG` environment variable.\n\n### Full Config Reference\n\n```json\n{\n  \"api_key\": \"${OC_GO_CC_API_KEY}\",\n  \"host\": \"127.0.0.1\",\n  \"port\": 3456,\n\n  \"models\": {\n    \"default\": {\n      \"provider\": \"opencode-go\",\n      \"model_id\": \"kimi-k2.6\",\n      \"temperature\": 0.7,\n      \"max_tokens\": 4096\n    },\n    \"background\": {\n      \"provider\": \"opencode-go\",\n      \"model_id\": \"qwen3.5-plus\",\n      \"temperature\": 0.5,\n      \"max_tokens\": 2048\n    },\n    \"think\": {\n      \"provider\": \"opencode-go\",\n      \"model_id\": \"glm-5.1\",\n      \"temperature\": 0.7,\n      \"max_tokens\": 8192\n    },\n    \"complex\": {\n      \"provider\": \"opencode-go\",\n      \"model_id\": \"glm-5.1\",\n      \"temperature\": 0.7,\n      \"max_tokens\": 4096\n    },\n    \"long_context\": {\n      \"provider\": \"opencode-go\",\n      \"model_id\": \"minimax-m2.7\",\n      \"temperature\": 0.7,\n      \"max_tokens\": 16384,\n      \"context_threshold\": 80000\n    },\n    \"fast\": {\n      \"provider\": \"opencode-go\",\n      \"model_id\": \"qwen3.6-plus\",\n      \"temperature\": 0.7,\n      \"max_tokens\": 4096\n    },\n    \"deepseek_v4_max\": {\n      \"provider\": \"opencode-go\",\n      \"model_id\": \"deepseek-v4-pro\",\n      \"temperature\": 0.1,\n      \"max_tokens\": 8192,\n      \"reasoning_effort\": \"max\",\n      \"thinking\": {\n        \"type\": \"enabled\"\n      }\n    }\n  },\n\n  \"fallbacks\": {\n    \"default\": [\n      { \"provider\": \"opencode-go\", \"model_id\": \"glm-5\" },\n      { \"provider\": \"opencode-go\", \"model_id\": \"qwen3.6-plus\" }\n    ],\n    \"think\": [{ \"provider\": \"opencode-go\", \"model_id\": \"glm-5\" }],\n    \"complex\": [{ \"provider\": \"opencode-go\", \"model_id\": \"glm-5\" }],\n    \"long_context\": [{ \"provider\": \"opencode-go\", \"model_id\": \"minimax-m2.5\" }],\n    \"fast\": [{ \"provider\": \"opencode-go\", \"model_id\": \"qwen3.5-plus\" }]\n  },\n\n  \"opencode_go\": {\n    \"base_url\": \"https:\u002F\u002Fopencode.ai\u002Fzen\u002Fgo\u002Fv1\u002Fchat\u002Fcompletions\",\n    \"timeout_ms\": 300000\n  },\n\n  \"logging\": {\n    \"level\": \"info\",\n    \"requests\": true\n  }\n}\n```\n\n### Environment Variables\n\nEnvironment variables override config file values. Config values also support `${VAR}` interpolation.\n\n| Variable                | Description                                 | Default                                          |\n| ----------------------- | ------------------------------------------- | ------------------------------------------------ |\n| `OC_GO_CC_API_KEY`      | OpenCode Go API key (**required**)          | —                                                |\n| `OC_GO_CC_CONFIG`       | Custom config file path                     | `~\u002F.config\u002Foc-go-cc\u002Fconfig.json`                 |\n| `OC_GO_CC_HOST`         | Proxy listen host                           | `127.0.0.1`                                      |\n| `OC_GO_CC_PORT`         | Proxy listen port                           | `3456`                                           |\n| `OC_GO_CC_OPENCODE_URL` | OpenCode Go API endpoint                    | `https:\u002F\u002Fopencode.ai\u002Fzen\u002Fgo\u002Fv1\u002Fchat\u002Fcompletions` |\n| `OC_GO_CC_LOG_LEVEL`    | Log level: `debug`, `info`, `warn`, `error` | `info`                                           |\n\n### Model Routing\n\nThe proxy automatically detects the type of request and routes to the appropriate model based on context size and content analysis:\n\n| Scenario         | Trigger                                             | Model        | Why                                             |\n| ---------------- | --------------------------------------------------- | ------------ | ----------------------------------------------- |\n| **Long Context** | >80K tokens (configurable)                          | MiniMax M2.7 | 1M context window vs 128-256K for others        |\n| **Complex**      | \"architect\", \"refactor\", \"complex\" in system prompt | GLM-5.1      | Best reasoning & architectural understanding    |\n| **Think**        | \"think\", \"plan\", \"reason\" in system prompt          | GLM-5        | Good reasoning, cheaper than GLM-5.1            |\n| **Background**   | \"read file\", \"grep\", \"list directory\"               | Qwen3.5 Plus | Cheapest (~10K req\u002F5hr), perfect for simple ops |\n| **Default**      | Everything else                                     | Kimi K2.6    | Best balance of quality & cost (~1.8K req\u002F5hr)  |\n\n**📖 See [MODELS.md](MODELS.md) for detailed model capabilities, costs, and routing recommendations.**\n\nDeepSeek V4 users can set any scenario model to `deepseek-v4-pro` or `deepseek-v4-flash`. For deterministic max thinking, add `reasoning_effort: \"max\"` and `thinking: {\"type\":\"enabled\"}` to that scenario's model config and fallback entries.\n\n#### Routing in Detail:\n\n| Scenario         | Trigger                                                                      | Config Key            | Default Model  |\n| ---------------- | ---------------------------------------------------------------------------- | --------------------- | -------------- |\n| **Default**      | Standard chat                                                                | `models.default`      | `kimi-k2.6`    |\n| **Think**        | System prompt contains \"think\", \"plan\", \"reason\"; or thinking content blocks | `models.think`        | `glm-5.1`      |\n| **Long Context** | Token count exceeds `context_threshold`                                      | `models.long_context` | `minimax-m2.7` |\n| **Background**   | File read, directory list, grep patterns                                     | `models.background`   | `qwen3.5-plus` |\n\nRouting priority: **Long Context** → **Think** → **Background** → **Default**\n\n### Fallback Chains\n\nWhen a model request fails (network error, rate limit, server error), the proxy tries the next model in the fallback chain:\n\n```\nPrimary model → Fallback 1 → Fallback 2 → ... → Error (all failed)\n```\n\nEach model also has a **circuit breaker** that tracks consecutive failures. After 3 failures, the circuit opens and that model is skipped for 30 seconds, then tested again (half-open state).\n\n### Available Models\n\nSee [MODELS.md](MODELS.md) for **detailed model capabilities, costs, and routing recommendations**.\n\nQuick reference:\n\n| Model ID            | Quality | Context | Cost (req\u002F5hr) | Best For                                   |\n| ------------------- | ------- | ------- | -------------- | ------------------------------------------ |\n| `glm-5.1`           | ★★★★★   | 200K    | ~880           | Complex architecture, difficult tasks      |\n| `glm-5`             | ★★★★☆   | 200K    | ~1,150         | High-quality coding, refactoring           |\n| `kimi-k2.6`         | ★★★★★   | 256K    | ~1,850         | **Default** - best balance                 |\n| `kimi-k2.5`         | ★★★★☆   | 256K    | ~1,850         | Fallback - solid quality                   |\n| `mimo-v2-pro`       | ★★★★☆   | 128K    | ~1,290         | Code completion, generation                |\n| `mimo-v2-omni`      | ★★★☆☆   | 256K    | ~2,150         | Fast prototyping                           |\n| `qwen3.6-plus`      | ★★★☆☆   | 128K    | ~3,300         | Cost-effective general coding              |\n| `minimax-m2.7`      | ★★★☆☆   | **1M**  | ~3,400         | **Long context specialist**                |\n| `minimax-m2.5`      | ★★☆☆☆   | **1M**  | ~6,300         | Long context on a budget                   |\n| `deepseek-v4-pro`   | ★★★★★   | **1M**  | varies         | Agentic coding, max thinking, long context |\n| `deepseek-v4-flash` | ★★★★☆   | **1M**  | varies         | Fast agent tasks, background\u002Fsubagent work |\n| `qwen3.5-plus`      | ★★☆☆☆   | 128K    | ~10,200        | **Cheapest** - background tasks            |\n\n> **💡 Tip:** The cost column shows approximate requests per 5-hour block ($12). Qwen3.5 Plus gives you ~10x more requests than GLM-5.1!\n\n> **⚠️ Important:** MiniMax M2.5 and M2.7 use the **Anthropic-compatible** `\u002Fv1\u002Fmessages` endpoint natively. DeepSeek V4 Pro and Flash use the **OpenAI-compatible** `\u002Fchat\u002Fcompletions` endpoint and support `reasoning_effort` plus `thinking` for max thinking mode. See [MODELS.md](MODELS.md) for details.\n\n## CLI Commands\n\n```\noc-go-cc serve              Start the proxy server\noc-go-cc serve -b          Start in background (detached from terminal)\noc-go-cc serve --port 8080  Start on a custom port\noc-go-cc serve --config \u002Fpath\u002Fto\u002Fconfig.json  Use a custom config\noc-go-cc stop               Stop the running proxy server\noc-go-cc status             Check if the proxy is running\noc-go-cc autostart enable   Enable auto-start on login\noc-go-cc autostart disable  Disable auto-start on login\noc-go-cc autostart status   Check autostart status\noc-go-cc init               Create default configuration file\noc-go-cc validate           Validate configuration file\noc-go-cc models             List available OpenCode Go models\noc-go-cc --version          Show version\n```\n\n## API Endpoints\n\nThe proxy exposes these endpoints that Claude Code expects:\n\n| Method | Path                        | Description                           |\n| ------ | --------------------------- | ------------------------------------- |\n| `POST` | `\u002Fv1\u002Fmessages`              | Main chat endpoint (Anthropic format) |\n| `POST` | `\u002Fv1\u002Fmessages\u002Fcount_tokens` | Token counting                        |\n| `GET`  | `\u002Fhealth`                   | Health check                          |\n\n## Troubleshooting\n\n### Windows Scoop Background Mode\n\nOn Windows, `oc-go-cc serve -b` uses the native Windows process APIs and keeps\nthe Scoop shim path intact. This means background mode does not require `nohup`\nor a Unix-like shell, and Scoop-provided environment variables continue to work.\n\n### \"invalid request body\" Error\n\nThis means the proxy couldn't parse the request from Claude Code. Enable debug logging to see the raw request:\n\n```json\n{ \"logging\": { \"level\": \"debug\" } }\n```\n\nOr set the environment variable:\n\n```bash\nexport OC_GO_CC_LOG_LEVEL=debug\n```\n\n### \"all models failed\" Error\n\nAll models in the fallback chain returned errors. Check:\n\n1. Your API key is valid: `oc-go-cc validate`\n2. You haven't exceeded your [usage limits](https:\u002F\u002Fopencode.ai\u002Fauth)\n3. The OpenCode Go service is reachable: `curl -H \"Authorization: Bearer $OC_GO_CC_API_KEY\" https:\u002F\u002Fopencode.ai\u002Fzen\u002Fgo\u002Fv1\u002Fmodels`\n\n### Connection Refused\n\nMake sure the proxy is running:\n\n```bash\noc-go-cc status\n```\n\nAnd Claude Code is pointing to the right address:\n\n```bash\necho $ANTHROPIC_BASE_URL  # Should be http:\u002F\u002F127.0.0.1:3456\n```\n\n### Streaming Not Working\n\nThe proxy transforms OpenAI SSE to Anthropic SSE in real-time. If streaming appears broken:\n\n1. Set log level to `debug` to see the raw SSE chunks\n2. Check that no proxy or firewall is buffering the connection\n3. Try a non-streaming request first to verify the model works\n\n### Debug Mode\n\nFor maximum logging, run with debug level:\n\n```bash\nOC_GO_CC_LOG_LEVEL=debug oc-go-cc serve\n```\n\nThis logs:\n\n- Raw Anthropic request body from Claude Code\n- Transformed OpenAI request sent to OpenCode Go\n- Raw OpenAI response received\n- SSE stream events during streaming\n\n## Architecture\n\n```\ncmd\u002Foc-go-cc\u002Fmain.go           CLI entry point (cobra commands)\ninternal\u002F\n├── config\u002F\n│   ├── config.go               Config types\n│   └── loader.go               JSON loading, env overrides, ${VAR} interpolation\n├── router\u002F\n│   ├── model_router.go         Model selection based on scenario\n│   ├── scenarios.go            Scenario detection (default\u002Fthink\u002Flong_context\u002Fbackground)\n│   └── fallback.go            Fallback handler with circuit breaker\n├── server\u002F\n│   └── server.go               HTTP server setup, graceful shutdown, PID management\n├── handlers\u002F\n│   ├── messages.go             POST \u002Fv1\u002Fmessages handler (streaming + non-streaming)\n│   └── health.go               Health check and token counting endpoints\n├── transformer\u002F\n│   ├── request.go              Anthropic → OpenAI request transformation\n│   ├── response.go             OpenAI → Anthropic response transformation\n│   └── stream.go               Real-time SSE stream transformation\n├── client\u002F\n│   └── opencode.go             OpenCode Go HTTP client\n└── token\u002F\n    └── counter.go              Tiktoken token counter (cl100k_base)\npkg\u002Ftypes\u002F\n├── anthropic.go                Anthropic API types (polymorphic system\u002Fcontent fields)\n└── openai.go                   OpenAI API types\nconfigs\u002F\n└── config.example.json         Example configuration\n```\n\n### Key Design Decisions\n\n- **Polymorphic field handling**: Anthropic's `system` and `content` fields accept both strings and arrays. We use `json.RawMessage` with accessor methods (`SystemText()`, `ContentBlocks()`) to handle both formats correctly.\n- **Real-time stream proxying**: SSE events are transformed in-flight, not buffered. This means Claude Code sees responses as they arrive from OpenCode Go.\n- **Circuit breaker per model**: Each model gets its own circuit breaker. After 3 consecutive failures, the model is skipped for 30 seconds, then tested again.\n- **Environment variable interpolation**: Config values like `\"${OC_GO_CC_API_KEY}\"` are resolved at load time, so you never need to put secrets in the config file.\n\n## Development\n\n```bash\n# Build (version auto-detected from git)\nmake build\n\n# Run in development mode\nmake run\n\n# Run tests with race detector\nmake test\n\n# Run go vet\nmake vet\n\n# Clean build artifacts\nmake clean\n\n# Install to $GOPATH\u002Fbin\nmake install\n\n# Build cross-platform release binaries\nmake dist\n```\n\n## License\n\nMIT\n\n","oc-go-cc 是一个 Go 语言编写的命令行工具，允许用户通过 Claude Code 接口使用 OpenCode Go 订阅。该项目的核心功能包括透明代理、模型路由、自动故障切换链、断路器机制以及实时流处理等，能够将 Anthropic 格式的请求转换为 OpenAI 格式并转发至 OpenCode Go 的端点，同时支持工具调用和准确的令牌计数。特别适合需要以较低成本（每月5美元起）访问高效编码模型的开发者或团队，在保持原有工作流程不变的情况下，通过简单的环境变量配置即可无缝接入更经济实惠的开源模型服务。",2,"2026-06-11 02:42:53","CREATED_QUERY"]