Skip to content

Worker-AGI/Nano-Claude-Code

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nano Claude Code

3 天从零复刻 Claude Code 90% 核心功能 —— 仅 ~1400 行 Python

English Version

项目简介

Claude Code 是 Anthropic 推出的 AI 编程助手 CLI,功能强大但闭源。这个项目证明:用 ~1400 行 Python + 任意开源大模型,就能复刻它 90% 的核心能力。

不依赖 Anthropic API,兼容任何 OpenAI 接口 —— DeepSeek、Qwen、Llama、Ollama、vLLM 等均可直接使用。

为什么做这个项目

  • Claude Code 很好用,但闭源、绑定 Anthropic API、按 token 计费
  • 开源社区需要一个足够简单、可以看懂、可以改的替代方案
  • 这个项目把 Claude Code 的核心架构拆解成 7 个文件,每个文件都能在 10 分钟内读完

3 天开发路线

天数 目标 成果
Day 1 核心循环 LLM 对话 + 5 个基础工具(bash/读写/搜索)+ Streaming + REPL
Day 2 进阶能力 Edit 精确编辑 + 上下文压缩 + 多 Agent 并发
Day 3 完整体验 记忆系统 + Plan 模式 + Task 管理 + Web 抓取 + Hook + 权限 + Notebook

最终:7 个文件,~1400 行,13 个工具,20 项功能对标 Claude Code。

快速开始

1. 安装依赖

pip install openai

2. 配置

cp .env.example .env

编辑 .env,填入你的 API 信息:

NANO_API_KEY=your_api_key
NANO_BASE_URL=your_base_url
NANO_MODEL=your_model_name

兼容:OpenAI、DeepSeek、Qwen、vLLM、Ollama 等任何 OpenAI 兼容接口。

3. 启动

# 交互模式
python3 main.py

# 单次执行
python3 main.py -c "找出所有包含 TODO 的 Python 文件"

# 命令行覆盖配置
python3 main.py --model your_model --base-url https://your-api/v1 --api-key your_key

架构原理

核心循环非常简单:

用户输入 → LLM → 返回 tool_calls?
                   ├─ 是 → 执行工具 → 结果喂回 LLM → 继续循环
                   └─ 否 → 打印回答 → 等待下一次输入

就这么简单。记忆、规划、压缩、Agent 等所有高级功能,都构建在这个循环之上。

nano-claude-code/
├── main.py       # REPL + 工具循环 + 斜杠命令            (217 行)
├── client.py     # OpenAI 兼容流式客户端                   (93 行)
├── tools.py      # 13 个工具:定义 + 执行                  (625 行)
├── session.py    # 消息管理 + 上下文压缩                   (161 行)
├── config.py     # .env 配置加载                           (19 行)
├── memory.py     # 跨会话持久记忆                          (72 行)
└── features.py   # Plan 模式 + 任务管理 + Hook 系统        (175 行)

13 个内置工具

工具 功能
bash 执行 Shell 命令(危险命令需确认)
read_file 读取文件内容(支持行范围)
write_file 创建或覆写文件
edit_file 精确字符串替换编辑(类似 Claude Code 的 Edit)
grep 正则搜索文件内容,返回行号
glob 按模式查找文件(支持 **/*.py
agent 启动子 Agent,独立会话,并行执行
web_fetch 抓取 URL 内容,自动将 HTML 转为文本
notebook_read 读取 Jupyter Notebook 所有 cell 和输出
notebook_edit 编辑指定 Notebook cell
memory_save 保存信息到持久记忆(跨会话)
memory_search 检索或列出已保存的记忆
task_manage 创建、更新、跟踪任务

功能对比:Claude Code vs Nano

功能 Claude Code Nano 开发日
LLM 驱动的工具循环 Yes Yes Day 1
Bash 命令执行 Yes Yes Day 1
文件读写 Yes Yes Day 1
Grep / Glob 搜索 Yes Yes Day 1
Streaming 输出 Yes Yes Day 1
危险命令确认 Yes Yes Day 1
会话保存/加载 Yes Yes Day 1
精确编辑(diff) Yes Yes Day 2
上下文自动压缩 Yes Yes Day 2
子 Agent(并发) Yes Yes Day 2
多工具并行执行 Yes Yes Day 2
记忆系统 Yes Yes Day 3
Plan 模式 Yes Yes Day 3
Task 管理 Yes Yes Day 3
Web 抓取 Yes Yes Day 3
Notebook 编辑 Yes Yes Day 3
Hook 系统 Yes Yes Day 3
权限系统 Yes Yes Day 3
MCP 服务器协议 Yes No
IDE 集成 Yes No
Git Worktree 隔离 Yes No

20 / 23 项功能已实现,覆盖约 90% 的日常编程工作流。

缺失的 3 项(MCP、IDE 插件、Worktree)属于生态层面,不影响核心编程能力。

REPL 命令

命令 说明
/help 显示所有命令
/save 保存会话到 .nano_sessions/
/plan 进入 Plan 模式
/plan-add <步骤> 添加一个计划步骤
/plan-show 查看当前计划
/plan-run 执行计划
/plan-exit 放弃计划并退出
/tasks 查看任务列表
/memory 列出所有记忆
/memory-del <key> 删除一条记忆
exit / quit 退出

配置说明

环境变量

变量 默认值 说明
NANO_API_KEY API 密钥(必填)
NANO_BASE_URL https://api.openai.com/v1 API 地址
NANO_MODEL gpt-4o 模型名称
NANO_MAX_TOKENS 4096 单次回复最大 token
NANO_MAX_ROUNDS 50 单轮最大工具调用轮数
NANO_CONTEXT_LIMIT 100000 上下文压缩触发阈值

权限配置(~/.nano_claude_code/permissions.json

{
  "auto_allow": ["read_file", "glob", "grep"],
  "deny": ["bash:rm -rf /"]
}

Hook 配置(~/.nano_claude_code/hooks.json

{
  "pre_tool": {"bash": "echo 'about to run bash'"},
  "post_tool": {},
  "pre_turn": "",
  "post_turn": ""
}

工具名填 "*" 可匹配所有工具。

读完代码你会学到什么

  1. AI 编程 Agent 的工作原理 —— Claude Code、Cursor、Windsurf 背后的 tool-call 循环
  2. Function Calling 实战 —— OpenAI 兼容的工具 schema 定义、分发和结果处理
  3. 上下文窗口管理 —— 自动压缩,让长对话不会爆
  4. Agent 编排 —— 子 Agent 隔离会话、并行执行
  5. 权限与安全设计 —— 如何防止 AI 执行危险命令

推荐阅读顺序:config.pyclient.pytools.pysession.pymain.pymemory.pyfeatures.py

贡献

欢迎 PR,以下是一些可以做的方向:

  • MCP(Model Context Protocol)支持
  • Web 搜索工具(Google/Bing API)
  • PDF / 图片读取(多模态)
  • 使用 rich/textual 的终端 UI
  • 会话回放与分享

License

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages