首页/新闻资讯/正文详情

我让 Claude Code 和 Kiro 同台竞技:用 localStorage 开发网页版功德木鱼,最后竟然是它赢了!

发布时间:2026/9/26 3:26:31 来源:云帆数科 栏目:资讯中心
我让 Claude Code 和 Kiro 同台竞技:用 localStorage 开发网页版功德木鱼,最后竟然是它赢了!
1. 同一个需求丢给两个 AI IDE结果有点意外网页版功德木鱼这个点子说穿了就三件事点一下加一分功德、有个像木鱼的图形、功德数刷新页面还在。听起来简单到不值一提但恰恰是这种小需求最能暴露 AI IDE 的真实水平——因为需求越短模型自由发挥的空间越大最后做出来的东西差距也越明显。我这次把同一句话分别丢给了 Claude Code 和 Kiro做一个网页版木鱼功德工具支持是否存储数据、音效等。两个工具都基于 Claude 系列模型理论上能力接近但实测下来成品差异不小。Claude Code 上来先拆任务列了七步 TODO从 HTML 结构到音效开关再到动画优化一步步推进最后还补了句祝福语流程很规范。Kiro 走的是 vibe 模式直接一口气写了七百多行代码敲木鱼时有弹幕式1 功德飘过下方祝福文字会轮换数据统计还分了今日和总计。问题出在哪Claude Code 的木鱼形状不太像真木鱼而 Kiro 的 UI 更完整、交互更顺。这不是说 Claude Code 不行而是它对简单任务也习惯性做任务规划精力被拆散了有点像杀鸡用牛刀。Kiro 在简单任务上反而更聚焦直接出成品。这篇文章不聊谁强谁弱的口水战而是把两套流程都跑一遍重点落在localStorage 持久化功德数据这个核心环节上给你可复制的配置骨架和验证动作。不管你是用 Claude Code 还是 Kiro只要涉及模型调用统一 Key 的配置方式都能复用。下面从环境准备开始。2. 前置准备用 TaoToken 统一管理两个工具的模型 KeyClaude Code 和 Kiro 虽然都是 AI IDE但它们的模型接入方式不一样。Claude Code 走的是 Anthropic 的接口协议Kiro 有自己的配置体系。如果你两个都想用最省事的做法是准备一个统一的 API Key避免在每个工具里重复填不同厂商的凭证。我这边用的是 TaoToken 作为统一入口官网是 https://taotoken.net/?utm_sourcetaotoken_aicg_blog_endutm_mediumcsdnutm_campaignrewriteutm_content API 地址是 https://taotoken.net/api 。它的作用是让你用一个 Key 就能调用多种模型Claude Code 和 Kiro 都能接。具体操作分三步第一步打开 https://taotoken.net/api-keys 创建 API Key。建议给每个工具单独建一个 Key方便后面排查问题时区分调用来源。第二步Claude Code 的配置。它读取的是settings.json通常放在用户目录下的.claude文件夹里。你需要把 API 地址和 Key 填进去。第三步Kiro 的配置。Kiro 用的是config.toml路径一般在用户配置目录下。同样填入 API 地址和 Key。这里有个细节要注意两个工具的配置文件格式不同但填的 API 地址和 Key 是同一套。这样你只需要在 TaoToken 后台管理一个 Key两个工具都能跑起来。如果你还没建 Key先去 https://taotoken.net/api-keys 拿一个后面配置会用到。3. 可复制配置settings.json 与 config.toml 骨架这一节直接给配置骨架你复制过去改掉 Key 就能用。先看 Claude Code 的settings.json{ env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-你的TaoToken密钥 }, permissions: { allow: [ Read, Write, Edit, Bash ] }, model: claude-sonnet-4-20250514 }几个参数说明一下。ANTHROPIC_BASE_URL指向 TaoToken 的 API 地址注意这里不要加末尾斜杠。ANTHROPIC_API_KEY填你在 https://taotoken.net/api-keys 创建的 Key。permissions.allow是允许 Claude Code 执行的操作类型做木鱼这种小项目Read、Write、Edit、Bash 四个就够了。model字段指定模型你可以根据需要在 TaoToken 支持的模型列表里换。再看 Kiro 的config.toml[api] base_url https://taotoken.net/api api_key sk-你的TaoToken密钥 model claude-sonnet-4-20250514 [editor] auto_save true format_on_save true [agent] mode vibe max_tokens 8192Kiro 的配置里[api]段和 Claude Code 填的是同一套地址和 Key。[agent]段的mode可以选vibe或specsvibe 模式适合简单任务直接出代码specs 模式适合复杂任务先写规格再实现。做木鱼这种小工具vibe 模式就够了。配置改完后两个工具都需要重启才能生效。重启前建议先确认 Key 有没有多余空格这是最常见的低级错误。4. 木鱼核心逻辑localStorage 读写与验证配置好了接下来看木鱼本身。核心就一个文件index.html里面包含结构、样式和脚本。我重点讲 localStorage 这部分因为这是功德数据持久化的关键。先看数据读写的基本结构const STORAGE_KEY merit_wooden_fish; function loadMerit() { const raw localStorage.getItem(STORAGE_KEY); if (!raw) { return { total: 0, today: 0, lastDate: getToday() }; } try { const data JSON.parse(raw); if (data.lastDate ! getToday()) { data.today 0; data.lastDate getToday(); } return data; } catch (e) { return { total: 0, today: 0, lastDate: getToday() }; } } function saveMerit(data) { localStorage.setItem(STORAGE_KEY, JSON.stringify(data)); } function getToday() { const d new Date(); return ${d.getFullYear()}-${d.getMonth() 1}-${d.getDate()}; }这段代码做了三件事读取时如果数据不存在就返回初始值如果日期变了就把今日功德清零写入时把对象序列化成字符串存进 localStorage。try...catch是防止存储数据被手动改坏导致页面崩溃。点击木鱼的逻辑let meritData loadMerit(); function knock() { meritData.total 1; meritData.today 1; saveMerit(meritData); updateDisplay(); playSound(); showFloatText(1 功德); }每次点击总数和今日数都加一然后立刻写回 localStorage。这样即使刷新页面数据也不会丢。验证动作很简单打开页面敲几下木鱼看计数器有没有变化。然后按 F12 打开开发者工具切到 Application 面板在左侧找到 Local Storage点开你的页面域名应该能看到merit_wooden_fish这个键值是类似{total:5,today:5,lastDate:2025-1-15}的 JSON。刷新页面计数器应该还是 5。如果刷新后归零说明 saveMerit 没被调用或者 Key 写错了。音效部分用 Audio 对象加载一个短音频文件点击时调用play()。如果不想用外部文件可以用 Web Audio API 生成一个简单的敲击声避免资源加载失败。5. 两个工具跑同一需求的差异与排障把上面这套逻辑分别交给 Claude Code 和 Kiro你会看到不同的推进方式。Claude Code 会先输出一个任务列表然后逐项完成。它的优势是结构清晰每一步都有交代适合你中途想插手调整。但缺点是对于木鱼这种小需求它也会拆成七八步有时候拆出来的步骤之间会有重复劳动。比如它可能先写了一个不带 localStorage 的版本后面又单独加存储逻辑导致代码需要回头改。Kiro 的 vibe 模式则是一次性生成完整代码七百多行包含 HTML、CSS、JS 和音效处理。它的优势是成品完整度高UI 细节更丰富比如弹幕动画和祝福文字轮换。缺点是如果你想改某个具体环节需要自己在生成的大段代码里定位。实测下来Kiro 在简单任务上的完成度略好Claude Code 在需要分步调试的复杂任务上更稳。这不是模型能力差异而是任务调度策略不同。常见报错排查问题一配置改完没生效。检查配置文件路径对不对。Claude Code 的settings.json在~/.claude/下Kiro 的config.toml在用户配置目录下。改完必须重启工具。问题二API 返回 401。Key 填错了或者过期了。去 https://taotoken.net/api-keys 重新生成一个注意复制时不要带空格。问题三localStorage 数据不持久。检查浏览器是不是开了无痕模式无痕模式下 localStorage 关闭标签页就清空。另外检查代码里STORAGE_KEY是否一致读写用了不同的 Key 就会读不到。问题四音效不播放。浏览器自动播放策略限制首次交互前不能自动播放音频。确保音效是在点击事件里触发的而不是页面加载时触发。问题五Kiro 生成代码后页面空白。检查生成的 HTML 里 script 标签位置如果放在 head 里且没有 defer可能 DOM 还没加载完就执行了。把 script 移到 body 末尾或者加defer属性。6. 接入文档与后续工具选择配置和代码都跑通后如果你想把两个工具都稳定用起来建议把 Key 管理和接入文档放在手边。TaoToken 的接入文档在 https://taotoken.net/doc 里面有不同语言和框架的调用示例Claude Code 和 Kiro 的配置方式都能在里面找到对应说明。对于日常使用我的建议是简单任务直接用 Kiro 的 vibe 模式出活快复杂任务或者需要分步调试的用 Claude Code 或者 Kiro 的 specs 模式先规划再实现。两个工具共用一套 TaoToken Key切换成本很低。如果你还没试过模型对话功能可以先去 https://taotoken.net/chat 体验一下确认 Key 能正常调用模型。长期做编码和 Agent 任务的话Coding Plan 在 https://taotoken.net/coding-plan 有更详细的方案说明。木鱼这个项目本身不大但它把 AI IDE 的配置、模型调用、前端存储、调试排障串成了一条完整的链路。跑通一遍之后你再换其他小工具练手流程是一样的。

