CodeLink

CodeLink 是一个面向 Yealink YLLM、DeepSeek 官方 API Platform 和小米 MiMo 官方 API Platform 的 VS Code 扩展,提供 VS Code 原生 Language Model Chat Provider、行内编辑预测、提交信息生成,以及 Token 用量和配额状态展示能力。
参考:
功能特性
LanguageModelChatProvider
- 接入 YLLM 的
/chat/completions 接口
- 只注册已启用的 DeepSeek 官方 API Platform provider 或小米 MiMo 官方 API Platform provider
- 在 VS Code 模型选择器中分别注册
CodeLink · YLLM、CodeLink · DeepSeek 和 CodeLink · MiMo
- 支持流式响应
- 支持工具调用 (Tool Calling)
- 支持内置 YLLM 和 DeepSeek 模型目录
- 模型详情展示 Client-facing API surface、Prompt caching support/strategies、catalog fact source 和 cache usage/debug facts
- 普通模型列表不展示 unknown prompt caching 状态;只有模型详情和 debug/report 展示
not declared 等诊断信息
EditPrediction
提交信息生成
- 根据 diff 片段和最近提交历史生成符合项目风格的提交信息
- 支持多仓库工作区:SCM 面板触发时自动定位正确仓库,Command Palette 触发时弹出选择器
- 支持配置生成语言(英文、中文、日语等任意 BCP 47 语言标签)
- 支持 Conventional Commits 风格或无风格约束
- 支持自定义提示词规则
- 自动检测项目 emoji 使用习惯
Token 用量与配额
- 持久化记录 chat、inline completion、commit 三类 Token 消耗
- 支持 YLLM Manager 配额查询(日/月)
- 支持 DeepSeek 官方账户余额查询
- 支持上下文窗口状态栏指示器和状态栏数据源切换
快速开始
安装
code --install-extension dist/codelink-<version>.vsix
配置
- 打开命令面板 (
Ctrl+Shift+P / Cmd+Shift+P)
- 运行
CodeLink YLLM: Set API Key 或 CodeLink DeepSeek: Set API Key
- 输入对应 provider 的 API Key
- 如需使用 DeepSeek,启用
codelink.provider.deepseek.enabled,再在具体功能块中选择 deepseek
命令列表
常用命令
| 命令 |
描述 |
CodeLink YLLM: Set API Key |
设置 YLLM API Key |
CodeLink YLLM: Clear API Key |
清除存储的 API Key |
CodeLink DeepSeek: Set API Key |
设置 DeepSeek API Key |
CodeLink DeepSeek: Clear API Key |
清除存储的 DeepSeek API Key |
CodeLink MiMo: Set API Key |
设置 MiMo API Key |
CodeLink MiMo: Clear API Key |
清除存储的 MiMo API Key |
CodeLink Commit: Generate Message |
根据 staged diff 生成提交信息 |
CodeLink Usage: Show Token Usage |
显示 Token 用量报告 |
CodeLink Usage: Reset Token Usage |
重置 Token 用量 |
CodeLink Usage: Configure Status Bar Source |
切换状态栏展示的数据源 |
CodeLink Models: Browse |
查看内置模型或打开相关设置 |
CodeLink Quota: Show |
显示详细配额报告 |
CodeLink Quota: Refresh |
手动刷新配额缓存 |
调试命令
以下命令仅在启用 codelink.debug.enabled 后可用:
| 命令 |
描述 |
CodeLink Debug: Show View |
打开 Debug 面板 |
CodeLink Debug: Refresh View |
刷新 Debug 面板 |
CodeLink Debug: Clear View |
清空已捕获的请求/响应记录 |
CodeLink Debug: Open Raw Request in Editor |
在编辑器中打开原始请求 |
CodeLink Debug: Open Raw Response in Editor |
在编辑器中打开原始响应 |
CodeLink Debug: Copy Raw Request |
复制原始请求 |
CodeLink Debug: Copy Raw Response |
复制原始响应 |
配置选项
Provider enablement 和 feature provider
| 配置项 |
类型 |
默认值 |
描述 |
codelink.provider.yllm.enabled |
boolean |
true |
启用 YLLM provider |
codelink.provider.deepseek.enabled |
boolean |
false |
启用 DeepSeek provider |
codelink.provider.mimo.enabled |
boolean |
false |
启用 MiMo provider |
codelink.codeSuggestion.inlineCompletion.provider |
string |
yllm |
Inline completion 使用的 provider |
codelink.editPrediction.provider |
string |
yllm |
Edit prediction 使用的 provider |
codelink.commit.provider |
string |
yllm |
Commit message generation 使用的 provider |
Chat 不再在 schema 中提供 codelink.chat.provider。CodeLink 会把所有 provider vendor 注册给 VS Code,由 VS Code Language Model picker 处理 Chat provider/model 选择;disabled provider 的动态模型列表为空,启用后通过配置变更刷新模型列表。升级迁移期间,运行时仍会读取旧的 codelink.provider.default / codelink.chat.provider / 旧 feature-scoped model 配置作为 fallback,避免已有用户设置静默切回 YLLM。
Provider (YLLM)
| 配置项 |
类型 |
默认值 |
描述 |
codelink.provider.yllm.enabled |
bool |
true |
是否启用 YLLM provider |
codelink.provider.yllm.chatUrl |
string |
https://worklink.yealink.com/llmproxy/v1/chat/completions |
YLLM Chat API URL |
codelink.provider.yllm.completionUrl |
string |
https://worklink.yealink.com/llmproxy/v1/completions |
YLLM Completion API URL |
codelink.provider.yllm.managerUrl |
string |
https://yllm.worklink.work/yllm/api/v1 |
YLLM Manager API URL |
codelink.provider.yllm.inlineCompletion.model |
string |
yealink/Qwen3-Coder |
YLLM Inline completion 模型 |
codelink.provider.yllm.commit.model |
string |
deepseek-v4-flash |
YLLM Commit 模型 |
Provider (DeepSeek)
| 配置项 |
类型 |
默认值 |
描述 |
codelink.provider.deepseek.enabled |
bool |
false |
是否启用 DeepSeek provider |
codelink.provider.deepseek.chatUrl |
string |
https://api.deepseek.com/chat/completions |
DeepSeek Chat Completions API URL |
codelink.provider.deepseek.completionUrl |
string |
https://api.deepseek.com/beta/completions |
DeepSeek beta Completions/FIM API URL |
codelink.provider.deepseek.balanceUrl |
string |
https://api.deepseek.com/user/balance |
DeepSeek 账户余额 API URL |
codelink.provider.deepseek.inlineCompletion.model |
string |
deepseek-v4-pro |
DeepSeek Inline completion 模型 |
codelink.provider.deepseek.commit.model |
string |
deepseek-v4-flash |
DeepSeek Commit 模型 |
Provider (MiMo)
| 配置项 |
类型 |
默认值 |
描述 |
codelink.provider.mimo.enabled |
bool |
false |
是否启用 MiMo provider |
codelink.provider.mimo.chatUrl |
string |
https://api.xiaomimimo.com/v1/chat/completions |
小米 MiMo Chat Completions API URL |
codelink.provider.mimo.models |
array |
[] |
MiMo provider 的用户自定义模型 |
Chat
| 配置项 |
类型 |
默认值 |
描述 |
codelink.chat.promptCaching.mode |
string |
auto |
Prompt caching hint 模式,off 会禁止主动 cache hint 和 session marker |
codelink.chat.maxTokens |
number |
32000 |
Chat 请求默认最大输出 token 数;VS Code 单次请求显式提供时优先使用显式值 |
YLLM model gateway 与 prompt caching
YLLM 在 CodeLink 中被视为 Model gateway,但扩展展示的是 CodeLink curated model catalog,不做 provider inventory sync。CodeLink 从生成后的模型配置读取 yllm.chatProtocol,选择 OpenAI Chat Completions、OpenAI Responses 或 Anthropic Messages codec;缺省时使用 OpenAI Chat Completions。Prompt caching 能力同样来自生成后的模型配置,不通过 runtime probing 或生产请求试错发现。
模型详情和 Debug 面板会显示 Prompt caching support(not declared、implicit、explicit、mixed)、strategies、是否发送 cache hint、脱敏 Prompt cache session id,以及 cached tokens / cache read / cache creation 等 Cache usage facts。价格说明只作为 tooltip 文本展示,不会启用 prompt caching 行为。
DeepSeek 在 CodeLink 中是独立 Model provider,不是 YLLM model gateway 下的模型条目。用户启用 codelink.provider.deepseek.enabled 后,VS Code Chat 模型选择器会展示 CodeLink · DeepSeek;为了避免 VS Code 模型选择器或下游缓存把不同 provider 中同名同 id 的模型合并,CodeLink 暴露给 VS Code 的模型 id 会带 provider 前缀,例如 codelink.yllm:::deepseek-v4-flash 和 codelink.deepseek:::deepseek-v4-flash。实际请求 provider 时仍使用 catalog 原始模型 id,例如 deepseek-v4-flash。用户可将 codelink.codeSuggestion.inlineCompletion.provider 或 codelink.commit.provider 设置为 deepseek,并通过 codelink.provider.deepseek.inlineCompletion.model、codelink.provider.deepseek.commit.model 配置对应功能块模型。
DeepSeek Chat 和 Commit 使用官方 Chat Completions API;Inline completion 使用官方 beta Completions/FIM API。DeepSeek 不提供 Edit prediction capability,也不会出现在 Edit prediction provider 选项中。配额展示使用官方账户余额语义,可在状态栏 source 中选择 provider.deepseek.balance。
小米 MiMo 在 CodeLink 中是独立 Model provider,使用其官方 OpenAI 兼容 Chat Completions API(https://api.xiaomimimo.com/v1/chat/completions)。用户启用 codelink.provider.mimo.enabled 后,VS Code Chat 模型选择器会展示 CodeLink · MiMo,模型 id 带 provider 前缀,例如 codelink.mimo:::mimo-v2.5-pro。第一版 MiMo 仅支持 Chat(含 Commit message generation 复用 Chat 路径),不提供 Inline completion、Edit prediction 或配额查询;capability lookup 会在这些 capability 上回退到 YLLM。
Commit
| 配置项 |
类型 |
默认值 |
描述 |
codelink.commit.provider |
string |
yllm |
Commit message generation 使用的 provider |
codelink.provider.yllm.commit.model |
string |
deepseek-v4-flash |
YLLM Commit 模型 |
codelink.commit.language |
string |
en |
生成语言,设为 auto 跟随 VS Code 语言,或任意 BCP 47 标签(如 zh-cn) |
codelink.commit.style |
string |
conventional |
提交风格(conventional / none) |
codelink.commit.customRule |
string |
`` |
自定义提示词规则 |
codelink.commit.historyCount |
number |
10 |
分析风格的最近提交数量 |
codelink.commit.maxDiffChars |
number |
32000 |
最大 diff 字符数 |
Usage display
| 配置项 |
类型 |
默认值 |
描述 |
codelink.usage.contextWindow.warningThreshold |
number |
0.75 |
上下文窗口告警阈值 |
codelink.usage.contextWindow.criticalThreshold |
number |
0.9 |
上下文窗口严重告警阈值 |
codelink.usage.statusBar.source |
string |
usage.tokenUsage.today |
状态栏显示的数据源 ID,可选如 usage.tokenUsage.today、usage.tokenUsage.contextWindow、provider.yllm.quota.daily、provider.yllm.quota.monthly、provider.deepseek.balance |
General
| 配置项 |
类型 |
默认值 |
描述 |
codelink.debug.enabled |
boolean |
false |
是否启用调试采集与调试视图 |
codelink.log.level |
string |
info |
日志输出等级(debug / info / warn / error / off) |
codelink.log.truncateLengthChars |
number |
500 |
Debug 日志中长内容的最大截断字符数,0 表示不截断 |
许可证
本软件为 Yealink Network Technology Co., Ltd. 专有闭源软件,详见 LICENSE。
问题反馈
请在 Worklink Issues 提交问题。