Skip to content

HiErqi/open-claude-code-cli

Repository files navigation

claude-code-sourcemap

linux.do

Warning

This repository is unofficial and is reconstructed from the public npm package and source map analysis, for research purposes only. It does not represent the original internal development repository structure.

本仓库为非官方整理版,基于公开 npm 发布包与 source map 分析还原,仅供研究使用不代表官方原始内部开发仓库结构。 一切基于L站"飘然与我同"的情报提供

概述

本仓库通过 npm 发布包(@anthropic-ai/claude-code)内附带的 source map(cli.js.map)还原 TypeScript 源码,并整理成可直接在仓库根目录执行 npm run build 的项目结构。当前对应版本为 2.1.88

来源

  • npm 包:@anthropic-ai/claude-code
  • 还原版本:2.1.88
  • 还原文件数:4756 个(含 1884 个 .ts/.tsx 源文件)
  • 还原方式:提取 cli.js.map 中的 sourcesContent 字段

当前目录结构

.
├── src/                  # 还原后的主源码
├── vendor/               # vendor 源码与本地依赖实现
├── node_modules/         # 还原出的依赖内容
├── scripts/              # 本地构建与清理脚本
├── package.json          # 根目录 npm 项目入口
├── tsconfig.json         # 本地构建配置
├── claude-code-2.1.88.tgz
└── recovery-artifacts/   # 提取阶段残留(原 package/、extract 脚本等)

src/ 目录说明

src/
├── __runtime__/    # 本地补的构建兼容层,如 bun:bundle / bun:ffi shim
├── assistant/      # 助手模式相关逻辑
├── bootstrap/      # 启动阶段的全局状态与初始化
├── bridge/         # Remote Control / bridge 能力
├── buddy/          # 伴侣 UI / companion 相关功能
├── cli/            # CLI 输出、传输层、handler 辅助逻辑
├── commands/       # Slash commands 与命令实现
├── components/     # Ink/React 组件
├── constants/      # 常量、提示词、开关与静态配置
├── context/        # React Context 定义
├── coordinator/    # 多 Agent / coordinator 模式
├── entrypoints/    # 主入口、SDK 入口、CLI 入口
├── hooks/          # 自定义 hooks
├── ink/            # 终端 UI 渲染层与底层 Ink 实现
├── keybindings/    # 键位系统
├── memdir/         # Memory / team memory 目录能力
├── migrations/     # 配置与状态迁移
├── moreright/      # more right 相关交互能力
├── native-ts/      # 以 TS 重写的 native/vendor 能力
├── outputStyles/   # 输出样式加载
├── plugins/        # 插件系统
├── query/          # query 过程中的配置与辅助逻辑
├── remote/         # 远程会话与远程管理
├── schemas/        # schema 定义
├── screens/        # 页面级终端界面
├── server/         # 服务器侧会话与连接逻辑
├── services/       # API、MCP、分析、同步等服务层
├── skills/         # 技能系统
├── state/          # 全局状态与 store
├── tasks/          # 任务模型与后台任务
├── tools/          # Tool 实现
├── types/          # 类型定义
├── upstreamproxy/  # 上游代理能力
├── utils/          # 通用工具函数
├── vim/            # Vim 模式
└── voice/          # 语音相关功能

构建

要求:

  • Node.js >= 24
  • npm

构建命令:

npm run build

构建结果:

  • 输出目录:dist/
  • CLI 入口:dist/cli.js

验证示例:

node dist/cli.js --version

打包与安装

编译完成后,可以先打包成 npm 安装包,再安装到本机或分发给其他环境。

推荐流程:

npm run clean
npm run build
npm pack
npm install -g ./src-2.1.88-restored.tgz
claude-local --version

说明:

  • npm pack 会在仓库根目录生成 .tgz 安装包,文件名来自 package.json 中的 nameversion
  • 当前仓库对应产物名为 src-2.1.88-restored.tgz;如果你修改版本号,文件名也会变化
  • 全局安装后,命令名是 claude-local,由 package.json 中的 bin 字段决定
  • private: true 只会阻止 npm publish,不影响本地 npm packnpm install -g

如果只是本机使用,不需要保留 .tgz 文件,也可以直接从当前目录安装:

npm run clean
npm run build
npm install -g .
claude-local --version

使用 MiniMax

这一节按 MiniMax 官方文档里的 Claude Code MCP 配置方式整理,并结合本仓库的 claude-local 命令名做了适配。

参考文档:

  • MiniMax 官方文档:https://platform.minimaxi.com/docs/token-plan/mcp-guide#手动配置

前置准备

  1. 准备好 Token Plan 的 API Key
  2. 安装 uvx
  3. 验证 uvx 可执行

仓库里提供了可提交的模板文件 env.minimax.example.sh。 建议先复制一份本地私有配置,再在当前 shell 中加载:

cp env.minimax.example.sh .env.minimax.local.sh
source ./.env.minimax.local.sh

验证 uvx

which uvx

如果后续遇到 spawn uvx ENOENT,说明当前环境找不到 uvx,需要补 PATH,或者把下面配置里的 command 改成 uvx 的绝对路径。

最小启动方式:

claude-local --permission-mode bypassPermissions

说明:

  • bypassPermissions 更适合你当前这类本地直连使用场景,能跳过权限确认;仅建议在你完全信任的仓库和环境中使用
  • ANTHROPIC_BASE_URLANTHROPIC_AUTH_TOKENANTHROPIC_MODEL 等模型接入参数放在环境变量中
  • 通过第三方 ANTHROPIC_BASE_URL 接入 MiniMax 时,建议同时设置 ENABLE_TOOL_SEARCH=true,否则这个仓库会更保守地关闭 ToolSearch
  • 只配置模型后即可开始编码;但 web_search、图片理解等增强能力建议通过 MCP 补齐

方式一:一键注册 MiniMax MCP

下面的命令与官方文档的 Claude Code 示例一致,只是把命令名换成了本仓库安装后的 claude-local。执行一次后,后续启动会自动加载:

claude-local mcp add -s user MiniMax \
  --env MINIMAX_API_KEY="$MINIMAX_API_KEY" \
  --env MINIMAX_API_HOST="${MINIMAX_API_HOST:-https://api.minimaxi.com}" \
  -- uvx minimax-coding-plan-mcp -y

注册完成后,直接启动:

claude-local --permission-mode bypassPermissions

进入会话后输入 /mcp,能看到 web_searchunderstand_image,说明配置成功。

方式二:按官方文档手动配置 ~/.claude.json

如果你想完全按官方文档的手动配置方式来,可以直接编辑 ~/.claude.json,加入下面这段:

{
  "mcpServers": {
    "MiniMax": {
      "command": "uvx",
      "args": ["minimax-coding-plan-mcp", "-y"],
      "env": {
        "MINIMAX_API_KEY": "你的 MiniMax API Key",
        "MINIMAX_API_HOST": "https://api.minimaxi.com"
      }
    }
  }
}

然后启动:

claude-local --permission-mode bypassPermissions

进入会话后同样用 /mcp 验证是否已经挂载 web_searchunderstand_image

方式三:使用仓库内的 --mcp-config 显式加载

如果你希望把 MiniMax MCP 配置跟随项目一起管理,而不是写到用户全局的 ~/.claude.json,也可以新建 minimax.mcp.json

{
  "mcpServers": {
    "MiniMax": {
      "type": "stdio",
      "command": "uvx",
      "args": ["minimax-coding-plan-mcp", "-y"],
      "env": {
        "MINIMAX_API_KEY": "${MINIMAX_API_KEY}",
        "MINIMAX_API_HOST": "${MINIMAX_API_HOST:-https://api.minimaxi.com}"
      }
    }
  }
}

然后使用:

source ./.env.minimax.local.sh
claude-local --permission-mode bypassPermissions --mcp-config minimax.mcp.json

补充说明:

  • ~/.claude.json 是更接近官方文档的用法
  • --mcp-config minimax.mcp.json 更适合把配置纳入项目文件管理
  • 敏感值适合放环境变量,例如 MINIMAX_API_KEY
  • 如果使用环境变量展开,本仓库支持 ${VAR}${VAR:-default} 形式
  • env.minimax.example.sh 是可提交模板;.env.minimax.local.sh 适合放你自己的真实 key
  • MINIMAX_MCP_BASE_PATHMINIMAX_API_RESOURCE_MODE 不是 Claude Code 快速接入的必填项;只有在你明确需要 MiniMax MCP 的本地资源输出模式时再加

说明

  • 仓库根目录现在就是项目根目录,不再需要进入 restored-src/
  • .build-tools/ 为本地构建时自动安装的构建工具目录
  • dist/.build-tools/ 以及构建时自动补出的 node_modules/**/package.json 已加入 .gitignore
  • recovery-artifacts/ 仅用于保留提取阶段参考材料,不参与日常构建

声明

  • 源码版权归 Anthropic 所有
  • 本仓库仅用于技术研究与学习,请勿用于商业用途
  • 如有侵权,请联系删除

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors