Skip to content

QIanGua/nanocc

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Nano Claude Code (nanocc)

nanocc 是 Claude Code 的最小核心系统实现,仅需一个 Python 脚本即可运行。它实现了一个完整的 Agent 循环(Agent Loop),支持工具调用(Tool Use)和多轮对话。

Architecture Diagram

✨ 特性

  • 极简实现:单文件约 300 行代码,易于理解和定制。
  • Agent 循环:自动处理 tool_use 响应,循环执行直到任务完成。
  • 核心工具集
    • read_file: 读取本地文件。
    • edit_file: 写入/编辑本地文件。
    • bash: 执行终端命令。
  • 鲁棒性
    • 完善的 API 错误处理(认证失败、权限不足、频率限制、连接超时等)。
    • 自动伪装 User-Agent 以绕过 Cloudflare 拦截。
    • 支持自定义 API 端点(Base URL)。
  • 现代工具链:支持 uv 运行,内联依赖声明。

🚀 快速开始

1. 安装环境

推荐使用 uv 运行:

# 无需手动安装依赖,uv 会自动处理
uv run nano_cc.py

或者使用 pip 安装依赖:

pip install anthropic
python nano_cc.py

2. 配置环境变量

nanocc 支持通过环境变量进行身份验证:

# 使用 Anthropic 官方 API
export ANTHROPIC_API_KEY="your-api-key"

# 或使用第三方代理 (如 aicoding.sh)
export ANTHROPIC_AUTH_TOKEN="your-token"
export ANTHROPIC_BASE_URL="https://api.aicoding.sh"

🛠 工具定义

Agent 可以使用以下工具与系统交互:

  • read_file(path): 获取文件内容的字符串。
  • edit_file(path, content): 将 content 覆盖写入 path
  • bash(command): 执行 shell 命令并返回 stdout/stderr。

💻 代码示例

除了直接运行脚本,你也可以在自己的代码中引用它:

from nano_cc import MinimalClaudeCode

agent = MinimalClaudeCode(
    api_key="your-key",
    base_url="https://api.anthropic.com"
)

result = agent.run("统计当前目录下的 py 文件数量")
print(result)

📝 许可证

MIT

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages