NanoClaw 是一个运行在容器中的个人 Claude 助手,通过 WhatsApp 与用户交互。它使用 Claude Agent SDK 在隔离的 Linux 容器中运行 Claude Code,提供安全的文件访问和任务执行能力。
简介
NanoClaw 通过 .env 配置文件管理 Claude API 认证,支持多种接入方式。
相关资料:
- 官方仓库: https://github.com/gavrielc/nanoclaw
- 项目配置:
src/config.ts - 环境变量:
.env - 密钥读取:
src/env.ts - SDK 调用:
container/agent-runner/src/index.ts
方法一:Defapi(推荐 - 半价优惠)
Defapi 是一个兼容 Anthropic API 的代理服务,价格仅为官方的半价,非常适合 NanoClaw 这类需要长期运行的个人 AI 助手。
Defapi 支持以下协议:
v1/chat/completions接口v1/messages接口v1beta/models/接口
接入步骤
- 注册 Defapi 账号
访问 Defapi 平台,注册账号并获取 API Key。
- 配置 .env 文件
在 NanoClaw 项目根目录编辑 .env 文件:
# 使用 Defapi
ANTHROPIC_API_KEY=your-defapi-api-key
ANTHROPIC_BASE_URL=https://api.defapi.com/v1
或者使用 messages 接口(推荐):
ANTHROPIC_API_KEY=your-defapi-api-key
ANTHROPIC_BASE_URL=https://api.defapi.com/v1
- 重启服务
# macOS
launchctl unload ~/Library/LaunchAgents/com.nanoclaw.plist
launchctl load ~/Library/LaunchAgents/com.nanoclaw.plist
# 或开发模式测试
npm run dev
优势
- 价格实惠: 仅为 Anthropic 官方价格的 50%
- 兼容性好: 完全兼容 Anthropic API 协议
- 稳定可靠: 支持 v1/chat/completions、v1/messages、v1beta 接口
- 即插即用: 无需修改代码,只需修改环境变量
方法二:Anthropic 官方 API Key
直接使用 Anthropic 官方 API,需要付费但稳定性最高。
配置
ANTHROPIC_API_KEY=sk-ant-api03-xxxxxxxxxxxx
获取方式
- 访问 Anthropic Console
- 创建 API Key
- 添加到
.env文件
方法三:Claude Code 订阅 (OAuth Token)
如果你已订阅 Claude Code Pro/Max,可以使用 OAuth Token。
配置
CLAUDE_CODE_OAUTH_TOKEN=sk-ant-oat01-xxxxxxxxxxxx
获取方式
# 从 Claude Code 凭据中提取
cat ~/.claude/.credentials.json
方法四:OpenRouter 代理
OpenRouter 也提供 Anthropic 兼容接口,但价格通常比 Defapi 略高。
配置
ANTHROPIC_API_KEY=sk-or-v1-xxxxxxxxxxxx
ANTHROPIC_BASE_URL=https://openrouter.ai/api/v1
方法五:自定义兼容接口
如果使用其他兼容 Anthropic API 的服务(如本地部署的代理),可以自定义 BASE_URL:
ANTHROPIC_API_KEY=your-api-key
ANTHROPIC_BASE_URL=https://your-proxy.example.com/v1
支持的接口:
v1/chat/completionsv1/messagesv1beta/models/*:generateContentv1beta/models/*:streamGenerateContent
验证 NanoClaw 是否正常工作
方法一:直接发消息测试
- 确保服务已启动
- 在 WhatsApp 已注册的群组或私聊中发送消息:
@Andy 你好,请回复这条消息
- 如果配置正确,Claude 会在几秒内回复
方法二:查看日志
# 查看实时日志
tail -f logs/nanoclaw.log
# 查看错误日志
tail -f logs/nanoclaw.error.log
方法三:运行验证脚本
.claude/skills/setup/scripts/09-verify.sh
检查输出中 CREDENTIALS 状态是否为通过。
常见用例
用例一:个人 AI 助手
通过 WhatsApp 与 Claude 随时对话,获取问答、写作、编程等帮助。
@Andy 帮我写一封邮件
@Andy 解释一下什么是量子计算
用例二:定时任务提醒
设置周期性任务,Claude 会自动执行并通知。
@Andy 每天早上8点给我发天气预报
@Andy 每周五下午总结本周的工作进展
用例三:文件管理与问答
访问挂载的目录,帮你管理文件和回答关于项目的问题。
@Andy 查看我上次创建的笔记
@Andy 这个代码有什么问题
用例四:网络搜索与摘要
Claude 可以搜索网页并给你最新的信息。
@Drawer 搜索最新的 AI 新闻
@Andy 总结这篇论文的主要内容 https://example.com/paper
用例五:浏览器自动化
通过 agent-browser 技能执行复杂的网页操作。
@Andy 帮我订一张去北京的机票
@Andy 在亚马逊上搜索这款产品的价格
配置汇总
| 配置项 | 说明 | 示例值 |
|---|---|---|
ANTHROPIC_API_KEY | API 密钥 | sk-ant-... |
ANTHROPIC_BASE_URL | API 端点 | https://api.defapi.com/v1 |
CLAUDE_CODE_OAUTH_TOKEN | OAuth Token | sk-ant-oat01-... |
ASSISTANT_NAME | 触发词 | Andy |
CONTAINER_TIMEOUT | 容器超时(ms) | 1800000 |
IDLE_TIMEOUT | 空闲超时(ms) | 1800000 |
总结
接入 Claude API 是使用 NanoClaw 的第一步。对于个人使用来说,推荐使用 Defapi,它提供与官方完全兼容的 API 接口,价格却只有官方的 50%,可以大幅降低使用成本。
只需修改 .env 文件中的 ANTHROPIC_BASE_URL 和 ANTHROPIC_API_KEY 即可完成切换,无需修改任何代码。