Nanocode:一款小巧、零依赖的 Python AI 助手

Nanocode – 小巧、零依赖的 Python AI 助手

在 AI 工具经常以庞大包或复杂设置方式打包的世界中,Nanocode 以其优雅、极简的姿态脱颖而出。它是一段单文件 Python 脚本(约 250 行),再现 Claude Code 风格的代理循环,提供一系列强大的文件与 shell 工具,并且除了常规 Python 运行时之外,无需任何外部依赖。

为什么选 Nanocode? – 解决的问题

  • 迭代速度:在毫秒级别添加新工具或调整行为,无需重新安装任何库。
  • 可移植性:随时拷贝文件,在任何装有 Python 3.8+ 的机器上运行。
  • 透明度:与黑盒解决方案不同,完整代码可见,便于学习和调试。
  • 零外部库:无需 pip install 重包,适合 CI 环境或低内存设备。

核心功能一览

功能 描述
代理循环 持续的提示-响应循环,具备调用工具的能力
内置工具 readwriteeditglobgrepbash —— 代理可以直接调用的本地操作
彩色输出 终端端的丰富可视化提示、响应与工具结果
模型灵活性 内置支持 Anthropic 的 Claude,亦可通过环境变量切换到任何 OpenRouter 模型
命令快捷键 /c 清除历史,/qexit 退出

快速开始

# Clone the repo or download the single `nanocode.py` file
git clone https://github.com/1rgs/nanocode.git
cd nanocode

# Set your Anthropic API key
export ANTHROPIC_API_KEY="your-key"

# Or, set an OpenRouter key for a broader model list
export OPENROUTER_API_KEY="your-key"

# Optional – pick a specific model (default is Claude 3.5 Sonnet)
export MODEL="openai/gpt-5.2"

# Run it
python nanocode.py

进入 REPL 后,你可以开始让 AI 读取文件、编辑它们,甚至执行 shell 命令!例如:

> what files are here?

─────────────────────────────────
❯ glob(**/*.py)

工具会响应,调用 glob 函数,脚本随后打印匹配的文件名,演示代理如何直接调用工具。

扩展 Nanocode

添加新的自定义工具非常简单: 1. 定义一个执行所需动作的函数。例如,compress 工具。 2. 将其注册到 tool_registry 字典中。 3. 代理现在即可通过名称调用 compress

# 示例:一个简单的 compress 工具
from zipfile import ZipFile

def compress(src, dst):
    with ZipFile(dst, 'w') as z:
        for root, _, files in os.walk(src):
            for f in files:
                z.write(os.path.join(root, f), arcname=f)

# Register
tool_registry['compress'] = compress

之后,你可以让代理执行以下指令:

> create a zip of the src folder

它将自动执行你的 compress 工具。

社区与贡献

项目保持非常简洁的代码库,成为贡献者的理想游乐场。你可以随意: - 打开 issue 以报告 bug 或请求功能。 - Fork 并提交 pull request,添加新工具或提升性能。 - 添加文档或更新 README,加入你自己的示例。

在 1500+ 星标和日益增长的极简 AI 工具兴趣下,Nanocode 已成为下一波轻量级 AI 助手的坚实基础。

终极感悟

Nanocode 展示了强大的 AI 交互不一定需要庞大的框架。无论你是在原型一个自定义数据管道、实验嵌入式 AI 助手,还是仅仅想看到 Claude 样式循环如何运作,这段小脚本都能切入噪声。拿去运行,让你的想象力——以及终端——自行发挥。

原创文章: 查看原文

分享本文