# my-cluade-code **Repository Path**: lynyujiang/my-cluade-code ## Basic Information - **Project Name**: my-cluade-code - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-06-24 - **Last Updated**: 2026-06-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Claude Code v2.1.88 - Source Restored > 从 `@anthropic-ai/claude-code@2.1.88` 的 Source Map 完整还原的 TypeScript 源码,可独立构建运行。 ## 项目简介 Claude Code 是 Anthropic 推出的 AI 编程助手命令行工具。本项目通过解析 npm 发布包中的 `.js.map` 文件还原了完整的 TypeScript 源码树。 - **版本**: `2.1.88` - **源文件**: 2,100+ 个 `.ts/.tsx` - **构建工具**: Bun (bundler + compiler) - **UI 框架**: React 19 + 自定义 Ink 终端渲染器 ## 分支说明 - `orig` — 原始还原源码,仅作参考,不再改动 - `master` — 开发分支,`claude/src/` 可直接编译 ## 项目结构 ``` claude-code/ ├── claude/ # Claude Code 标准版(cc) │ ├── src/ # 2100+ 源码 │ ├── dist/claude # 构建产物(116MB 原生二进制) │ ├── package.json # 构建:bun build → dist/claude │ └── tsconfig.json ├── mcc/ # Mini Claude Code(单文件 ~400 行) │ ├── src/mcc.ts # 核心源码 │ ├── dist/mcc # 构建产物(91MB 原生二进制) │ └── .mcc-skills/ # 技能文件(可选) ├── Dockerfile Makefile # 共享构建工具 ├── docs/ # 架构 + 原理文档 ├── Todo.md AGENTS.md # 项目指引 └── node_modules/ # 依赖(gitignore) ``` ## 安装与运行 提供四种方式,按需选择。 --- ### 方式一:Docker 一键部署(推荐) **原理**:Dockerfile 构建开发镜像,Makefile 管理全生命周期。源码通过挂载透传,构建在容器内完成。环境隔离、无宿主依赖。 **前提**:仅需安装 Docker。 ```bash git clone https://gitee.com/lynyujiang/my-cluade-code.git cd claude-code # 创建 .env 配置文件(值不加引号) cat > .env << 'EOF' ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic ANTHROPIC_AUTH_TOKEN=你的API密钥 ANTHROPIC_MODEL=deepseek-v4-pro[1m] ANTHROPIC_DEFAULT_OPUS_MODEL=deepseek-v4-pro[1m] ANTHROPIC_DEFAULT_SONNET_MODEL=deepseek-v4-pro[1m] ANTHROPIC_DEFAULT_HAIKU_MODEL=deepseek-v4-flash CLAUDE_CODE_SUBAGENT_MODEL=deepseek-v4-flash CLAUDE_CODE_EFFORT_LEVEL=max EOF # 一键就绪 make all # 运行 make run ARGS="-p '你好'" # 进入容器交互 Shell(和官方安装体验一致) make shell claude -p "你好" ``` | 命令 | 说明 | |------|------| | `make all` | 构建镜像 → 安装依赖 → 编译 → 冒烟测试 | | `make cc-build` | 编译标准版 → `claude/dist/claude` | | `make cc-test` | 冒烟测试 | | `make cc-run ARGS="-p '...'"` | 单次问答 | | `make cc-run` | 交互模式(需 TTY) | | `make mcc-build` | 编译轻量版 → `mcc/dist/mcc` | | `make shell` | 进入容器 Shell | | `make clean` | 清理构建产物 | > `make build / test / run` 是 `cc-build / cc-test / cc-run` 的快捷别名。 --- ### 方式二:原生二进制(和官方相同打包方式) **原理**:`bun build --compile` 将 TypeScript 源码 + Bun 运行时打包为**单个自包含二进制文件**,无需安装 Node.js。和官网 `curl .../install.sh | bash` 下载的是同一个东西。 **前提**:仅需安装 Bun。 ```bash git clone https://gitee.com/lynyujiang/my-cluade-code.git cd claude-code/claude bun install bun run build # → dist/claude(~116MB) # 配置 API export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic export ANTHROPIC_AUTH_TOKEN=你的API密钥 export ANTHROPIC_MODEL=deepseek-v4-pro[1m] # 运行 ./dist/claude -p "你好" ./dist/claude --version ./dist/claude # 交互模式 ``` **分发**:产物 `dist/claude` 是单个文件,复制到任意 Linux x64 机器直接运行: ```bash scp dist/claude user@server:/usr/local/bin/ ssh user@server claude --version ``` --- ### 方式三:npm link 全局安装 **原理**:`npm link` 在系统 `PATH` 中创建 `claude` 符号链接,指向 `dist/claude`。和 `npm install -g` 效果相同。 **前提**:安装 Bun。 ```bash git clone https://gitee.com/lynyujiang/my-cluade-code.git cd claude-code bun install bun run build npm link # 注册全局命令 # 现在和官方安装体验完全一致 claude -p "你好" claude --version claude # 交互模式 # 取消 npm unlink -g @anthropic-ai/claude-code ``` --- ### 方式四:Docker Alias(宿主机无 Node.js/Bun) **原理**:在 Shell 配置中添加 alias,让宿主机的 `claude` 命令自动通过 Docker 运行。 **前提**:仅需安装 Docker。 ```bash git clone https://gitee.com/lynyujiang/my-cluade-code.git ~/.claude-code cd ~/.claude-code # 创建 .env cat > .env << 'EOF' ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic ANTHROPIC_AUTH_TOKEN=你的API密钥 ANTHROPIC_MODEL=deepseek-v4-pro[1m] ANTHROPIC_DEFAULT_OPUS_MODEL=deepseek-v4-pro[1m] ANTHROPIC_DEFAULT_SONNET_MODEL=deepseek-v4-pro[1m] ANTHROPIC_DEFAULT_HAIKU_MODEL=deepseek-v4-flash CLAUDE_CODE_SUBAGENT_MODEL=deepseek-v4-flash CLAUDE_CODE_EFFORT_LEVEL=max EOF # 构建 make all # 添加 alias 到 ~/.bashrc cat >> ~/.bashrc << 'EOF' alias claude='docker run --rm -i -u $(id -u):$(id -g) --env-file ~/.claude-code/.env -v ~/.claude-code:/app -w /app claude-code-dev claude' EOF source ~/.bashrc claude -p "你好" # 直接在宿主机使用 ``` --- ## 四种方式对比 | | Docker 一键 | 原生二进制 | npm link | Docker Alias | |---|---|---|---|---| | 宿主依赖 | Docker | Bun | Bun | Docker | | 构建时间 | 首次 ~3min | ~0.5s | ~0.5s | 首次 ~3min | | 全局命令 | `make run ARGS="..."` | `./dist/claude` | `claude` | `claude` | | 启动速度 | Docker 启动开销 | 二进制直接运行 | 二进制直接运行 | Docker 启动开销 | | 适合场景 | 开发迭代 | 分发部署 | 日常使用 | 临时使用 | --- ## cc vs mcc 项目提供两个版本: **cc** — Claude Code 标准版:2100+ 源码,React + Ink TUI,55+ 工具,MCP/Agent。 **mcc** — Mini Claude Code:单文件 ~400 行,8 个核心工具,即用即走。 | | cc | mcc | |---|---|---| | 源码 | 2100+ 文件 | 1 文件 ~400 行 | | 工具 | 55+ | 8(Bash/Read/Write/Edit/Grep/Glob/WebFetch/Todo) | | 产物 | 116MB | 91MB | | UI | React + Ink | console.log + REPL | | 流式输出 | ✅ | ✅ | | 多轮对话 | ✅ | ✅ | | 会话持久化 | ✅ | ✅ | | 技能系统 | ✅(19 个) | ✅(.mcc-skills/) | | `-c` 恢复 | ✅ | ✅ | ### mcc 快速使用 ```bash make mcc-build && make mcc-test # 构建 + 测试 make mcc-run ARGS="-p '你好'" # 单次问答 make mcc-run ARGS="-c -p '继续'" # 恢复会话 make shell && mcc # REPL 交互 mcc> /skill linux # 激活技能 mcc> /model deepseek-v4-flash # 切换模型 ``` ## API 配置 ### 切换 Provider ```ini # DeepSeek(完整配置) ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic ANTHROPIC_AUTH_TOKEN=你的密钥 ANTHROPIC_MODEL=deepseek-v4-pro[1m] ANTHROPIC_DEFAULT_OPUS_MODEL=deepseek-v4-pro[1m] ANTHROPIC_DEFAULT_SONNET_MODEL=deepseek-v4-pro[1m] ANTHROPIC_DEFAULT_HAIKU_MODEL=deepseek-v4-flash CLAUDE_CODE_SUBAGENT_MODEL=deepseek-v4-flash CLAUDE_CODE_EFFORT_LEVEL=max ``` ```bash # 环境变量(其他方式) export ANTHROPIC_BASE_URL=https://api.anthropic.com # Anthropic 官方 export ANTHROPIC_BASE_URL=https://api.deepseek.com/anthropic # DeepSeek export CLAUDE_CODE_USE_BEDROCK=1 # AWS Bedrock export CLAUDE_CODE_USE_VERTEX=1 # Google Vertex ``` > **注意**:`.env` 文件中值**不能加引号**,Docker `--env-file` 会把引号当作字面量。 ## 已知限制 - Anthropic 内部包(`@ant/*`、`@anthropic-ai/sandbox-runtime`)仅有 stub,不影响核心功能 - 原生 N-API 模块以 TypeScript 替代(color-diff、yoga-layout 已完整实现) - 交互模式(无 `-p`)需要 TTY 终端 - `strict: false`,类型检查有大量 warning ## License 本项目仅用于学习和研究目的。Claude Code 原始代码版权归 Anthropic 所有。