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

原汁原味 Claude Code 可运行版源码:Bun/Node 双环境 CLI 配置与验证

发布时间:2026/9/27 22:29:24 来源:云帆数科 栏目:资讯中心
原汁原味 Claude Code 可运行版源码:Bun/Node 双环境 CLI 配置与验证
1. 先把场景说清楚为什么要折腾 Claude Code 可运行版源码Claude Code 是 Anthropic 官方推出的终端 AI 编程工具能在命令行里直接读写文件、跑命令、调工具很多人把它当成“住在终端里的结对程序员”。但官方 CLI 是打包后的产物想研究它内部怎么组织 REPL、怎么做工具调用循环、怎么做权限校验光看黑盒行为是不够的。于是社区里出现了把 Claude Code 工程化能力复现出来的可运行版源码项目目标是把大部分功能还原成能读、能改、能自己构建的 TypeScript 工程。这个场景真正卡人的地方不在“有没有源码”而在“源码拿到手之后怎么在本地跑起来”。这类项目通常用 Bun 做包管理和构建产物又要能同时被 Bun 和 Node 启动中间还牵扯 feature flag polyfill、monorepo workspace、code splitting 多文件打包。你如果只按普通 Node 项目的习惯去npm install node index.js大概率会撞上一堆莫名其妙的报错。这篇就聚焦一件事把可运行版源码在 Bun 与 Node 双环境下跑通 CLI并且接上统一的 API 通道做连通性验证。适合已经在本地做开发调试、想读源码或二次改造的人。下面给的settings.json、config.toml骨架和启动命令都可以直接复制我会把每一步的预期结果和常见坑一起写清楚。2. 前置准备TaoToken 统一 Key 与 API 通道源码跑起来只是第一步CLI 要真正能对话、能调工具得有一个稳定的模型 API 入口。我这边习惯用 TaoToken 做统一通道原因是它把 Key 管理和 API 地址收敛成一套Bun 和 Node 两种运行时读同一份配置就行不用为每个环境单独改 base URL。你需要先拿到一个 API Key。进入控制台创建即可控制台入口https://taotoken.net/console?utm_sourcetaotoken_aicg_blog_endutm_contentconsoleutm_campaignrewriteAPI Key 管理https://taotoken.net/api-keys?utm_sourcetaotoken_aicg_blog_endutm_contentapi-keysutm_campaignrewrite创建完 Key 之后API 的基础地址是https://taotoken.net/api注意这个地址后面不要带 UTM 参数直接作为 base URL 写进配置。模型名按你实际要用的填比如做代码任务常用的 Claude 系列模型标识。提示Key 只存在本地配置文件或环境变量里不要提交到 git。源码项目里如果有.env.example照着复制成.env再填。如果你后面要长期跑编码任务或者接 Agent 流程可以顺带了解下 Coding Plan额度模型更适合持续调用Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite3. 可复制配置settings.json 与 config.toml 骨架Claude Code 系工具一般会读两类配置一类是 JSON 格式的 settings管权限、hook、模型一类是 TOML 格式的 config管 provider 和认证。下面给的是最小可跑骨架你按自己路径改。先看settings.json放在项目根目录或用户配置目录下{ model: claude-sonnet-4-5, apiProvider: anthropic, permissions: { mode: manual, allow: [ Read, Glob, Grep ], deny: [ Bash(rm -rf:*) ] }, hooks: { preToolUse: [], postToolUse: [] }, env: { ANTHROPIC_BASE_URL: https://taotoken.net/api, ANTHROPIC_API_KEY: sk-your-key-here } }这里几个字段值得说明。permissions.mode用manual最稳工具调用前会问你想省事可以改auto但本地调试阶段不建议一上来就放开。deny里挡掉危险命令是基本操作Bash(rm -rf:*)这种模式匹配能拦住大部分误删。再看config.toml管 provider 通道[provider] name taotoken base_url https://taotoken.net/api api_key_env ANTHROPIC_API_KEY timeout_seconds 120 [provider.models] default claude-sonnet-4-5 fast claude-haiku-4-5 [runtime] prefer bun node_fallback trueapi_key_env指向环境变量名这样 Key 不落盘在 TOML 里更干净。runtime.prefer设成bun但保留node_fallback正好对应我们要验证的双环境。环境变量在 shell 里导出export ANTHROPIC_BASE_URLhttps://taotoken.net/api export ANTHROPIC_API_KEYsk-your-key-hereWindows PowerShell 用$env:ANTHROPIC_API_KEYsk-...。这一步做完Bun 和 Node 启动时都能读到同一份通道配置。4. 双环境启动Bun 与 Node 分别怎么跑源码项目一般用 Bun workspaces 管理 monorepo构建脚本是build.ts产物输出到dist/入口是dist/cli.js加一堆 chunk 文件。先确认 Bun 版本这个项目对 Bun 版本很敏感版本低了会出一堆奇怪 BUGbun --version # 期望 1.3.11 bun upgrade升级完装依赖bun install开发模式启动看到版本号打印出来就说明入口通了bun run dev构建产物bun run build构建采用 code splitting 多文件打包产物在dist/下入口dist/cli.js加约 450 个 chunk。构建完成后Bun 和 Node 都能启动这个产物这是这个项目比较关键的一点。用 Bun 跑构建产物bun dist/cli.js --version用 Node 跑同一个产物node dist/cli.js --version两个命令都应该打印出版本号。如果 Bun 能跑、Node 报模块解析错误多半是构建后处理没把 Node 兼容层打进去检查build.ts里 Node.js 兼容后处理那段是否执行。注意开发模式bun run dev和构建产物dist/cli.js是两条路径。调试源码逻辑用前者验证发布形态用后者别混着排查问题。5. 连通性验证发一次真实请求确认通道打通版本号能打印只说明 CLI 起来了不代表 API 通道通。做一次最小请求验证。先确认环境变量在当前 shell 生效echo $ANTHROPIC_BASE_URL echo $ANTHROPIC_API_KEY | head -c 8第一个应输出https://taotoken.net/api第二个输出 Key 前 8 位。然后跑一个 print 模式的单次请求bun dist/cli.js -p 用一句话说明当前目录下有哪些文件类型预期结果是模型返回一段描述并且 CLI 内部会触发 Glob 或 Read 工具去读目录。如果你在settings.json里设了manual权限会先弹出工具确认输入允许后继续。Node 环境同样验证一遍node dist/cli.js -p 输出当前工作目录路径两次都返回正常内容说明 Bun/Node 双环境加统一 API 通道全部打通。想更直观地看模型对话效果也可以直接在网页端模型对话里试同一个 Key模型对话https://taotoken.net/model-chat?utm_sourcetaotoken_aicg_blog_endutm_contentmodel-chatutm_campaignrewrite如果请求返回 401是 Key 或环境变量问题返回 404多半是 base URL 写成了带路径的形式确认是https://taotoken.net/api而不是别的拼接。6. 本篇常见错排查Bun 版本过低导致构建失败。现象是bun run build中途报feature()未定义或 chunk 生成异常。这个项目入口cli.tsx顶部注入了feature()polyfill让所有 feature flag 返回 false跳过未实现分支。Bun 版本低时 polyfill 注入时机可能不对。先bun upgrade到 1.3.11 以上再试。Node 启动产物报Cannot find module。构建产物是 code splitting 多文件chunk 之间用相对路径引用。如果你把dist/cli.js单独拷出来跑chunk 找不到就报这个。要么整个dist/目录一起移动要么在dist/目录内执行。API 请求超时。先看config.toml里timeout_seconds默认 120 秒对长上下文可能不够调到 300 试试。再确认网络能访问https://taotoken.net/api用 curl 快速探一下curl -s -o /dev/null -w %{http_code} https://taotoken.net/api返回非 5xx 说明通道可达问题在认证或请求体。工具调用被权限拦住不执行。manual模式下每次工具调用都要确认调试时容易以为是卡死。要么在交互里按提示允许要么临时把permissions.mode改成auto但记得改回来。feature flag 相关功能全部不可用。这是预期行为。原版通过构建时注入 flag 控制灰度这个项目里feature()恒返回 false所以 KAIROS、BRIDGE_MODE、VOICE_MODE 这类功能都是关闭的。你看到某些斜杠命令或工具不生效先查它是不是挂在某个 flag 下别当成 bug 提。接入和排障过程中如果遇到认证配置问题可以对照接入文档再核一遍参数接入文档https://taotoken.net/doc?utm_sourcetaotoken_aicg_blog_endutm_contentdocutm_campaignrewrite7. 继续往下走从跑通到改造跑通之后比较自然的下一步是读src/entrypoints/cli.tsx和src/main.tsx看 Commander 怎么定义子命令、REPL 怎么用 Ink 渲染。工具调用循环在query.ts会话状态在QueryEngine.ts权限系统单独一块代码量不小但结构清晰。想改行为优先从settings.json的 hook 和权限规则入手比直接改源码风险低。如果你打算把这个 CLI 接进长期编码流程或者 Agent 编排单次 Key 调用会很快碰到额度管理问题Coding Plan 那套更适合持续跑Coding Planhttps://taotoken.net/coding-plan?utm_sourcetaotoken_aicg_blog_endutm_contentcoding-planutm_campaignrewrite最后提醒一句这类复现项目更新很快构建脚本和目录结构可能隔几天就变。遇到和本文不一致的地方以仓库当前build.ts和package.json为准先跑bun install再bun run build大部分问题都能定位到具体那一步。

