跳转到主要内容
NanoClaw 是一个轻量级的自托管 AI 助手,运行在 WhatsApp 和 Telegram 上。这个 fork 增加了 Venice AI 支持,使一切都可以私密运行,无需 Anthropic 订阅。

按 token 付费

无订阅。仅按使用量付费

私密推理

Venice 服务器零数据保留

Docker 隔离

每个聊天都运行在自己的安全容器中

为什么选择 Venice AI?

Venice 是一个隐私优先的 AI 平台。他们不存储或记录任何 prompt 或响应 在其服务器上——您的对话仅存在于您的设备上。请求通过其代理端到端加密到去中心化 GPU 提供商,零数据保留。这意味着您的 AI 助手对话保持私密,即使对 Venice 自身也是如此。 Venice 通过单个 API 提供前沿模型(Claude Opus、Claude Sonnet)的匿名化访问以及开源模型(GLM、Qwen)的完全私密访问——可随时在它们之间切换。
Venice AI传统 AI 提供商
数据保留无——零日志
Prompt 隐私加密,永不存储存储在提供商服务器上
开源模型是(GLM、Qwen 等)
前沿模型Claude、GPT 等——匿名化仅通过直接订阅
定价按 token 付费,无订阅。或质押 DIEM 获取每日刷新的 credit每月 $20–200 订阅或按 token 付费 API
无审查推理是(开源模型)

为什么选择 NanoClaw?

NanoClaw 是 OpenClaw 等大型平台的简洁、最小化替代方案。它专为一个人运行一个机器人而设计。
NanoClaw(Venice)OpenClaw
代码库~2,000 行,少量文件~500,000 行,53 个配置文件
依赖~15 个包70+ 个包
安全模型操作系统级 Docker 容器隔离应用级允许列表和配对码
每组隔离每个群组都有自己的容器、文件系统和内存共享进程,共享内存
设置一个向导(/setup),约 10 分钟手动多步骤配置
AI 提供商Venice AI(私密,无订阅)Anthropic(需要 API 密钥或订阅)
定制直接编辑代码——它足够小可以阅读配置文件和插件
目标用户一人一机器人多用户平台

您能得到什么

  • Telegram 和/或 WhatsApp 上的个人 AI 助手
  • Venice AI 提供动力——无需 Anthropic 账户
  • 机器人运行在隔离的 Docker 容器中(沙盒化,无法访问您的系统)
  • 模型切换——告诉机器人”切换到 zai-org-glm-5”或”使用 opus”
  • 计划任务——设置提醒、循环任务
  • 网页搜索和浏览内置
  • Telegram 消息中的 Markdown 格式

前置条件

Node.js 20+

使用 node --version 检查

Docker

安装并打开一次以确保其正在运行

Claude Code CLI

使用 claude --version 检查

Venice API 密钥

从您的 Venice 账户生成
Telegram(推荐给首次使用者):
  1. 打开 Telegram 并搜索 @BotFather
  2. 发送 /newbot 并按照提示操作
  3. 保存 BotFather 给您的 token(类似 123456789:ABCdef...
WhatsApp——使用虚拟号码,而不是您的个人号码:NanoClaw 作为您 WhatsApp 号码的关联设备连接。这意味着 agent 可以查看所有进出的消息——您所有的个人对话、群聊、照片、所有内容。您的手机仍然正常工作,但机器人对您的整个 WhatsApp 账户具有完全的可见性。请改用虚拟电话号码。 这些应用为您提供一个可以完全专用于机器人的第二号码:
应用价格备注
Hushed~$5/月可靠,适用于 WhatsApp 验证
Burner~$5/月类似 Hushed,一次性号码
Google Voice免费仅限美国,在所有情况下可能不适用于 WhatsApp 验证
如何设置:
  1. 从上面的应用之一获取虚拟号码
  2. 使用该虚拟号码在第二台设备(旧手机、平板或模拟器)上安装 WhatsApp
  3. 在 NanoClaw 设置期间,使用该第二台设备扫描二维码——不是您的个人手机

设置

设置大约需要 10 分钟。您只需要一个终端窗口
1

克隆和安装

打开终端并运行:
git clone https://github.com/lorenzovenice/nanoclaw-venice.git
cd nanoclaw-venice
npm install
等待 npm install 完成且无错误。
2

使用 Venice 启动 Claude Code

your-key 替换为您的 Venice API 密钥并运行:
VENICE_API_KEY=your-key npm run venice
这会启动 Venice 代理并通过它启动 Claude Code,所有操作在一条命令中完成。
Claude Code 默认使用 GLM 5zai-org-glm-5)以保持低设置成本。设置完成后,在 Claude Code 内键入 /model 切换到 claude-sonnet-4-6claude-opus-4-6 以获得最佳性能。
如果提示 “Do you want to use this API key?”——选择 Yes
3

