乐于分享
好东西不私藏

Claude Code 源码被「复刻」了,有人用 1000 行 Python 重写了它,还有隐藏的赛博宠物

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 quitlist 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