相关推荐

C++ std::string 面试 20 问:从 size 到 SSO,背完直接上场
C++ std::string 面试 20 问:从 size 到 SSO,背完直接上场

C std::string 面试 20 问:从 size 到 SSO,背完直接上场 摘要 面试官问“sizeof(std::string) 是多少”,你答 32 字节,他追问“为什么不是 24”,你卡住了。本文把 std::string 面试中最常被追问的 20 个问题整理成可直… · 2026/9/27 22:29:24

MCP Server开发教程:用TaoToken统一Key打通本地工具链配置
MCP Server开发教程:用TaoToken统一Key打通本地工具链配置

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

DeepSeek 开源的 Agent Harness 怎么给团队试?本地 dsh web 起在 127.0.0.1,用 cpolar 短时开放给异地同事看只读会话
DeepSeek 开源的 Agent Harness 怎么给团队试?本地 dsh web 起在 127.0.0.1,用 cpolar 短时开放给异地同事看只读会话

DeepSeek 开源的 Agent Harness 怎么给团队试?本地 dsh web 起在 127.0.0.1,用 cpolar 短时开放给异地同事看只读会话上周想拉两个异地同事一起看一个 agent 会话跑成什么样,结果卡在一个很普通的事上:DeepSeek 官方开源的智能体框… · 2026/9/27 22:29:18

