ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

萌妹子语音陪你写代码:VSCode 插件 Rainbow Fart 配 TaoToken 的 settings.json 骨架

萌妹子语音陪你写代码:VSCode 插件 Rainbow Fart 配 TaoToken 的 settings.json 骨架 1. 当写代码时有人夸你Rainbow Fart 到底在做什么Rainbow Fart 是一个 VSCode 插件核心能力很直接监听你正在编辑的代码内容当命中预设关键字时播放对应的语音文件。比如你敲下function它可能来一句“函数写好了真棒”你写if它可能提醒你“条件判断要小心边界哦”。语音包以中文为主插件本体在 GitHub 开源遵循 MIT 协议所以它没有上架 VSCode 官方插件商店需要手动安装 VSIX。它适合谁适合长时间独自写代码、想给枯燥的编码过程加一点反馈感的人也适合做直播、录教程时增加氛围感。但要注意它本质是一个“关键字触发音频播放器”不是 AI 对话也不是代码补全工具。它的配置入口是一个本地 HTTP 服务默认监听127.0.0.1:7777插件启动后你可以在浏览器里打开这个地址看到语音包管理页面和触发日志。我这次要解决的问题不是“怎么装插件”这么简单而是当你已经装了 Rainbow Fart想把它和 TaoToken 的 API 通道配合起来让语音触发逻辑更可控、Key 管理更统一settings.json到底该怎么写。很多人卡在“插件能装但语音不响”或者“改了配置不知道有没有生效”。下面我会给出一份可复制的settings.json骨架并配合 TaoToken 的 API Key 做一次验证请求确认整条链路是通的。2. 前置准备TaoToken Key 与 API 通道TaoToken 在这里扮演的角色是统一 Key 和 API 通道。你可以把它理解成一个“API 入口层”你不需要在多个插件、多个工具里分别填不同的 Key而是用同一个 TaoToken Key通过统一的 API 地址去调用模型能力。对于 Rainbow Fart 这种本身不直接调模型的插件我们可以用 TaoToken 的 API 来做两件事一是验证 Key 是否可用二是为后续扩展比如让语音触发内容由模型动态生成留出通道。你需要先拿到一个可用的 TaoToken API Key。获取路径是访问官网https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content进入控制台后创建 API Key。控制台地址是https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentAPI Keys 管理页是https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content。创建时建议给 Key 起一个能识别的名字比如vscode-rainbow-fart方便后续排查。API 基础地址是https://taotoken.net/api注意这个地址不带 UTM 参数直接用于代码里的baseURL。如果你用的是 OpenAI 兼容的调用方式通常把baseURL设为https://taotoken.net/api然后在请求头里带Authorization: Bearer 你的Key。这一步先确认 Key 能通再往 VSCode 配置里写否则后面语音不响你会分不清是插件问题还是 Key 问题。注意不要把 Key 硬编码到会提交到 Git 的文件里。settings.json如果是用户级配置User Settings风险相对低如果是工作区级Workspace Settings建议用环境变量或单独的本地文件管理。3. 可复制配置settings.json 骨架与参数说明Rainbow Fart 的配置主要分两块一块是 VSCode 自身的settings.json用来控制插件行为另一块是插件语音包目录里的contributes.json或类似配置文件用来定义关键字和音频映射。这里我重点给settings.json骨架因为这是大多数人直接编辑的地方。先确认插件安装方式。如果你还没装在 VSCode 里按Ctrl Shift PmacOS 是Command Shift P输入Extensions: Install from VSIX选择下载好的.vsix文件。装完后再次打开命令面板输入Enable Rainbow Fart并回车。此时右下角会弹出通知点Open会打开http://127.0.0.1:7777/。接下来打开settings.json。你可以用命令面板输入Preferences: Open User Settings (JSON)。下面是一份骨架你可以直接复制后按需改{ rainbow-fart.enable: true, rainbow-fart.port: 7777, rainbow-fart.voicePack: default, rainbow-fart.volume: 0.8, rainbow-fart.triggerMode: keyword, rainbow-fart.cooldownMs: 3000, rainbow-fart.debug: false, rainbow-fart.taotoken: { baseURL: https://taotoken.net/api, apiKeyEnv: TAOTOKEN_API_KEY, model: gpt-4o-mini, timeoutMs: 15000 } }逐项说明。rainbow-fart.enable控制插件总开关设为true才会监听。rainbow-fart.port是本地服务端口默认7777如果被占用可以改成7778但改完要重启 VSCode。rainbow-fart.voicePack指定语音包名称默认包就是default。rainbow-fart.volume是音量范围 0 到 1建议先设0.5试听避免在办公室突然大声。rainbow-fart.triggerMode设为keyword表示按关键字触发。rainbow-fart.cooldownMs是冷却时间防止同一个关键字连续触发太频繁3000 毫秒比较合适。rainbow-fart.debug设为true时会在输出面板打印触发日志排查时很有用。rainbow-fart.taotoken这一段是我为了配合 TaoToken 加的扩展配置。注意Rainbow Fart 原生并不认识这个字段它只是放在settings.json里作为你自己的约定供你后续写脚本或扩展时读取。baseURL固定为https://taotoken.net/api。apiKeyEnv表示从环境变量TAOTOKEN_API_KEY读取 Key而不是直接写明文。model填你计划使用的模型名timeoutMs是请求超时。设置环境变量的方式在 macOS/Linux 的~/.zshrc或~/.bashrc里加一行export TAOTOKEN_API_KEY你的TaoTokenKeyWindows PowerShell 可以用$env:TAOTOKEN_API_KEY你的TaoTokenKey改完环境变量后完全退出 VSCode 再重新打开否则插件进程读不到新变量。4. 验证请求确认 Key 与语音触发都正常配置写完后先别急着写代码。第一步验证 TaoToken Key 是否可用。打开终端用curl发一个最小请求curl -X POST https://taotoken.net/api/chat/completions \ -H Authorization: Bearer $TAOTOKEN_API_KEY \ -H Content-Type: application/json \ -d { model: gpt-4o-mini, messages: [{role: user, content: ping}], max_tokens: 10 }如果返回里包含choices字段说明 Key 和 API 通道是通的。如果返回 401检查 Key 是否复制完整、环境变量是否生效。如果返回 404检查baseURL是否写成了https://taotoken.net/api而不是带其他路径。第二步验证 Rainbow Fart 本身。在 VSCode 里新建一个test.js输入以下内容function hello() { if (true) { console.log(rainbow fart test); } }保存后观察是否听到语音。如果没有声音打开命令面板输入Rainbow Fart: Open Voice Pack Page或者直接浏览器访问http://127.0.0.1:7777/。这个页面会显示当前语音包、已触发的关键字记录。如果你在页面里能看到function或if的触发记录但没声音那就是系统音频输出或音量问题如果连记录都没有说明插件没在监听检查rainbow-fart.enable是否为true以及是否执行过Enable Rainbow Fart。第三步把rainbow-fart.debug设为true然后打开 VSCode 的输出面板选择Rainbow Fart通道。你会看到类似[trigger] keywordfunction, filetest.js的日志。这一步能帮你确认触发链路是“编辑器事件 - 插件 - 音频播放”哪一环断了。实测下来最常见的成功结果是你在test.js里敲下function大约 200 毫秒内听到语音同时127.0.0.1:7777页面里出现一条触发记录。两个信号同时出现才算真正接入成功。5. 本篇常见错排查5.1 插件装了但命令面板找不到 Enable Rainbow Fart这种情况通常是 VSIX 安装没完成或者 VSCode 版本与插件不兼容。先确认Extensions列表里能看到 Rainbow Fart。如果看不到重新执行Extensions: Install from VSIX选择正确的.vsix文件。如果能看到但命令面板搜不到尝试重启 VSCode。部分旧版本插件对 VSCode 1.7x 以上版本支持不好可以去 GitHub 仓库看 issue 里有没有对应版本说明。5.2 端口 7777 被占用页面打不开报错通常是EADDRINUSE。解决办法是把rainbow-fart.port改成7778或8899保存后完全退出 VSCode 再打开。改端口后浏览器访问地址也要同步改成http://127.0.0.1:7778/。如果你不确定端口是否被占用在终端执行lsof -i :7777macOS/Linux或netstat -ano | findstr 7777Windows查看。5.3 有触发记录但没有声音先检查系统音量是否静音再检查 VSCode 是否被系统音频策略限制。macOS 下可以在“系统设置 - 声音 - 输出”里确认输出设备。Windows 下检查“音量合成器”里 VSCode 的音量是否被单独调低。另外rainbow-fart.volume如果设成0也不会有声音。如果用的是蓝牙耳机切换输出设备后可能需要重启 VSCode。5.4 TaoToken 请求返回 401 或 403401 一般是 Key 无效或没带Authorization头。检查curl命令里Bearer后面有没有多余空格Key 是否被换行截断。403 可能是 Key 权限不足或额度问题去控制台https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content查看 Key 状态和用量。如果你在settings.json里用了apiKeyEnv确认环境变量名拼写一致且 VSCode 是从带该环境变量的终端启动的。5.5 改了 settings.json 但行为没变化VSCode 的settings.json有用户级和工作区级两层。如果你改的是工作区级但插件读取的是用户级就会不生效。用命令面板打开Preferences: Open User Settings (JSON)确认你改的是哪一层。另外部分配置项需要重启插件才生效最稳妥的做法是改完后完全退出 VSCode 再打开。6. 继续用 TaoToken 扩展你的编码陪伴链路Rainbow Fart 的语音触发是本地关键字匹配它不依赖网络。但如果你想让语音内容更动态比如根据你当前写的函数名生成一句鼓励语那就需要模型能力介入。这时候 TaoToken 的统一 Key 和 API 通道就派上用场了你可以在本地写一个小脚本读取当前编辑文件的关键字调用https://taotoken.net/api生成一句短文本再通过 TTS 播放。整条链路里Key 只需要在 TaoToken 控制台管理一次。如果你主要做长期编码和 Agent 类任务可以了解 Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content。如果你只是想先验证模型对话是否正常用模型对话页https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content。接入文档在https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentAPI Keys 管理在https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content。如果你用 Claude Code 或 Anthropic 风格接入参考https://taotoken.net/claude-code-anthropic?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content。最后给一个实用技巧把rainbow-fart.debug设为true跑一天看看哪些关键字触发最频繁。如果某个关键字触发太密比如console可以在语音包配置里把它移除或调大cooldownMs。这样既能保留陪伴感又不会吵到自己。
RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进