相关推荐

快速上手 Codex CLI:用 TaoToken 统一 Key 打通 settings.json 配置
快速上手 Codex CLI:用 TaoToken 统一 Key 打通 settings.json 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 3:26:31

我整理了市面上常见RAG面试题
我整理了市面上常见RAG面试题

RAG 完整描述标准 RAG 全流程每一步的作用 标准 RAG 分为知识库构建和在线问答两大阶段,完整流程共有六步: 文档加载与清洗:加载 PDF、Word、网页等原始数据,清洗乱码、空行、无效内容,统一文档格式,保证数… · 2026/9/26 3:26:31

VSCode 下用 Code Runner 编译运行 C++:TaoToken 统一 Key 配置与 settings.json 骨架
VSCode 下用 Code Runner 编译运行 C++:TaoToken 统一 Key 配置与 settings.json 骨架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 3:26:31

工业化C++:2.std::function、Lambda 与回调机制
工业化C++:2.std::function、Lambda 与回调机制

写在前面&#xff1a;本篇文章为个人 C 学习与工业实践的整合复习笔记&#xff08;上一期我们探讨了智能指针与生命周期管理&#xff09;。内容涵盖可调用对象包装器std::function<>()、Lambda 闭包、成员函数绑定与回调解耦设计。如有错误&#xff0c;欢迎各位大佬指正&… · 2026/9/26 4:11:49

