TokenFlashTokenFlash

OpenCode 接入 TokenFlash(推荐)

安装 OpenCode 并配置 TokenFlash,自由使用 Claude、GPT 和 Gemini 等主流模型。

OpenCode 是一个开源 AI 编程 Agent,可在终端(Terminal)、桌面应用和 IDE 插件中使用,支持 75+ 种 LLM 提供商。它对自定义 provider 很友好,是接入 TokenFlash 中转站的理想选择。

OpenCode 官方截图

核心特性

特性说明
多模型支持支持 OpenAI、Anthropic、Google、DeepSeek 等 75+ 提供商
终端 UI精美的 TUI 界面,支持 WezTerm、Alacritty、Ghostty、Kitty 等现代终端
会话管理多会话并行、历史记录、压缩、分享
MCP 集成支持 Model Context Protocol,可接入外部工具
Plan/Build 模式Plan 模式只分析规划,Build 模式执行修改,Tab 键切换
隐私优先不存储代码或上下文,数据仅在本地与 LLM 间传输

与其他工具对比

对比维度OpenCodeCursorGitHub CopilotClaude Code
开源完全开源闭源闭源闭源
模型自由度75+ 提供商随意切换内置模型为主OpenAI 模型Anthropic 模型
费用免费(自付 API 费用)$20/月起$10/月起$20/月起
自定义 API原生支持有限支持不支持不支持
MCP 支持完整支持支持不支持支持
隐私保护不存储代码云端处理云端处理不存储

核心优势: OpenCode 原生支持通过 @ai-sdk/openai-compatible 适配器接入任何兼容 OpenAI 协议的 API,正是接入 TokenFlash 的关键。

安装 OpenCode

macOS / Linux

curl -fsSL https://opencode.ai/install | bash

Docker

docker run -it --rm ghcr.io/anomalyco/opencode

Windows(推荐 WSL)

OpenCode 原生不支持 Windows。推荐使用 WSL:

# PowerShell(管理员权限)
wsl --install
# 重启后进入 WSL 终端执行一键安装
curl -fsSL https://opencode.ai/install | bash

从源码编译

git clone https://github.com/anomalyco/opencode.git && cd opencode
go build -o opencode .
sudo mv opencode /usr/local/bin/

验证安装

opencode --version

安装后提示「command not found」?

npm 全局安装路径可能不在 PATH 中:

npm bin -g
echo 'export PATH="$(npm bin -g):$PATH"' >> ~/.bashrc
source ~/.bashrc

核心概念

三种交互模式

模式说明适用场景
Agent (Build)自主编码模式,可调用工具读写文件、执行命令需要 AI 自动完成编码任务
Plan计划模式,AI 分析需求并给出实施方案复杂功能开发前先出方案
Ask问答模式,纯对话,不调用工具代码审查、知识问答

切换方式:按 Tab 键或在会话中输入 /agent/plan/ask

Sub-agent

OpenCode 内部使用多种子代理处理不同任务:Codex(编程)、Planner(任务分解)、Browser(网页浏览)等,由 OpenCode 自动调度。

TokenFlash API 对接配置(核心章节)

TokenFlash API 概览

项目信息
Base URL(OpenAI 协议)https://tokenflash.cn/v1
Base URL(Anthropic 协议)https://tokenflash.cn(不加 /v1)

配置文件位置

OpenCode 支持两级配置:

级别路径适用场景
全局配置~/.config/opencode/opencode.json所有项目通用
项目配置./opencode.json(项目根目录)特定项目专用

首先创建配置目录:

mkdir -p ~/.config/opencode

方式一:OpenAI 兼容协议(推荐)

适用于 GPT、Gemini、DeepSeek 等所有兼容 OpenAI 协议的模型:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "tokenflash": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "TokenFlash",
      "options": {
        "baseURL": "https://tokenflash.cn/v1",
        "apiKey": "{env:TOKENFLASH_API_KEY}"
      },
      "models": {
        "gpt-5.6-sol": {
          "name": "GPT 5.6 Sol"
        },
        "gpt-5.5": {
          "name": "GPT 5.5"
        },
        "gemini-3.5-flash": {
          "name": "Gemini 3.5 Flash"
        },
        "deepseek-v4-flash": {
          "name": "DeepSeek V4 Flash"
        }
      }
    }
  },
  "model": "tokenflash/gpt-5.6-sol"
}

方式二:Anthropic 协议(用于 Claude 模型)