用 C++ 写 Web 服务实战(五):SSL/TLS、HTTP/2 与生产环境部署
用 C++ 写 Web 服务实战(五):SSL/TLS、HTTP/2 与生产环境部署

用 C 写 Web 服务实战(五):SSL/TLS、HTTP/2 与生产环境部署 前四篇我们从零搭起了 Web 应用,走完了路由、中间件、文件上传、WebSocket 实时通信和服务端推送。到这为止,你的 C 服务在功能层面已经完整了。但功能完整… · 2026/9/27 23:01:32

ViT 不是和 Transformer 并列的东西:真正该对比的是 CNN 和 Transformer 两套看图方式
ViT 不是和 Transformer 并列的东西:真正该对比的是 CNN 和 Transformer 两套看图方式

摘要:本文先纠正一个常见误区——ViT 并不是和 Transformer 并列的独立架构,它就是 Transformer 在视觉任务上的落地版本。真正值得对比的是 CNN 和 Transformer 这两套“看图方式”:CNN 靠局部窗口层层堆叠扩大视野,省参数、适合… · 2026/9/27 23:01:32

SpringBoot新手最容易忽略的7个细节
SpringBoot新手最容易忽略的7个细节

很多新手跑通第一个接口就以为掌握了SpringBoot,结果上线后才发现坑一个比一个深。框架帮你做了太多默认决策,你不问为什么,它就默认你懂。可这些默认值,恰恰是生产事故的源头。启动类的位置,决定了包扫描的边界Spring… · 2026/9/27 23:01:32

pastel 0.12.0 Windows x64 下载:颜色查看与格式转换示例
pastel 0.12.0 Windows x64 下载:颜色查看与格式转换示例

pastel 0.12.0 Windows x64 下载 官方发行页 本文整理 pastel 0.12.0 的 Windows x64 MSVC 压缩包。备用入口经草料提示页进入夸克,点击“继续访问”后查看文件;实际登录与下载要求以页面为准。 下载文件 文件名:pastel-v0.12.0-x86_64-p… · 2026/9/27 23:01:32

Yolov8训练使用蔬菜检测数据集 蔬菜12类检测 voc yolo 并实现可视化及评估 土豆鸡蛋辣椒胡萝卜黄瓜数据集进行检测
Yolov8训练使用蔬菜检测数据集 蔬菜12类检测 voc yolo 并实现可视化及评估 土豆鸡蛋辣椒胡萝卜黄瓜数据集进行检测

使用Yolov8训练使用蔬菜检测数据集 7400张 蔬菜12类检测 带标注 voc yolo 并实现可视化及评估 蔬菜检测数据集 7400张 蔬菜12类检测 带标注 voc yolo 分类名: (图片张数,标注个数) cabbage: (2097, 2842) potato: (961,3224) onion: (3028&am… · 2026/9/27 23:01:32

Java面试中JVM调优问题,这样回答直接拿offer
Java面试中JVM调优问题,这样回答直接拿offer

面试官推了推眼镜,抛出那个让无数Java程序员心跳加速的问题:“你们线上JVM是怎么调优的?”有人开始背参数,有人直接说“用默认的”,有人把Xmx和Xms念了一遍就没了下文。这个问题之所以难,不是因为它有多深奥… · 2026/9/27 23:01:26

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现
MATLAB雷达信号脉冲压缩仿真:LFM线性调频、匹配滤波与距离分辨率实现

简介:这套Matlab仿真工具完整呈现雷达信号脉冲压缩过程,从线性调频(LFM)信号生成、目标回波仿真到匹配滤波压缩处理均有可运行代码支撑,面向电子信息工程、计算机、数学等专业学生,适用于课程设计、期末大作… · 2026/9/27 0:00:01

汕头网站建设制作厂家避坑指南:5大注意事项救急
汕头网站建设制作厂家避坑指南:5大注意事项救急

汕头网站建设制作厂家避坑指南:5大注意事项救急 改个需求建站公司拖一周,这种憋屈事我见得太多了。 很多汕头老板找本地建站团队,签合同前看着方案挺美,一上线就变脸。 今天不聊虚的,直接拆解找 汕头网站建设制作厂家 时的5个核心 注意事项… · 2026/9/27 0:00:01

多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习
多模态虚假新闻检测实战:BERT+ResNet双塔与对比学习

简介:基于PyTorch的多模态虚假新闻检测项目完整代码包,面向自然语言处理与计算机视觉交叉方向的开发者、科研人员及毕业设计选题者,解决社交媒体中文本与图像联合识别虚假新闻的问题。系统以BERT预训练模型提取文本语义特征,以Res… · 2026/9/27 0:00:01

了解更多?预约专属演示

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

企业微信二维码