Claude Code 源码被「复刻」了,有人用 1000 行 Python 重写了它,还有隐藏的赛博宠物
各位朋友好啊,我是小伙子。
Claude Code 的源码在社区引发广泛讨论之后,GitHub 上出现了一个名叫 cc-mini 的项目——用不到 1000 行 Python,把 Claude Code 的核心逻辑重新实现了一遍。它不是玩具,有完整的 Agent 工具循环、会话持久化、上下文压缩、沙盒隔离,还包含几个官方尚未公开发布的「隐藏功能」,例如有一只住在终端里的 Tamagotchi 风格赛博宠物。
01 源码出现之后
Claude Code 是 Anthropic 推出的终端 AI 编程助手,主打「让 AI 直接在你的代码库里干活」——读文件、改代码、跑命令,一条龙。
但是,就在昨天。
Claude Code 源码意外泄露:一扇门开了,都看见了什么?
随后,GitHub 上出现了cc-mini这个项目。作者将 Claude Code 的核心逻辑提炼成约 1000 行 Python,重新实现了一遍。
项目地址:(https://github.com/e10nMa2k/cc-mini/tree/main)
而令人惊讶的是,cc-mini 不仅复刻了核心,还率先实现了几个存在于 Claude Code 官方源码中、但Anthropic 尚未正式发布的高级功能。
02 cc-mini 是什么
一句话概括:在终端里运行的轻量级 AI 编程助手,自主调用工具完成任务,支持会话持久化,兼容 Anthropic 和 OpenAI 双协议。
核心实现约 1000 行 Python,比官方版轻得多,但核心逻辑完整:
- 交互式 REPL
命令历史、键盘快捷键、流式输出 - Agent 工具循环
AI 自主连续调用工具,直到完成任务 - 6 个内置工具
Read、Edit、Write、Glob、Grep、Bash - 权限系统
读操作自动通过,写操作和 Bash 命令需用户确认 - 会话管理
会话持久化、上下文压缩、断点续接 - Skills 技能系统
可复用的一键工作流( /review、/commit、/test等)
03 快速上手
安装
一行命令,无需 sudo:
curl -fsSL https://raw.githubusercontent.com/e10nMa2k/cc-mini/main/install.sh | bash
需要 Python 3.10+,沙盒功能需要 Linux + bubblewrap(apt install bubblewrap),其他功能全平台可用。
脚本会把仓库克隆到 ~/.cc-mini,创建独立虚拟环境,并在 ~/.local/bin 放置 cc-mini 启动器。
安装后配置 API Key与启动:
export ANTHROPIC_API_KEY=sk-ant-...cc-mini
支持 OpenAI 兼容协议
cc-mini 同时支持 OpenAI 兼容接口,可以接 OpenRouter 的免费模型:
cc-mini \--provider openai \--base-url https://openrouter.ai/api/v1 \--api-key sk-or-... \--model qwen3.5
运行起来是这样的
cc-mini type 'exit' or Ctrl+C to quit> list all python files in this project↳ Glob(**/*.py) ✓Here are all the .py files...> read engine.py and fix the off-by-one bug↳ Read(src/core/engine.py) ✓↳ Edit(src/core/engine.py) ✓Fixed: loop range changed from len(n) to len(n)-1
6 个内置工具与权限设计
cc-mini 内置了 6 个工具,分两个权限等级:

04 会话管理:不怕崩溃,随时续接
cc-mini 的会话管理做得相当完整。
会话持久化
每次对话自动保存为 JSONL 文件,存在 ~/.mini-claude/sessions/ 下,消息增量写入,即使进程崩溃也不丢内容。
# 列出历史会话> /history# 续接某个会话> /resume 2> /resume a3f2b # 也可以用 session ID 前缀
上下文压缩
当对话变得很长时,cc-mini 支持把旧消息压缩成结构化摘要,保留最近消息完整性:
> /compact # 用默认 prompt 压缩> /compact 重点保留认证模块的工作内容 # 带自定义指令压缩
超过 10 万 token 时自动触发,也可以手动执行。
压缩时会把对话拆成「历史」和「最近」两部分,历史部分交给 API 生成摘要,工具调用和结果对不会被拆断。
05 Skills 技能系统
Skills 是 cc-mini 里很有用的设计——把常用的工作流封装成斜杠命令,不需要每次解释要做什么。
4 个内置技能
/review:只读代码 Review,分析 git diff 后报告问题,不修改文件:
> /review## Code Review Report### Warning- fib_recursive() 未处理负数输入- 缺少类型注解### Suggestion- 考虑加 @functools.lru_cache
/simplify:Review 之后直接修复——消除重复代码、提升质量:
> /simplify↳ Bash(git diff) ✓↳ Read(fib.py) ✓↳ Edit(fib.py) ✓已修复:添加负数检查、类型注解、lru_cache
/commit:自动生成 commit 消息并提交:
> /commit 添加 fibonacci 模块↳ Bash(git add fib.py && git commit -m "feat: add fibonacci") ✓
/test:自动识别测试框架,运行并分析失败原因:
> /test↳ Bash(python -m pytest tests/ -v) ✓All 3 tests passed ✓所有技能都支持附加参数:> /review 只检查 API 路由> /simplify 重点关注安全问题> /test 只运行 test_auth.py
自定义技能
在 .cc-mini/skills/你的技能名/SKILL.md 里写一份 Markdown 提示词,就能创建自定义技能。
技能可以放在三个位置:

06 三个「超前实现」的隐藏功能
以下功能存在于 Claude Code 官方源码中,但 Anthropic 尚未正式对外发布。
功能一:Coordinator 协调者模式
普通模式下,助手自己一步步完成任务。Coordinator 模式下,主助手变成协调者,可以后台启动多个 Worker 并行处理不同子任务。
cc-mini --coordinator
Worker 可以独立完成:研究代码库、实现某个改动、验证结果……完成后把结果以 <task-notification> 消息的形式注入主对话,协调者再综合决策。
协调者专用工具:

适合处理「研究 + 实现 + 验证」这类需要并行推进的复杂任务。
功能二:KAIROS 跨会话记忆系统
普通 AI 每次对话都是从零开始。KAIROS 让 cc-mini 能记住跨会话的信息,并自动整合。
> /remember 我偏好 Python 而不是 JavaScript> /remember 项目使用 gRPC + PostgreSQL> /dream # 手动整合每日日志到结构化记忆文件> /memory # 查看当前记忆索引
记忆存储在 ~/.mini-claude/memory/。「Auto-dream」会自动触发:当距上次整合超过 24 小时且新增会话数 ≥ 5 时,系统会在某次回复后自动跑一轮整合,把日志聚合成按主题分类的记忆文件。
下次启动时,AI 会读取这些记忆,知道你的偏好和项目背景。
功能三:Buddy — 终端里的赛博宠物
这是 cc-mini 最「离谱」但也最有趣的功能。
每个用户的终端里会住着一只 AI 宠物,它看你写代码,偶尔在气泡里发表评论:
> help me fix this bugFound the issue — off-by-one error in the loop...(×>) Glitch Honker: Off-by-one again,经典。> Glitch 你觉得这段代码怎么样?(×>) Glitch Honker: 能跑就别问我哲学问题。
宠物是怎么生成的?
-
用你的用户名作为随机种子(Mulberry32 PRNG),保证同一个用户每次得到同一只宠物 -
共18 种基础物种:鸭子、鹅、史莱姆、猫、龙、章鱼、猫头鹰、企鹅、乌龟、蜗牛、幽灵、轴螈、水豚、仙人掌、机器人、兔子、蘑菇、胖橘猫 - 5 种稀有度
:普通(60%)、非凡(25%)、稀有(10%)、史诗(4%)、传说(1%),还有 1% 闪光概率 - 5 个数值
(0-100):Debugging、Patience、Chaos、Wisdom、Snark——这些数值影响宠物的说话风格
性格在第一次孵化时由 Claude 生成,永久保存。高 Snark 的宠物说话很毒,高 Patience 的则温柔鼓励,高 Chaos 的不可预测。
隐藏彩蛋:皮卡丘

设置特定种子,可以解锁皮卡丘(点阵 ASCII 艺术):
export CC_MINI_BUDDY_SEED=pikachu-3361 # 传说级皮卡丘cc-mini> /buddy
功能四:Sandbox 沙盒隔离
基于 Linux 的 bubblewrap(bwrap),给每个 Bash 命令套一个沙盒:
-
整个文件系统只读挂载 -
只有当前工作目录可写 -
网络访问默认隔离 -
配置文件受保护,AI 改不了
07 项目结构概览
cc-mini 的代码组织得很清晰,每个模块职责单一,是学习 Agent 工程的好材料:
src/core/├── engine.py # 核心:流式 API 循环 + 工具执行├── context.py # 系统提示构建(git 状态、日期、记忆)├── coordinator.py # 协调者模式逻辑├── config.py # 配置管理(CLI / 环境变量 / TOML)├── commands.py # 斜杠命令系统 + 技能分发├── session.py # 会话持久化(JSONL)├── compact.py # 上下文压缩├── skills.py # 技能加载与注册├── memory.py # KAIROS 记忆系统├── permissions.py # 权限检查 + 沙盒自动通过├── worker_manager.py # 后台 Worker 生命周期├── sandbox/ # 沙盒子系统(bwrap 封装)├── tools/ # 6 个工具实现└── buddy/ # 赛博宠物系统
密度最高的两个文件:engine.py(工具循环)和 compact.py(上下文压缩),加起来能把整个框架的运作机制讲清楚。
08 最后
Agent 循环本身并不复杂。
核心逻辑就是:让 LLM 选择工具 → 执行工具 → 把结果喂回去 → 循环。
真正的工程挑战在于边界情况——工具失败怎么处理、输出超长怎么截断、用户中断怎么优雅退出。
权限模型是实用性的关键。
读操作自动通过、写操作人工确认,加上沙盒隔离——这套组合在实际使用中防止了大量「AI 好心办坏事」的情况。
会话管理决定工具是否真的可用。
长对话的上下文压缩、崩溃恢复、多会话切换——这些「配套设施」往往决定一个工具是原型玩具还是日常可用的生产工具。
记忆系统是 Agent 的下一个维度。
感谢您读到这里。我是小伙子。
本公众号的内容仅用于交流与学习。
文章中如有技术或理论上的疏漏,欢迎在留言区指出,理性讨论、共同进步。
可以交个朋友,微信:yy_00_ff

夜雨聆风