Nanocode:一款小巧、零依赖的 Python AI 助手
Nanocode – 小巧、零依赖的 Python AI 助手
在 AI 工具经常以庞大包或复杂设置方式打包的世界中,Nanocode 以其优雅、极简的姿态脱颖而出。它是一段单文件 Python 脚本(约 250 行),再现 Claude Code 风格的代理循环,提供一系列强大的文件与 shell 工具,并且除了常规 Python 运行时之外,无需任何外部依赖。
为什么选 Nanocode? – 解决的问题
- 迭代速度:在毫秒级别添加新工具或调整行为,无需重新安装任何库。
- 可移植性:随时拷贝文件,在任何装有 Python 3.8+ 的机器上运行。
- 透明度:与黑盒解决方案不同,完整代码可见,便于学习和调试。
- 零外部库:无需
pip install重包,适合 CI 环境或低内存设备。
核心功能一览
| 功能 | 描述 |
|---|---|
| 代理循环 | 持续的提示-响应循环,具备调用工具的能力 |
| 内置工具 | read、write、edit、glob、grep 与 bash —— 代理可以直接调用的本地操作 |
| 彩色输出 | 终端端的丰富可视化提示、响应与工具结果 |
| 模型灵活性 | 内置支持 Anthropic 的 Claude,亦可通过环境变量切换到任何 OpenRouter 模型 |
| 命令快捷键 | /c 清除历史,/q 或 exit 退出 |
快速开始
# 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 样式循环如何运作,这段小脚本都能切入噪声。拿去运行,让你的想象力——以及终端——自行发挥。
原创文章:
查看原文