nanocoai/nanoclaw

A lightweight alternative to OpenClaw that runs in containers for security. Connects to WhatsApp, Telegram, Slack, Discord, Gmail and other messaging apps,, has memory, scheduled jobs, and runs directly on Anthropic's Agents SDK

NanoClaw – 각 에이전트를 별도의 Docker 컨테이너에서 실행하는 AI 어시스턴트 플랫폼

무엇인가요 – NanoClaw는 사용자가 선택한 어떤 채팅 플랫폼에서도 대화할 수 있는 개인용 AI 어시스턴트(에이전트)를 구축하기 위한 가볍고 오픈소스 프레임워크입니다. 핵심 아이디어는 격리입니다: 각 에이전트는 자체 Linux 컨테이너 내에서 실행되며, 명시적으로 마운트한 파일만 볼 수 있고, 호스트 시스템이나 API 키에 직접 접근할 수 없습니다.

왜 존재하는가 – 저자는 기존의 "일체형" AI 어시스턴트 프로젝트(예: OpenClaw)가 너무 크고 감사하기 어렵며, 프로세스 내 권한 검사에 의존한다고 느꼈습니다. NanoClaw는 단일 Node 프로세스와 소수의 소스 파일로 스택을 단순화하면서도 Docker를 통해 각 에이전트에 OS 수준의 사전 환경을 제공합니다.

시작 방법 – 리포지토리를 클론하고 bash nanoclaw.sh를 실행하세요. 스크립트는 다음 작업을 수행합니다:

  1. Node, pnpm, Docker가 설치되어 있지 않으면 자동 설치합니다.
  2. OneCLI의 "에이전트 밸트"를 통해 Anthropic(Claude) 인증 정보를 등록합니다.
  3. 에이전트를 실행할 Docker 이미지를 빌드합니다.
  4. 에이전트를 메시징 채널(Slack, Telegram, Discord, WhatsApp, iMessage 등)과 연결합니다. 어떤 단계에서 실패하더라도 스크립트는 문제를 Claude Code에 넘기며, AI 기반 디버거가 자동으로 진단하고 재시도할 수 있습니다.

핵심 개념

개념 의미
에이전트 그룹 메모리 저장소(CLAUDE.md)와 전용 컨테이너를 공유하는 에이전트의 논리적 집합입니다.
채널 어댑터 채팅 서비스의 메시지를 내부 형식으로 변환하는 작은 플러그인입니다. /add-slack 또는 /add-telegram과 같은 명령어로 필요 시 설치됩니다.
격리 모델 각 채널을 개별 에이전트에 연결(완전한 프라이버시), 공유 에이전트에 연결(채널 간 단일 메모리), 또는 하이브리드 "공유 세션"에 연결(한 대화가 여러 플랫폼을 넘나듦)할 수 있습니다.
OneCLI 에이전트 밸트 API 키(Anthropic, OpenAI 등)를 요청 시점에 주입하는 프록시로, 키가 컨테이너 내부에 노출되지 않습니다.
스케줄된 작업 반복적으로 실행되는 작업으로, 작업이 없을 경우 실행을 건너뛸 수 있는 "스크립트 게이트"로 보호할 수 있습니다.
템플릿 미리 준비된 지침, 도구, 기술의 번들로, ncl groups create --template <ref> 명령어로 새 groups/<name> 폴더에 복사할 수 있습니다.

지원하는 채팅 플랫폼 – WhatsApp, Telegram, Discord, Slack, Microsoft Teams, iMessage, Matrix, Google Chat, Webex, Linear, GitHub, WeChat, 그리고 Resend를 통한 이메일. 새로운 어댑터는 별도의 channels 브랜치에 "스킬"로 추가되며, 간단한 /add-<channel> 명령어로 자신의 포크에 복사됩니다.

모델 백엔드 – 기본적으로 공식 Claude Agent SDK를 통해 Anthropic의 Claude에 연결합니다. /add-opencode 또는 /add-ollama-provider로 OpenAI Codex, OpenRouter(OpenCode를 통해), 로컬 Ollama 모델 등 다른 제공자로 교체할 수 있습니다. 서로 다른 에이전트 그룹은 동시에 다른 제공자를 사용할 수 있습니다.

보안 강조점

  • 컨테이너 사전 환경 – 에이전트는 Docker 컨테이너(macOS, Linux, 또는 WSL2)에서 실행됩니다. 마운트한 디렉터리만 보입니다.
  • 컨테이너 내 키가 없음 – 모든 외부 API 호출은 OneCLI의 에이전트 밸트를 통해 이루어지며, 각 에이전트별 정책과 속도 제한이 적용됩니다.
  • 사용자 계정 없음 – NanoClaw는 클라우드에 아무것도 저장하지 않습니다. 유일한 선택적 클라우드 상호작용은 사전에 구축된 강화된 에이전트 이미지 다운로드 또는 커뮤니티 포털 기능 활성화입니다.

사용자 맞춤화 워크플로우 – 넓은 설정 파일 대신, 내장된 Claude Code AI에게 원하는 변경사항을 지시합니다(예: "트리거 단어를 @Bob로 변경" 또는 "사용자 정의 아침 인사 추가"). 코드베이스가 의도적으로 작기 때문에 Claude는 소스 코드를 직접 편집할 수 있습니다.

개발 및 기여 모델 – 메인 trunk 브랜치는 최소한으로 유지됩니다(레지스트리, 오케스트레이션, 코어 DB). 새로운 채널 어댑터는 channels 브랜치에, 새로운 제공자 어댑터는 providers 브랜치에 있습니다. 사용자는 자신의 포크에서 /add-<name> 스킬로 설치합니다. 프로젝트는 코어에 대한 보안 수정과 버그 수정만 수락합니다.

일반적인 사용 사례 – 설정 후 트리거 단어(기본값 @Andy)로 어시스턴트와 대화할 수 있습니다:

@Andy 매주 월요일부터 금요일 오전 9시에 매출 파이프라인 개요를 보내 (내 Obsidian 밸트 폴더에 접근 가능)
@Andy 매주 금요일에 지난 1주간의 git 기록을 검토하고, 변화가 있으면 README를 업데이트

어시스턴트는 격리된 컨테이너에서 실행되며, 요청된 데이터를 가져와 호출한 채널에 결과를 다시 게시합니다.

라이선스 – MIT.


위의 모든 세부 정보는 리포지토리의 README에서 직접 가져왔으며, 추가 기능은 추측되지 않았습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트