1. 为什么要在 VSCode 里把 Todo Tree 和 TaoToken 放一起
Todo Tree 是 VSCode 里一个把散落在代码注释中的 TODO、FIXME、NOTE 聚合成树形视图的插件,点一下就能跳到对应代码行。它本身不联网、不调用模型,只做本地扫描。而 TaoToken 提供的是统一的 API Key 通道,让 Claude Code、Cline、Continue 这类编码助手在编辑器里调用模型时,不用每个插件各配一套凭证。
把这两件事放在同一个settings.json里管理,解决的是一个很具体的痛点:待办事项和 AI 调用凭证分散在不同插件的配置面板里,换台机器或者重装 VSCode 就要重新点一遍。Todo Tree 的配置项和 TaoToken 的接入参数都写在用户级settings.json里之后,同步设置就能一起带走。
这篇面向的是已经在用 VSCode 写代码、想让待办扫描和 AI 调用凭证都集中管理的开发者。你会拿到一份可直接复制的settings.json骨架,包含 Todo Tree 的扫描规则、标签定义、视图行为,以及 TaoToken 的 Base URL 和 Key 引用方式,最后用一个验证动作确认两边都生效。
需要先说明一点:Todo Tree 和 TaoToken 之间没有直接的 API 调用关系。Todo Tree 负责扫描注释,TaoToken 负责给 AI 编码插件提供模型通道,它们共享的是同一个配置文件。理解这一点,后面的配置才不会拧巴。
2. TaoToken 前置准备:拿到统一 Key 和 Base URL
在写配置之前,先把 TaoToken 这边的两个值准备好:API Key 和 Base URL。这两个值是后面所有 AI 编码插件共用的,Todo Tree 本身不需要它们,但同一份settings.json里会引用。
2.1 注册与创建 API Key
打开 TaoToken 官网 https://taotoken.net/?utm_source=taotoken_aicg_blog_end&utm_medium=csdn&utm_campaign=rewrite ,完成账号注册后进入控制台。在控制台里找到 API Keys 页面,创建一个新的 Key。创建时建议按用途命名,比如vscode-coding,这样以后在多个编辑器或插件里复用时能分清。
创建完成后把 Key 复制出来,格式通常是一串以特定前缀开头的字符串。这个 Key 只显示一次,建议先存到密码管理器里。
2.2 确认 Base URL
TaoToken 的 API 入口是 https://taotoken.net/api ,注意这个地址不带任何查询参数。很多插件在配置时会要求填Base URL或API Base,填这个即可。有些插件会自动在末尾拼接/v1,如果你的插件报 404,可以试着在 Base URL 后面补上/v1再试。
2.3 把 Key 放进环境变量而不是明文写进 settings.json
这一步是很多人会忽略的。直接把 Key 明文写进settings.json有两个问题:一是同步设置时 Key 会跟着上传,二是截图分享配置时容易泄露。更稳妥的做法是把 Key 放进系统环境变量,然后在settings.json里用变量引用。
macOS 或 Linux 下,在~/.zshrc或~/.bashrc里加一行:
export TAOTOKEN_API_KEY="你的Key"Windows 下在系统环境变量里新建一个TAOTOKEN_API_KEY,值填你的 Key。设置完重启 VSCode,让编辑器读到新的环境变量。
注意:环境变量名建议用全大写加下划线,避免和插件自带的变量冲突。改完环境变量一定要完全退出 VSCode 再打开,只关窗口不算。
3. 可复制的 settings.json 骨架
下面这份骨架分成两块:Todo Tree 的配置和 TaoToken 相关的通用配置。你可以整体复制到用户级settings.json(快捷键Ctrl+Shift+P输入Open User Settings (JSON)),也可以只取需要的部分。
3.1 Todo Tree 扫描与标签配置
{ "todo-tree.general.tags": [ "TODO", "FIXME", "NOTE", "HACK", "XXX" ], "todo-tree.general.tagGroups": { "待办": ["TODO", "FIXME"], "说明": ["NOTE", "HACK", "XXX"] }, "todo-tree.general.revealBehaviour": "start of todo line", "todo-tree.highlights.enabled": true, "todo-tree.highlights.defaultHighlight": { "foreground": "#ffffff", "background": "#ff6b6b", "type": "text" }, "todo-tree.highlights.customHighlight": { "TODO": { "background": "#ffa500", "icon": "check" }, "FIXME": { "background": "#ff0000", "icon": "bug" }, "NOTE": { "background": "#1e90ff", "icon": "note" } }, "todo-tree.filtering.excludeGlobs": [ "**/node_modules/**", "**/dist/**", "**/build/**", "**/.git/**" ], "todo-tree.filtering.includeGlobs": [ "**/*.js", "**/*.ts", "**/*.py", "**/*.go", "**/*.java", "**/*.md" ], "todo-tree.tree.showCountsInTree": true, "todo-tree.tree.scanMode": "workspace", "todo-tree.general.showActivityBarBadge": true }几个参数说明一下。tags决定扫描哪些关键字,默认只有 TODO 和 FIXME,这里加了 NOTE、HACK、XXX。tagGroups把标签分组,树视图里会按组折叠,项目大了之后很好用。excludeGlobs一定要配,不然node_modules里的注释会被扫进来,树会卡到没法看。scanMode设为workspace表示扫描整个工作区,如果项目特别大可以改成currentFile只扫当前文件。
3.2 TaoToken 通用配置与 Key 引用
Todo Tree 本身不调用模型,但同一份settings.json里可以放 TaoToken 的通用配置,供其他 AI 编码插件读取。下面这段是给 Cline、Continue 这类插件用的参考结构:
{ "cline.apiProvider": "openai", "cline.openAiBaseUrl": "https://taotoken.net/api", "cline.openAiApiKey": "${env:TAOTOKEN_API_KEY}", "continue.models": [ { "title": "TaoToken Claude", "provider": "openai", "model": "claude-sonnet-4-20250514", "apiBase": "https://taotoken.net/api", "apiKey": "${env:TAOTOKEN_API_KEY}" } ] }${env:TAOTOKEN_API_KEY}是 VSCode 支持的变量引用语法,它会去读系统环境变量。这样settings.json里就没有明文 Key,同步设置也安全。不同插件的配置字段名不一样,上面只是示例,实际以插件文档为准。核心是两点:Base URL 填https://taotoken.net/api,Key 用环境变量引用。
提示:如果你用的插件不支持
${env:}语法,可以退一步用${input:taotokenKey},VSCode 会在首次使用时弹输入框,输入后存在本地凭据里,同样不会明文落盘。
3.3 快捷键绑定
Todo Tree 默认没有快捷键,建议绑一个。在keybindings.json里加:
[ { "key": "ctrl+alt+t", "command": "todo-tree-view.focus", "when": "editorTextFocus" } ]这样在编辑器里按Ctrl+Alt+T就能直接聚焦到 Todo Tree 视图。如果你习惯用Cmd,macOS 下把ctrl换成cmd即可。
4. 验证请求与成功结果
配置写完,需要验证两件事:Todo Tree 能正常扫描,TaoToken 通道能正常调用。
4.1 验证 Todo Tree 扫描
在任意项目文件里写一行注释:
// TODO: 接入 TaoToken 后替换旧的 API 地址保存文件,按Ctrl+Alt+T打开 Todo Tree 视图。正常情况下,树里会出现一个 TODO 节点,下面挂着这个文件,点击能跳到对应行。如果树是空的,先按Ctrl+Shift+P输入Todo Tree: Refresh手动刷新一次。
再验证标签分组:写一行// FIXME: 这里的错误处理要补,刷新后应该看到「待办」分组下同时有 TODO 和 FIXME 两个子节点。如果分组没生效,检查tagGroups的 JSON 结构有没有写错,键名和数组值都要用双引号。
4.2 验证 TaoToken 通道
用一个支持自定义 Base URL 的插件(比如 Cline)发一条测试请求。在插件的对话窗口里输入「用一句话说明当前文件的作用」,发送后观察返回。如果返回正常,说明 Base URL 和 Key 都通了。
也可以用命令行直接验证,避免插件配置干扰:
curl https://taotoken.net/api/v1/chat/completions \ -H "Content-Type: application/json" \ -H "Authorization: Bearer $TAOTOKEN_API_KEY" \ -d '{ "model": "claude-sonnet-4-20250514", "messages": [{"role": "user", "content": "ping"}], "max_tokens": 16 }'返回里如果有choices字段和内容,说明 Key 和通道都正常。如果返回 401,检查环境变量有没有被 VSCode 读到;如果返回 404,检查 Base URL 末尾要不要补/v1。
4.3 两边同时生效的确认
最终确认状态是:Todo Tree 视图里能看到你写的 TODO 和 FIXME,同时 AI 插件能正常返回模型结果。这两件事互不干扰,但共享同一份settings.json,所以改配置时注意 JSON 语法,一个逗号写错会导致整个文件失效,Todo Tree 和插件配置会一起挂掉。
5. 本篇常见错排查
5.1 Todo Tree 树是空的
最常见的原因是includeGlobs没匹配到你的文件类型。默认配置只扫部分语言,如果你写的是.vue或.rs,需要手动加进去。另一个原因是文件没保存,Todo Tree 扫描的是磁盘上的内容,未保存的缓冲区有时扫不到。还有可能是excludeGlobs写得太宽,把整个项目目录排除了,检查一下有没有**/*这种写法。
5.2 标签加了但树里不显示
检查tags数组里的大小写。Todo Tree 默认区分大小写,写todo不会匹配TODO。如果想不区分,在设置里搜todo-tree.general.caseSensitive关掉。另外标签后面要跟冒号或空格,//TODO和// TODO的匹配行为可能不同,建议统一写成// TODO:这种格式。
5.3 TaoToken 返回 401
401 基本是 Key 的问题。先确认环境变量名和settings.json里引用的名字完全一致,大小写敏感。然后在 VSCode 的集成终端里执行echo $TAOTOKEN_API_KEY(Windows 用echo %TAOTOKEN_API_KEY%),看有没有值。如果终端有值但插件报 401,可能是插件没继承环境变量,试试完全重启 VSCode 而不是重载窗口。
5.4 返回 404 或 model not found
404 通常是 Base URL 路径问题。TaoToken 的入口是https://taotoken.net/api,有些插件会自动拼/v1/chat/completions,有些不会。如果报 404,试着把 Base URL 改成https://taotoken.net/api/v1。model not found 则是模型名写错了,确认你填的模型名在 TaoToken 支持列表里,不要直接抄别处的模型名。
5.5 settings.json 改完没生效
JSON 不允许尾随逗号,最后一项后面不能有逗号。改完保存后,VSCode 右下角如果弹出 JSON 解析错误提示,说明语法有问题,整个文件都不会生效。用Ctrl+Shift+P输入Preferences: Open User Settings (JSON)打开确认,编辑器会用红色波浪线标出错误位置。改完建议重载窗口(Developer: Reload Window)确保所有插件重新读取配置。
6. 后续怎么用这套配置
Todo Tree 的标签体系可以随项目演进。比如团队约定用// REVIEW:标记需要代码评审的位置,只要在tags里加一项,树里就会多一个分组。配合tagGroups把「待办」和「评审」分开,视图会清爽很多。
TaoToken 这边,如果你后面要接 Claude Code 或做长期编码任务,可以了解 Coding Plan 的用法,它适合需要持续调用模型的场景。日常在编辑器里做单次问答或补全,用 API Keys 配合插件就够了。接入文档里有各插件的详细配置示例,遇到字段名对不上时去那里查最快。
配置这件事,一次写对后面省很多事。建议把这份settings.json骨架存一份到自己的 dotfiles 仓库,换机器时直接拉下来,环境变量单独设一次,Todo Tree 和 AI 通道就都回来了。