ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

萌妹子语音陪你写代码:Rainbow Fart VSCode 插件配置与验证

萌妹子语音陪你写代码:Rainbow Fart VSCode 插件配置与验证 1. Rainbow Fart 插件是什么适合谁用来提升编码氛围Rainbow Fart 是一款在 VSCode 里运行的语音反馈插件核心玩法是监听你敲下的关键字然后播放一段和代码语义贴近的中文语音。比如你写下function、if、for、try这些词它就会用萌妹子音色给你一句鼓励或者吐槽。它不是代码补全工具也不参与编译纯粹是给长时间对着编辑器的人加一点情绪价值。我第一次装它是在一个赶需求的深夜敲到catch的时候突然冒出一句“别怕错误总会过去的”当时确实笑了一下。它的定位很清晰适合独立开发者、远程办公的人、以及喜欢在本地环境里折腾个性化配置的 VSCode 用户。如果你在公司开放工位建议戴耳机或者把音量调到很低否则同事可能会先被你逗笑。插件本身是开源项目遵循 MIT 协议作者把语音包和触发规则放在 GitHub 上维护。它默认支持 JavaScriptES6常用关键字自带 34 个音频文件还包含按时间触发的语音比如提醒吃午饭、下班关怀。语音包的配置文件里预留了性别字段意味着你可以自己替换成男声、方言或者任何你喜欢的音色。需要先说明一点Rainbow Fart 本身不依赖任何大模型 API它是纯本地关键字匹配加音频播放。但如果你后续想用 AI 生成自定义语音文案或者把语音触发和代码解释、注释生成结合起来就需要一个统一的模型调用通道。我在实践里用 TaoToken 来管理这类模型请求把 Key 和 Base URL 收在一处避免在多个插件和脚本之间来回切换配置。下面会先讲插件安装和语音包配置再讲怎么把模型调用通道接进来。2. TaoToken 前置准备统一 Key 与 API 通道管理在讲具体配置之前先把你可能用到的模型调用通道准备好。Rainbow Fart 本体不需要联网但如果你想扩展它的玩法比如让 AI 根据当前代码上下文生成一句专属鼓励语再通过语音包播放出来那就需要一个稳定的 API 入口。TaoToken 在这里的角色是统一管理 Key、Base URL 和模型 ID让你在 VSCode 插件、命令行工具和脚本之间复用同一套凭证。我试过把 Key 散落在各个插件的 settings.json 里结果换一次 Key 要改五六个地方还容易漏。后来改成统一走 TaoToken 的 API 地址所有工具都指向同一个 Base URL维护成本低很多。你需要先拿到两样东西API Key 和模型 ID。API Key 在控制台的 API Keys 页面创建模型 ID 根据你要用的能力选择比如做代码解释选通用对话模型做语音文案生成选文本生成模型。访问入口建议直接收藏这几个地址后面配置会反复用到官网入口https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_contentAPI 地址https://taotoken.net/api模型对话体验https://taotoken.net/models?utm_sourcetaotoken_aicg_blog_endutm_campaignrewriteCoding Plan 长期编码方案https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_campaignrewrite控制台https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_campaignrewriteAPI Keys 管理https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_campaignrewrite接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_campaignrewrite拿到 Key 之后不要直接写死在代码里。我习惯把它放到系统环境变量或者 VSCode 的用户级 settings.json 里这样换机器或者分享配置时不会泄露。下面是一个通用的环境变量写法Linux/macOS 用.zshrc或.bashrcWindows 用系统属性里的环境变量面板export TAOTOKEN_API_KEYsk-你的实际Key export TAOTOKEN_BASE_URLhttps://taotoken.net/api如果你用的是 Claude Code 或者 Cline 这类支持 Anthropic 协议的插件Base URL 要写成https://taotoken.net/api模型 ID 按文档里列出的填。Codex 的auth.json里则把OPENAI_API_KEY和OPENAI_BASE_URL对应替换。这三件套——Base URL、Key、Model ID——在任何接入场景里都要保持一致否则会出现 401 或者模型找不到的报错。3. 可复制配置Rainbow Fart 安装与语音包路径设置这一节是全文操作最密集的部分跟着做就能跑起来。先装插件再配语音包最后把模型通道接进去。3.1 安装 Rainbow Fart 插件因为语音包是中文的插件没有上架 VSCode 官方商店需要从 GitHub 下载 VSIX 文件手动安装。打开 VSCode按Ctrl Shift PmacOS 是Command Shift P呼出命令面板输入Extensions: Install from VSIX回车后选择你下载好的.vsix文件。安装完成后再次呼出命令面板输入Enable Rainbow Fart并回车启动。启动后右下角会弹出一个通知点击Open按钮或者直接在浏览器访问http://127.0.0.1:7777/。这个本地页面是插件的控制台你可以在里面试听语音、查看触发关键字、调整音量。注意这个端口只监听本机不要改成0.0.0.0避免局域网里其他人也能访问。3.2 语音包目录与配置文件插件默认的语音包放在扩展安装目录下的voices文件夹里。如果你想替换成自己的语音或者调整触发规则需要找到这个路径。在 VSCode 里按Ctrl Shift P输入Open Rainbow Fart Voice Directory它会直接帮你打开语音包目录。目录结构大致是这样voices/ default/ config.json audio/ function.mp3 if.mp3 for.mp3 ...config.json是核心配置文件里面定义了每个关键字对应的音频文件、语音文本、性别字段。你可以复制一份default文件夹重命名为my-voice然后修改里面的音频和文案。下面是一个精简后的配置片段展示关键字和音频的映射关系{ name: my-voice, version: 1.0.0, contributes: { keywords: [ { pattern: function, audio: audio/function.mp3, text: 又写函数啦记得加注释哦, gender: female }, { pattern: catch, audio: audio/catch.mp3, text: 捕获到异常别慌慢慢调, gender: female } ] } }改完配置后在控制台页面点击Reload或者重启 VSCode新语音包就会生效。如果你想让 AI 动态生成text字段的内容可以写一个脚本读取当前文件的关键字调用 TaoToken 的 API 生成文案再写回config.json。这样每次触发语音时听到的都是结合当前代码上下文的新句子。3.3 接入 TaoToken 的 settings 片段如果你用 Cline 或者 Claude Code 这类插件来辅助生成语音文案需要在 VSCode 的settings.json里配置模型通道。按Ctrl Shift P输入Preferences: Open User Settings (JSON)加入下面这段{ cline.apiProvider: openai, cline.openaiApiKey: sk-你的实际Key, cline.openaiBaseUrl: https://taotoken.net/api, cline.openaiModelId: 你的模型ID }如果你用的是 Claude Code 的 Anthropic 协议配置项名称会不同但三件套不变Base URL 填https://taotoken.net/apiKey 填sk-开头的字符串Model ID 按文档里的模型列表填。Codex 的auth.json则写成{ OPENAI_API_KEY: sk-你的实际Key, OPENAI_BASE_URL: https://taotoken.net/api }这里要提醒一句不要把生产数据库的连接串或者真实用户数据传给模型语音文案生成只需要当前文件的关键字和少量上下文脱敏后再发请求。4. 验证请求与成功结果触发语音并检查模型调用配置完成后先验证 Rainbow Fart 本身能不能正常发声。新建一个.js文件输入function如果听到语音说明插件和语音包都正常。如果没有声音检查控制台页面里的音量滑块是不是被拉到最低或者系统输出设备是不是选错了。接着验证模型通道。在 Cline 或者 Claude Code 里发一条测试请求比如让它解释一段代码。如果返回正常说明 Base URL、Key、Model ID 三件套配置正确。你也可以用curl直接测 API 连通性curl -X POST https://taotoken.net/api/v1/chat/completions \ -H Authorization: Bearer sk-你的实际Key \ -H Content-Type: application/json \ -d { model: 你的模型ID, messages: [{role: user, content: 用一句话鼓励正在写代码的人}] }返回的 JSON 里如果choices数组有内容说明通道通了。我实测下来从发出请求到收到响应通常在几百毫秒到两秒之间取决于模型和网络。如果返回401先检查 Key 有没有多余空格如果返回model not found检查 Model ID 是否和文档里一致。最后做一个联动验证写一个脚本读取当前打开的 JS 文件里的关键字调用 TaoToken 生成一句鼓励语写入config.json的text字段然后触发语音。整个过程跑通就说明 Rainbow Fart 和模型通道已经串起来了。5. 本篇常见错排查401、local proxy failed 与 reading choices这一节列几个我踩过的坑以及对应的排查路径。报错信息我尽量保留原文方便你对照。401 Unauthorized最常见的原因是 Key 写错或者带了多余字符。检查settings.json或环境变量里的 Key 是不是以sk-开头有没有换行符。如果你用的是 Claude Code注意 Anthropic 协议和 OpenAI 协议的 Key 格式可能不同别混用。另外Key 被删除或过期也会返回 401去控制台的 API Keys 页面确认状态。local proxy failed这个报错通常出现在你配置了本地代理端口但代理服务没启动。如果你没有用代理检查settings.json里有没有残留的http.proxy配置。VSCode 的网络设置和插件自己的 Base URL 是两回事插件走的是你填的https://taotoken.net/api不需要额外代理。把无关的代理配置删掉重启 VSCode 再试。reading choices 报错这个一般出现在模型返回结构不符合预期时。比如你用的模型 ID 对应的是 Embedding 模型但请求发的是 Chat Completions 格式返回里就没有choices字段。检查 Model ID 是不是对话模型请求路径是不是/v1/chat/completions。如果返回的是流式数据解析方式也要对应调整。OAuth 相关报错如果你用 Claude Code 的 OAuth 登录方式但同时又配了 API Key可能会冲突。建议二选一要么用 OAuth 登录要么用 Key 认证。用 Key 认证时确保auth.json或settings.json里没有残留的 OAuth token。语音不触发先确认插件已经Enable控制台页面能打开。然后检查当前文件的语言模式是不是 JavaScript默认语音包只对 JS 关键字生效。如果你写的是 TypeScript 或 Python需要在config.json里补充对应的关键字规则。端口 7777 被占用Rainbow Fart 默认用 7777 端口如果被其他程序占用控制台打不开。可以在插件设置里改端口或者关掉占用该端口的程序。改端口后记得同步更新你访问的 URL。6. 长期编码与 Agent 场景把语音反馈接入工作流如果你只是偶尔娱乐装完插件、配好语音包就够了。但如果你像我一样长期远程办公想把语音反馈变成工作流的一部分可以考虑几个扩展方向。第一个方向是用 Coding Plan 管理长期的模型调用额度。Rainbow Fart 本身不消耗 token但如果你用它触发 AI 生成语音文案、代码解释或者提交信息调用量会慢慢累积。Coding Plan 适合这种持续编码场景不用每次单独充值额度按周期结算。入口在 https://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_campaignrewrite。第二个方向是把语音触发和 Agent 结合。比如你写了一个TODOAgent 自动生成一条提醒语音或者你提交代码前Agent 检查有没有遗漏的console.log然后用语音告诉你。这类玩法需要你在脚本里调用模型接口Base URL 和 Key 复用前面配好的那套。第三个方向是自定义语音包。你可以录自己的声音或者用 TTS 生成不同音色替换audio目录下的文件。配置文件里的gender字段只是标记不影响播放你可以填任何值。如果想让语音包支持多语言在config.json里加locale字段然后按语言分目录存放音频。最后提醒一点语音反馈是辅助不要让它打断你的心流。我自己的做法是把音量控制在刚好能听见的程度并且只对关键错误和长时间未保存这类事件触发语音。日常的if、for触发可以关掉避免每敲一行就响一次。你可以在控制台页面里逐个关键字开关找到适合自己的节奏。如果你在配置过程中遇到文档里没覆盖的报错先去接入文档的排障章节对照错误码大部分问题都能定位。模型通道的 Key 和 Base URL 建议定期轮换控制台里可以一键生成新 Key 并禁用旧的。语音包目录记得纳入版本管理换机器时直接同步过去省得重新配一遍。
返回列表