메인 콘텐츠로 건너뛰기
NanoClaw는 WhatsApp과 Telegram에서 동작하는 경량 셀프 호스팅 AI 비서입니다. 이 포크는 Venice AI 지원을 추가해, Anthropic 구독 없이도 모든 것이 프라이빗하게 동작합니다.

토큰 단위 결제

구독 없이 사용한 만큼만 지불

프라이빗 추론

Venice 서버의 데이터 보존 제로

Docker 격리

각 채팅이 자체 보안 컨테이너에서 실행

왜 Venice AI인가요?

Venice는 프라이버시 우선 AI 플랫폼입니다. Venice는 서버에 어떤 prompt나 응답도 저장하거나 로그하지 않습니다 — 대화는 사용자의 기기에만 존재합니다. 요청은 Venice의 프록시를 통해 탈중앙화 GPU 공급자로 종단간 암호화되어 전송되며, 데이터 보존은 제로입니다. 즉, AI 비서 대화가 Venice조차 알 수 없도록 프라이빗하게 유지됩니다. Venice는 하나의 API를 통해 프런티어 모델(Claude Opus, Claude Sonnet)에 익명화된 접근을, 오픈소스 모델(GLM, Qwen)에 완전 프라이빗 접근을 제공합니다 — 언제든지 전환할 수 있습니다.

왜 NanoClaw인가요?

NanoClaw는 OpenClaw 같은 더 큰 플랫폼의 깔끔하고 미니멀한 대안입니다. 한 명이 한 개의 봇을 운영하도록 설계되었습니다.

무엇을 얻나요

  • Telegram 및/또는 WhatsApp에서 동작하는 개인 AI 비서
  • Venice AI 구동 — Anthropic 계정 불필요
  • 봇이 격리된 Docker 컨테이너에서 실행됨(샌드박스, 시스템 접근 불가)
  • 모델 전환 — 언제든지 봇에게 “switch to zai-org-glm-5” 또는 “use opus” 라고 요청
  • 예약 작업 — 알림, 반복 작업 설정
  • 웹 검색 및 브라우징 내장
  • Telegram 메시지의 마크다운 포매팅

사전 요구사항

Node.js 20+

node --version으로 확인

Docker

설치 후 한 번 실행해 동작 상태로 둠

Claude Code CLI

claude --version으로 확인

Venice API 키

Venice 계정에서 생성
Telegram의 경우(첫 사용자에게 권장):
  1. Telegram을 열고 @BotFather를 검색
  2. /newbot을 보내고 안내를 따라가기
  3. BotFather가 준 토큰을 저장(123456789:ABCdef... 형태)
WhatsApp의 경우 — 본인 번호가 아닌 가상 번호를 사용하세요:NanoClaw는 WhatsApp 번호의 연결된 디바이스로 접속합니다. 즉, 에이전트가 들어오고 나가는 모든 메시지 — 개인 대화, 그룹 채팅, 사진 등 모든 것을 볼 수 있습니다. 폰은 정상적으로 동작하지만 봇은 전체 WhatsApp 계정에 대한 가시성을 가집니다.가상 전화번호를 사용하세요. 다음 앱들은 봇 전용으로 쓸 수 있는 두 번째 번호를 제공합니다:설정 방법:
  1. 위 앱 중 하나에서 가상 번호를 받기
  2. 해당 가상 번호로 두 번째 기기(구형 폰, 태블릿, 에뮬레이터)에 WhatsApp 설치
  3. NanoClaw 설정 중 본인 폰이 아니라 그 두 번째 기기로 QR 코드 스캔

설정

설정은 약 10분 걸립니다. 터미널 창 하나만 있으면 됩니다.
1

클론 및 설치

터미널을 열고 실행하세요:
npm install이 에러 없이 완료될 때까지 기다리세요.
2

Venice로 Claude Code 실행

your-key를 Venice API 키로 바꾸고 실행하세요:
이 명령은 Venice 프록시를 시작하고 그것을 통해 Claude Code를 한 번에 실행합니다.
Claude Code는 설정 비용을 낮게 유지하기 위해 기본 모델로 GLM 5(zai-org-glm-5)를 사용합니다. 설정이 끝난 뒤 Claude Code 안에서 /model을 입력해 최고 성능을 위해 claude-sonnet-4-6 또는 claude-opus-4-6으로 전환하세요.
“Do you want to use this API key?”라는 질문이 나오면 Yes를 선택하세요.
3

설정 마법사 실행

Claude Code 터미널에 다음을 입력하세요:
마법사가 다음 과정을 안내합니다:
  1. 부트스트랩 — Node.js와 의존성 확인
  2. Venice API 키 — 키를 검증하고 저장
  3. 채널 선택 — WhatsApp, Telegram, 또는 둘 다 선택
  4. 컨테이너 빌드 — Docker 컨테이너 빌드(처음에는 몇 분 소요)
  5. WhatsApp 인증 — 폰으로 QR 코드 스캔(해당 시)
  6. Telegram 설정 — 봇에 메시지를 보내 채팅을 감지하게 함
  7. 트리거 단어 — 봇을 활성화하는 prefix(기본값: @Andy)
  8. 마운트 디렉터리 — 지금은 “No” 선택(나중에 파일 접근 추가 가능)
  9. 서비스 시작 — NanoClaw와 Venice 프록시가 백그라운드 서비스로 시작