SAP HANA SQLSCRIPT_PRINT 深度解析,从 SQLScript 调试输出到表变量可视化
SAP HANA SQLSCRIPT_PRINT 深度解析,从 SQLScript 调试输出到表变量可视化

在 SAP HANA 中排查存储过程时,经常会遇到一种情况,SQL 语句执行成功,最终返回的数据也没有明显异常,但中间计算过程是否符合预期,却很难直接判断。 例如,我们正在开发一个销售订单统计过程,需要从销售订单明细表中读取数据,计算每个销售组织的订单金额,再根据业务规… · 2026/9/26 4:11:49

活性金属真空钎焊的作用原理 国内的活性金属真空钎焊厂家
活性金属真空钎焊的作用原理 国内的活性金属真空钎焊厂家

活性金属真空钎焊常用于解决陶瓷表面难以被普通金属钎料润湿的问题。钎料中的钛、锆等活性元素在加热过程中向陶瓷界面作用&#xff0c;形成有助于润湿和结合的反应层&#xff1b;熔融钎料随后与金属件形成接头。它尤其值得用于评估氧化铝、氮化铝等陶瓷与金属的封接&#xff0… · 2026/9/26 4:11:43

数据中心冷却系统水泵控制解决方案与选型指南
数据中心冷却系统水泵控制解决方案与选型指南

一、数据中心冷却水泵控制面临的挑战 在数据中心场景下&#xff0c;冷却循环水泵系统运行稳定性直接关系机房设备安全与整体运营效率。传统水泵控制方式普遍存在以下痛点&#xff1a; 1.人工值守效率低&#xff1a;需要专人 24 小时监控水位、压力等参数&#xff0c;机房点位分… · 2026/9/26 4:11:43

只改几行配置,何必先等巨型 IDE 冷启动?用 Caravel 轻量编辑器收口
只改几行配置,何必先等巨型 IDE 冷启动?用 Caravel 轻量编辑器收口

摘要&#xff1a; 只想改 .env.example 或一段文案时&#xff0c;IDEA 冷启动加索引往往要一分钟。本文演示在 Caravel 里从任务旁打开编辑器、改文件、对照 Diff——日常 Agent 协作的主场是工作台&#xff0c;不是被 IDE 绑架。官网 Demo 可跟练。 官网地址&#xff1a;https… · 2026/9/26 4:11:43

Calling【牛客tracker  每日一题】
Calling【牛客tracker 每日一题】

Calling 时间限制&#xff1a;1 秒 空间限制&#xff1a;256M 网页链接 牛客tracker 牛客tracker & 每日一题&#xff0c;完成每日打卡&#xff0c;即可获得牛币。获得相应数量的牛币&#xff0c;能在【牛币兑换中心】&#xff0c;换取相应奖品&#xff01;助力每日有题做… · 2026/9/26 4:11:43

数据库课后习题答案别硬背:当测试用例集刷,效率翻倍
数据库课后习题答案别硬背:当测试用例集刷,效率翻倍

简介&#xff1a;万常选版《数据库原理与设计》课后习题答案资源&#xff0c;覆盖第2至6章及第9章&#xff0c;适合正在学习关系模型、数据库建模、关系数据理论与模式求精的本科生、自学者作为复习与自测材料。压缩包共7个文件&#xff0c;含3个doc参考答案、2个sql示例脚本、… · 2026/9/26 0:00:21

OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置
OpenClaw 替代品?Hermes Agent 踩坑实录:macOS 飞书接入 TaoToken 配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/26 0:00:40

向下兼容与向上兼容:接口设计中的兼容性策略与工程实践
向下兼容与向上兼容:接口设计中的兼容性策略与工程实践

一次版本升级事故&#xff0c;是很多团队绕不过去的坎。线上环境里&#xff0c;服务端明明已经上线了新版接口&#xff0c;老的移动端还在照着旧文档传参数。请求一到网关&#xff0c;校验直接拒绝&#xff0c;用户操作失败&#xff0c;客服群炸了锅&#xff0c;开发群里开始互… · 2026/9/26 0:00:46

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码