覆盖官方 Anthropic provider 的 baseURL:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "anthropic": {
      "options": {
        "baseURL": "https://tokenflash.cn",
        "apiKey": "{env:TOKENFLASH_API_KEY}"
      },
      "models": {
        "claude-sonnet-5": {
          "name": "Claude Sonnet 5 (via TokenFlash)"
        },
        "claude-opus-4-8": {
          "name": "Claude Opus 4.8 (via TokenFlash)"
        },
        "claude-fable-5": {
          "name": "Claude Fable 5 (via TokenFlash)"
        }
      }
    }
  },
  "model": "anthropic/claude-sonnet-5"
}

重要区别: Anthropic 协议 Base URL 不加 /v1,OpenAI 协议必须加 /v1

方式三:完整推荐配置(所有模型统一走 OpenAI 协议)

把所有模型都放在 OpenAI 兼容 provider 下,无需区分协议:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "tokenflash-gpt": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "TokenFlash GPT",
      "options": {
        "baseURL": "https://tokenflash.cn/v1",
        "apiKey": "{env:TOKENFLASH_API_KEY}"
      },
      "models": {
        "gpt-5.6-sol": {
          "name": "GPT 5.6 Sol",
          "maxTokens": 65536
        },
        "gpt-5.5": {
          "name": "GPT 5.5",
          "maxTokens": 32768
        },
        "gpt-5.4": {
          "name": "GPT 5.4",
          "maxTokens": 32768
        }
      }
    },
    "tokenflash-claude": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "TokenFlash Claude",
      "options": {
        "baseURL": "https://tokenflash.cn/v1",
        "apiKey": "{env:TOKENFLASH_API_KEY}"
      },
      "models": {
        "claude-sonnet-5": {
          "name": "Claude Sonnet 5",
          "maxTokens": 65536
        },
        "claude-opus-4-8": {
          "name": "Claude Opus 4.8",
          "maxTokens": 65536
        },
        "claude-fable-5": {
          "name": "Claude Fable 5",
          "maxTokens": 65536
        }
      }
    },
    "tokenflash-gemini": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "TokenFlash Gemini",
      "options": {
        "baseURL": "https://tokenflash.cn/v1",
        "apiKey": "{env:TOKENFLASH_API_KEY}"
      },
      "models": {
        "gemini-3.5-flash": {
          "name": "Gemini 3.5 Flash",
          "maxTokens": 65536
        },
        "gemini-3.1-pro-high": {
          "name": "Gemini 3.1 Pro High",
          "maxTokens": 65536
        }
      }
    },
    "tokenflash-other": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "TokenFlash Other",
      "options": {
        "baseURL": "https://tokenflash.cn/v1",
        "apiKey": "{env:TOKENFLASH_API_KEY}"
      },
      "models": {
        "deepseek-v4-flash": {
          "name": "DeepSeek V4 Flash",
          "maxTokens": 65536
        },
        "deepseek-v4-pro": {
          "name": "DeepSeek V4 Pro",
          "maxTokens": 65536
        },
        "kimi-k2.5": {
          "name": "Kimi K2.5",
          "maxTokens": 65536
        },
        "qwen3.5-plus": {
          "name": "Qwen 3.5 Plus",
          "maxTokens": 65536
        },
        "grok-4.3": {
          "name": "Grok 4.3",
          "maxTokens": 65536
        }
      }
    }
  },
  "model": "tokenflash-claude/claude-sonnet-5"
}

按提供商分组后,在 /models 面板中一目了然。你也可以只保留一个 tokenflash provider 把所有模型放一起。

使用环境变量管理 API Key(推荐)

# 临时设置
export TOKENFLASH_API_KEY="YOUR_API_KEY"

# 永久设置
echo 'export TOKENFLASH_API_KEY="YOUR_API_KEY"' >> ~/.zshrc
source ~/.zshrc

在配置文件中用 {env:TOKENFLASH_API_KEY} 引用,避免 API Key 明文写入文件。

隐藏不需要的模型(blacklist)

{
  "provider": {
    "tokenflash": {
      "whitelist": ["gpt-5.6-sol", "claude-sonnet-5"]
    }
  }
}

或使用 blacklist 排除不用的模型。

测试 API 连通性

curl -H "Authorization: Bearer $TOKENFLASH_API_KEY" https://tokenflash.cn/v1/models

多提供商配置

你可以同时配置 TokenFlash 和官方 API,灵活切换:

{
  "$schema": "https://opencode.ai/config.json",
  "provider": {
    "tokenflash": {
      "npm": "@ai-sdk/openai-compatible",
      "name": "TokenFlash",
      "options": {
        "baseURL": "https://tokenflash.cn/v1",
        "apiKey": "{env:TOKENFLASH_API_KEY}"
      },
      "models": {
        "gpt-5.6-sol": { "name": "GPT 5.6 Sol (TokenFlash)" },
        "claude-sonnet-5": { "name": "Claude Sonnet 5 (TokenFlash)" }
      }
    },
    "anthropic": {
      "options": { "apiKey": "{env:ANTHROPIC_API_KEY}" }
    },
    "openai": {
      "options": { "apiKey": "{env:OPENAI_API_KEY}" }
    }
  },
  "model": "tokenflash/gpt-5.6-sol"
}

通过 enabled_providersdisabled_providers 控制可用提供商:

{
  "enabled_providers": ["tokenflash", "anthropic"],
  "disabled_providers": ["openai"]
}

按任务分配模型(自定义 Agent)

为不同任务类型分配不同模型:

{
  "agent": {
    "code-reviewer": {
      "description": "审查代码质量和安全性",
      "model": "tokenflash-claude/claude-sonnet-5",
      "prompt": "你是一个代码审查专家。关注安全性、性能和可维护性。"
    },
    "quick-ask": {
      "description": "快速回答编程问题",
      "model": "tokenflash-gpt/gpt-5.5",
      "prompt": "简洁回答编程问题,提供代码示例。"
    }
  }
}

会话中用 /agent code-reviewer/agent quick-ask 切换。

权限控制

{
  "permissions": {
    "mode": "bySession",
    "rules": [
      { "match": "src/**/*.ts", "allow": ["read", "write", "edit"] },
      { "match": "package.json", "allow": ["read", "write"] }
    ]
  }
}
模式行为
byTool每次调工具都要确认
bySession每轮会话开始确认一次(推荐)
acceptAll自动授权所有工具调用

MCP 服务器配置

OpenCode 支持通过 MCP 协议连接外部工具:

{
  "mcpServers": {
    "filesystem": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path/to/allowed/dir"]
    },
    "github": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-github"],
      "env": { "GITHUB_TOKEN": "{env:GITHUB_TOKEN}" }
    },
    "playwright": {
      "command": "npx",
      "args": ["-y", "@playwright/mcp"]
    },
    "sequential-thinking": {
      "command": "npx",
      "args": ["-y", "@modelcontextprotocol/server-sequential-thinking"]
    }
  }
}

常用命令速查

命令功能
/init初始化项目,生成 AGENTS.md
/models查看和切换模型
/session查看会话列表
/new新建会话
/compact压缩当前会话(节省 token)
/share分享会话链接
/undo撤销上一步操作
/diff查看当前修改的 diff
/run <command>在终端中执行命令
/agent选择 Agent
Tab切换 Plan / Build 模式
@模糊搜索文件引用

启动与使用

初始化项目

opencode

进入界面后先执行 /init,OpenCode 会自动分析项目结构并生成 AGENTS.md(项目级 AI 指南)。

日常使用流程

  1. Plan 模式先出方案:按 Tab 切换到 Plan 模式,描述需求
  2. 确认方案后执行:切回 Build 模式,让 AI 改代码
  3. 查看 diff/diff 确认修改内容
  4. 不满意可回退/undo
  5. 提交代码/run git add -A && git commit -m "feat: xxx"

测试 API 连接

如遇延迟,可以测量 TokenFlash API 的连接耗时:

curl -o /dev/null -s -w "%{time_total}\n" https://tokenflash.cn/v1/models

常见问题

配置文件格式错误?

# 验证 JSON 格式
cat ~/.config/opencode/opencode.json | python3 -m json.tool

提示:如需注释,将文件保存为 opencode.jsonc(JSONC 格式)。

模型连接失败?

# 测试 API 连通性
curl -H "Authorization: Bearer $TOKENFLASH_API_KEY" https://tokenflash.cn/v1/models

# 检查代理设置
env | grep -i proxy

常见原因:API Key 错误、Base URL 格式不对(OpenAI 协议要加 /v1)、网络问题。

适配器未找到(Cannot find module)?

确认 Node.js 环境正常。OpenCode 会自动下载 @ai-sdk/openai-compatible,无需手动安装。

响应速度慢?

  • 检查到 https://tokenflash.cn/v1 的网络连接
  • 增加 timeout 值:"timeout": 600000
  • 使用更快的模型(如 gpt-5.5deepseek-v4-flash

如何升级 OpenCode?

npm update -g opencode-ai
# 或
brew upgrade anomalyco/tap/opencode

如何在 IDE 中使用?

  • VS Code:扩展市场搜索 "OpenCode" 安装
  • JetBrains:插件市场搜索 "OpenCode" 安装

IDE 扩展共享 ~/.config/opencode/opencode.json,无需额外配置。

On this page