설정 마법사는 두 개의 백그라운드 서비스를 설치합니다:
  • NanoClaw — 봇 자체
  • Venice 프록시 — Claude Code와 Venice AI 사이를 번역하는 작은 로컬 서버(localhost:4001)
둘 다 부팅 시 자동 시작되며, 충돌하면 스스로 재시작합니다.
마법사가 단계 사이에서 멈춘다면 “continue” 또는 “next step”이라고 입력해 다음 단계로 넘기세요.
4

채팅 시작

설정이 완료되면 채팅(Telegram 또는 WhatsApp)을 열고 다음을 보내세요:
봇은 몇 초 안에 응답해야 합니다. 메인 채널에서는 @Andy prefix 없이도 평소처럼 입력할 수 있습니다.이제 터미널 창을 닫아도 됩니다. 모든 것이 백그라운드 서비스로 실행되며 컴퓨터 부팅 시 자동으로 시작됩니다.

동작 방식

NanoClaw에는 두 개의 레이어가 있습니다: 언제든지 Claude Code를 열려면:
이를 사용해 /setup, /debug, /customize를 실행하거나 봇의 동작을 변경하세요.

모델

CLI는 설정 비용을 낮게 유지하기 위해 기본값으로 GLM 5를 사용합니다. 설정 후 최고 성능을 위해 claude-sonnet-4-6 또는 claude-opus-4-6으로 전환하세요.
사용 가능한 모든 Venice 모델은 모델 카탈로그를 참고하세요.

문제 해결

Venice 프록시는 백그라운드 서비스로 실행되며 자동 재시작합니다. 동작하지 않는다면:macOS:
Linux:
Claude Code가 Venice 프록시에 연결할 수 없다는 의미입니다.
  1. 프록시가 실행 중인지 확인. 위 문제 해결 단계를 참고하세요.
  2. 올바른 폴더에 있는지 확인. 항상 먼저 cd nanoclaw-venice를 실행하세요.
  3. 새로 시작: 모든 터미널을 닫고 다음을 실행하세요:
프록시와 봇을 재시작하세요:macOS:
Linux:
사용 가능한 모델은 모델 카탈로그에서 확인하세요.
다음 순서대로 진행하세요:
  1. 트리거 단어 확인. 올바른 prefix(예: @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이 열려 동작 중인지 확인하세요. Docker가 완전히 시작되도록 10초 정도 기다린 뒤 마법사에 continue라고 입력해 재시도하세요.
WhatsApp 세션이 만료될 수 있습니다. 재연결하려면:
WhatsApp으로 QR 코드를 스캔하고(Settings → Linked Devices → Link a Device), 봇을 재시작하세요:
  • macOS: launchctl kickstart -k gui/$(id -u)/com.nanoclaw
  • Linux: systemctl --user restart nanoclaw

고급

기본적으로 봇은 컴퓨터로부터 완전히 차단되어 있어 자체 메모리와 대화 기록만 볼 수 있습니다.
  • 설정 중: 디렉터리 접근을 물을 때 “Yes” 선택
  • 설정 후: Claude Code에서 /customize 실행
NanoClaw는 부팅 시 자동 시작되는 두 개의 백그라운드 서비스로 실행됩니다.macOS:Linux:
Venice로 Claude Code만 쓰고 WhatsApp/Telegram이 필요 없다면 프록시 서비스가 실행되어 있어야 합니다. 이미 /setup을 실행했다면 백그라운드 서비스로 실행 중입니다.
팁: ~/.zshrc(또는 ~/.bashrc)에 다음을 추가하면 어떤 터미널에서든 Venice로 빠르게 전환할 수 있습니다:
claude 실행 전에 어떤 터미널에서든 venice를 입력하면 Venice를 사용하고, anthropic을 입력하면 Anthropic으로 되돌아갑니다.
같은 머신에서 여러 NanoClaw 봇을 실행할 수 있습니다(예: 개인용 1개, 팀용 1개). 다른 폴더에 레포를 클론하고 다시 설정을 실행하면 됩니다. 참고: 같은 Docker 이미지를 공유하므로 하나를 재빌드하면 모두에게 영향이 갑니다.
NanoClaw 코드를 수정하고 싶은 사람을 위한 명령:

아키텍처


FAQ

Claude Agent SDK는 Anthropic의 메시지 포맷을 사용합니다. Venice는 OpenAI 포맷을 사용합니다. 프록시는 둘 사이를 번역해, SDK를 수정하지 않고도 모든 것이 동작하게 합니다.
예. Venice는 다양한 모델을 호스팅합니다. 봇에게 “switch to zai-org-glm-5”나 다른 Venice 모델 ID를 말하면 됩니다. 모델 카탈로그 참고.
에이전트는 실제 OS 수준 격리를 갖춘 Docker 컨테이너에서 실행됩니다. Venice API 키는 stdin을 통해 전달되며 컨테이너 내부 디스크에 절대 기록되지 않습니다. 각 그룹은 자체 격리 환경을 가집니다.
아니오. 모든 것이 Venice AI를 통해 동작합니다. Venice API 키만 있으면 됩니다.
예. Docker가 설치된 모든 Linux 머신에서 동작합니다. 부팅 시 자동 시작은 systemd 서비스를 사용하세요.

리소스

NanoClaw Venice 레포

소스 코드와 전체 README

원본 NanoClaw

qwibitai의 upstream 프로젝트

Venice 모델 카탈로그

사용 가능한 모델 둘러보기

Venice 프라이버시

Venice가 데이터를 보호하는 방법