运行设置向导

在您的 Claude Code 终端中,键入:
/setup
向导引导您完成:
  1. Bootstrap — 检查 Node.js 和依赖项
  2. Venice API 密钥 — 验证并保存您的密钥
  3. 通道选择 — 选择 WhatsApp、Telegram 或两者
  4. 构建容器 — 构建 Docker 容器(首次需要几分钟)
  5. WhatsApp 认证 — 用您的手机扫描二维码(如适用)
  6. Telegram 设置 — 向您的机器人发送消息以便其检测到您的聊天
  7. 触发词 — 激活机器人的前缀(默认:@Andy
  8. 挂载目录 — 现在选择”No”(稍后可以添加文件访问)
  9. 启动服务 — NanoClaw 和 Venice 代理都作为后台服务启动
设置向导安装两个后台服务:
  • NanoClaw — 机器人本身
  • Venice 代理 — 一个小型本地服务器(localhost:4001),在 Claude Code 和 Venice AI 之间进行转换
两者都在启动时自动启动,崩溃时会自动重启。
如果向导在步骤之间停止,键入 “continue” 或 “next step” 推动其前进。
4

开始聊天

设置完成后,打开您的聊天(Telegram 或 WhatsApp)并发送:
@Andy hello, are you there?
机器人应该在几秒钟内响应。在您的主通道中,您可以正常输入而无需 @Andy 前缀。现在您可以关闭终端窗口。 一切都作为后台服务运行,并在计算机启动时自动启动。

工作原理

NanoClaw 有两层:
功能
Claude Code CLI用于设置、调试和定制的管理工具
机器人您聊天中的 AI,运行在隔离的 Docker 容器内
随时打开 Claude Code:
cd nanoclaw-venice
ANTHROPIC_BASE_URL=http://localhost:4001 ANTHROPIC_API_KEY=venice-proxy claude
用它来运行 /setup/debug/customize 或更改机器人行为。

模型

上下文默认模型如何切换
机器人(在聊天中)claude-sonnet-4-6告诉机器人:“切换到 opus” 或 “使用 zai-org-glm-5”
Claude Code CLIzai-org-glm-5(GLM 5)在 Claude Code 中使用 /modelclaude --model <name>
CLI 默认使用 GLM 5 以保持低设置成本。设置完成后,切换到 claude-sonnet-4-6claude-opus-4-6 以获得最佳性能。
请参阅模型目录获取所有可用的 Venice 模型。

故障排查

Venice 代理作为后台服务运行,并会自动重启。如果它无法工作:macOS:
# Check if it's running
launchctl list | grep venice-proxy

# Restart it
launchctl kickstart -k gui/$(id -u)/com.nanoclaw.venice-proxy

# Check logs
tail -f ~/nanoclaw-venice/logs/venice-proxy.log
Linux:
# Check if it's running
systemctl --user status nanoclaw-venice-proxy

# Restart it
systemctl --user restart nanoclaw-venice-proxy

# Check logs
tail -f ~/nanoclaw-venice/logs/venice-proxy.log
这意味着 Claude Code 无法连接到 Venice 代理。
  1. 检查代理是否在运行。 请参阅上面的故障排查步骤。
  2. 确保您在正确的文件夹中。 始终先 cd nanoclaw-venice
  3. 重新开始: 关闭所有终端并运行:
    cd nanoclaw-venice
    ANTHROPIC_BASE_URL=http://localhost:4001 ANTHROPIC_API_KEY=venice-proxy claude
    
重启代理和机器人:macOS:
# Restart proxy
launchctl kickstart -k gui/$(id -u)/com.nanoclaw.venice-proxy

# Restart bot
launchctl kickstart -k gui/$(id -u)/com.nanoclaw
Linux:
# Restart proxy
systemctl --user restart nanoclaw-venice-proxy

# Restart bot
systemctl --user restart nanoclaw
模型目录中查看可用模型。
按顺序进行以下步骤:
  1. 检查您的触发词。 确保您使用了正确的前缀(例如 @Andy hello)。
  2. 检查 Docker 是否在运行。 运行 docker info——如果出错,打开 Docker Desktop。
  3. 检查代理是否在运行。 请参阅上面的”代理未运行”。
  4. 检查日志: 在项目文件夹中 tail -f logs/nanoclaw.log
  5. 检查容器日志。 打开 nanoclaw-venice/groups/main/logs/ 文件夹。打开以 container- 开头的最新文件。
  6. 重启一切: 重启代理和机器人(请参阅上面)。
确保 Docker Desktop 已打开并正在运行。等待 10 秒以让 Docker 完全启动,然后在向导中键入 continue 重试。
您的 WhatsApp 会话可能过期。要重新连接:
cd nanoclaw-venice
npm run auth
使用 WhatsApp 扫描二维码(设置 → 关联设备 → 关联设备),然后重启机器人:
  • macOS:launchctl kickstart -k gui/$(id -u)/com.nanoclaw
  • Linux:systemctl --user restart nanoclaw

进阶

默认情况下,机器人完全与您的计算机隔离——它只能查看自己的内存和对话历史。
  • 设置期间: 当询问目录访问时,选择”Yes”
  • 设置后: 在 Claude Code 中运行 /customize
NanoClaw 运行两个后台服务,在启动时自动启动。macOS:
操作命令
启动机器人launchctl load ~/Library/LaunchAgents/com.nanoclaw.plist
停止机器人launchctl unload ~/Library/LaunchAgents/com.nanoclaw.plist
重启机器人launchctl kickstart -k gui/$(id -u)/com.nanoclaw
启动代理launchctl load ~/Library/LaunchAgents/com.nanoclaw.venice-proxy.plist
停止代理launchctl unload ~/Library/LaunchAgents/com.nanoclaw.venice-proxy.plist
重启代理launchctl kickstart -k gui/$(id -u)/com.nanoclaw.venice-proxy
Linux:
操作命令
启动机器人systemctl --user start nanoclaw
停止机器人systemctl --user stop nanoclaw
重启机器人systemctl --user restart nanoclaw
启动代理systemctl --user start nanoclaw-venice-proxy
停止代理systemctl --user stop nanoclaw-venice-proxy
重启代理systemctl --user restart nanoclaw-venice-proxy
如果您只想要带有 Venice 的 Claude Code 而不需要 WhatsApp/Telegram,代理服务需要运行。如果您已经运行过 /setup,它已作为后台服务运行。
cd nanoclaw-venice
ANTHROPIC_BASE_URL=http://localhost:4001 ANTHROPIC_API_KEY=venice-proxy claude
提示: 将此添加到您的 ~/.zshrc(或 ~/.bashrc),这样您可以快速将任何终端切换到 Venice:
alias venice='export ANTHROPIC_BASE_URL=http://localhost:4001 && export ANTHROPIC_API_KEY=venice-proxy && echo "Using Venice API"'
alias anthropic='unset ANTHROPIC_BASE_URL && unset ANTHROPIC_API_KEY && echo "Using Anthropic API"'
然后只需在运行 claude 之前在任何终端键入 venice 即可使用 Venice,或键入 anthropic 切换回来。
您可以在同一台机器上运行多个 NanoClaw 机器人(例如,一个用于个人使用,一个用于团队)。只需将仓库克隆到不同的文件夹并再次运行设置。注意:它们共享同一个 Docker 镜像,因此重建一个会影响所有机器人。
对于想要修改 NanoClaw 代码的人:
npm run dev          # Start proxy + NanoClaw with hot reload
npm run proxy        # Start just the Venice proxy
npm run build        # Compile TypeScript
npm test             # Run tests
./container/build.sh # Rebuild agent container

架构

You (WhatsApp/Telegram)

   NanoClaw (Node.js)

   Docker Container (isolated sandbox)

   Venice Proxy (localhost:4001)

   api.venice.ai (private inference)
文件用途
proxy/venice-proxy.ts为 Venice 将 Anthropic 格式转换为 OpenAI 格式
src/index.ts主编排器——消息循环、agent 调用
src/channels/whatsapp.ts通过 baileys 的 WhatsApp 连接
src/channels/telegram.ts通过 grammy 的 Telegram 机器人
src/container-runner.ts生成隔离的 agent 容器

常见问题

Claude Agent SDK 使用 Anthropic 的消息格式。Venice 使用 OpenAI 的格式。代理在它们之间进行转换,因此一切都可以在不修改 SDK 的情况下工作。
可以。Venice 托管许多模型。告诉机器人 “switch to zai-org-glm-5” 或任何 Venice 模型 ID。请参阅模型目录
Agent 运行在具有真正操作系统级隔离的 Docker 容器中。Venice API 密钥通过 stdin 传递,永远不会写入容器内的磁盘。每个组都有自己的隔离环境。
不需要。一切都通过 Venice AI 运行。您只需要一个 Venice API 密钥。
可以。它适用于任何安装了 Docker 的 Linux 机器。使用 systemd 服务在启动时自动启动。

资源

NanoClaw Venice 仓库

源代码和完整 README

原版 NanoClaw

qwibitai 的上游项目

Venice 模型目录

浏览可用模型

Venice 隐私

Venice 如何保护您的数据