
“OpenClaw는 강력하지만… 50만 줄의 코드베이스를 이해하는 건 또 다른 문제입니다.”
많은 개발자가 OpenClaw의 방대함에 압도됩니다. 53개의 설정 파일, 70개 이상의 의존성, 그리고 복잡하게 얽힌 아키텍처. 물론 강력하지만, “그냥 간단한 에이전트 하나 만들고 싶은데”라는 니즈에는 과도한 면이 있습니다.
NanoClaw는 이 문제를 정면으로 공략합니다. QwibitAI에서 개발한 이 프로젝트는 “이해 가능한 코드베이스”와 “진정한 보안 격리”라는 두 가지 핵심 가치를 동시에 추구합니다.
탄생 배경: 복잡성의 역설
OpenClaw가 50만 줄의 코드로 성장하는 동안, 많은 사용자가 비슷한 의문을 가졌습니다.
“정말 이 모든 게 필요한가?” “설정 파일만 53개라니, 어디서부터 시작해야 하지?” “커스터마이징하려면 어디를 봐야 하는 거야?”
복잡성의 역설: 더 많은 기능을 추가할수록, 실제로 사용하는 사람은 줄어든다.
NanoClaw는 반대 방향으로 출발했습니다. “최소한의 것만 남기고, 나머지는 과감히 버리자.” 그 결과, 한 프로세스, 몇 개의 파일, 이해 가능한 코드베이스가 탄생했습니다.
OpenClaw vs NanoClaw: 숫자로 보는 차이
| 항목 | OpenClaw | NanoClaw |
|---|---|---|
| 코드 라인 수 | ~500,000줄 | 한 프로세스, 몇 개 파일 |
| 설정 파일 | 53개 | 코드로 커스터마이징 |
| 의존성 | 70+ | 최소화 |
| 보안 모델 | 애플리케이션 레벨 권한 | OS-level 컨테이너 격리 |
| 러닝 커브 | 높음 | 낮음 |
| 진입 장벽 | 상당함 | 낮음 |
이 비교는 OpenClaw가 “나쁘다”는 게 아닙니다. OpenClaw는 엔터프라이즈급 기능과 확장성을 제공합니다. NanoClaw는 **“그냥 빠르고 안전하게 에이전트 돌리고 싶은 사람”**을 위한 대안입니다.
보안: 진정한 격리의 의미
NanoClaw의 가장 큰 차별점은 컨테이너 격리입니다.
기존 접근의 한계
대부분의 AI 에이전트 프레임워크는 애플리케이션 레벨에서 권한을 체크합니다:
// 전통적 접근: 앱 레벨 권한 체크
if (hasPermission(user, 'file:read', path)) {
// 위험: 버그가 있으면?
readFile(path);
}
이 방식의 문제는 버그 하나가 치명적이라는 점입니다. 권한 체크 로직에 취약점이 있으면, 에이전트가 접근하면 안 되는 파일까지 접근할 수 있습니다.
NanoClaw의 접근: OS-level 격리
# NanoClaw: 컨테이너로 완전히 격리
docker run --rm \
-v /allowed/path:/workspace \
nanoclaw-agent
컨테이너 밖의 파일은 물리적으로 접근이 불가능합니다. 권한 체크 버그? 상관없습니다. 컨테이너 자체가 접근할 수 없으니까요.
지원하는 컨테이너 런타임
- Docker: 범용, 모든 OS 지원
- Apple Container: macOS 전용, 경량화
# macOS에서 Apple Container로 전환
@Andy /convert-to-apple-container
Agent Swarms: 에이전트 팀 협업의 시대
NanoClaw는 최초로 Agent Swarms를 지원하는 오픈소스 에이전트 프레임워크 중 하나입니다.
단일 에이전트의 한계
복잡한 작업은 한 에이전트가 처리하기 어렵습니다:
- “이메일 읽어서 → 요약하고 → 캘린더에 일정 추가하고 → Slack으로 알림 보내줘”
- 한 에이전트가 모든 걸 처리하려면 맥락이 너무 길어지고, 실수 가능성이 높아집니다
Swarms 접근: 전문화된 팀
┌─────────────┐
│ Orchestrator │
└──────┬──────┘
│
┌───┴───┬───────┐
▼ ▼ ▼
┌─────┐ ┌─────┐ ┌─────┐
│Email│ │Calendar│ │Slack│
│Reader│ │Writer│ │Notifier│
└─────┘ └─────┘ └─────┘
각 에이전트는 자신의 전문 영역만 처리합니다:
- Email Reader: 이메일 읽기 전문
- Calendar Writer: 캘린더 조작 전문
- Slack Notifier: 알림 발송 전문
Orchestrator가 이들을 조율합니다. 이렇게 하면:
- 각 에이전트의 컨텍스트가 짧아집니다
- 특정 에이전트만 재시작하면 됩니다
- 디버깅이 쉬워집니다
아키텍처: 단순함의 미학
NanoClaw의 아키텍처는 놀라울 정도로 단순합니다:
Channels → SQLite → Polling Loop → Container → Response
│
▼
Claude Agent SDK
(격리된 컨테이너 내부)
핵심 구성 요소
- Channels: WhatsApp, Telegram, Slack, Discord, Gmail 등
- SQLite: 메시지 큐 및 상태 저장
- Polling Loop: 새 메시지 감지
- Container: Claude Agent SDK 실행 환경
- Response: 채널로 결과 전송
단일 Node.js 프로세스
모든 게 한 프로세스에서 돌아갑니다. 마이크로서비스? 없습니다. 복잡한 메시지 큐? 없습니다. 그냥 단순한 폴링 루프와 SQLite.
“왜 폴링이야? 이벤트 기반이 더 효율적이잖아?”
네, 맞습니다. 하지만 폴링은 이해하기 쉽습니다. 버그가 나면 어디서 봐야 할지 명확합니다. 그게 NanoClaw의 철학입니다.
Skills 시스템: 기능 대신 스킬
NanoClaw는 “기능” 대신 “스킬”이라는 개념을 사용합니다:
| 명령 | 설명 |
|---|---|
/setup | 초기 설정 |
/add-whatsapp | WhatsApp 채널 추가 |
/add-telegram | Telegram 채널 추가 |
/add-discord | Discord 채널 추가 |
/add-slack | Slack 채널 추가 |
/add-gmail | Gmail 채널 추가 |
/customize | 커스터마이징 가이드 |
/debug | 문제 진단 |
스킬의 철학
기능은 “이미 만들어진 것”입니다. 스킬은 “배울 수 있는 것”입니다.
NanoClaw에서는 새로운 채널을 “추가”하는 게 아니라 “가르치는” 개념입니다. /add-whatsapp을 실행하면, 에이전트가 WhatsApp을 이해하게 됩니다.
커스터마이징: 코드가 곧 설정
NanoClaw에는 53개의 설정 파일이 없습니다. 대신, 코드로 직접 커스터마이징합니다.
자연어 커스터마이징
@Andy send an overview of the sales pipeline every weekday morning at 9am
@Andy review the git history for the past week each Friday
@Andy every Monday at 8am, compile AI news from Hacker News
코드 레벨 커스터마이징
// 트리거 워드 변경
"Change the trigger word to @Bob"
// 응답 스타일 변경
"Remember to make responses shorter"
// 커스텀 그리팅 추가
"Add a custom greeting when I say good morning"
이게 다입니다. 복잡한 설정 파일을 찾아 헤맬 필요가 없습니다.
지원 채널: 어디서든 접근
NanoClaw는 5개 주요 채널을 지원합니다:
| 채널 | 용도 |
|---|---|
| 개인 메신저, 가장 친숙한 인터페이스 | |
| Telegram | 개발자 친화적, 봇 API 강력 |
| Slack | 팀 협업, 워크스페이스 통합 |
| Discord | 커뮤니티, 게이밍 문화 |
| Gmail | 이메일 자동화, 공식 업무 |
Isolated Group Context
각 그룹/채널은 별도의 컨테이너에서 실행됩니다:
WhatsApp 그룹 A → Container A
WhatsApp 그룹 B → Container B
Slack 워크스페이스 C → Container C
이렇게 하면:
- 한 그룹의 컨텍스트가 다른 그룹으로 유출되지 않습니다
- 그룹별로 다른 커스터마이징이 가능합니다
- 한 컨테이너에 문제가 생겨도 다른 곳은 정상 작동합니다
Main Channel: 관리용 Self-Chat
NanoClaw에는 “Main Channel”이라는 개념이 있습니다. 이건 관리자가 에이전트와 직접 대화하는 채널입니다:
# Main Channel (관리자 전용)
Admin: @Andy status
Andy: All systems operational. 3 containers running.
Admin: @Andy logs container-1
Andy: [Showing last 50 lines...]
설치: 30초 만에 시작
# 방법 1: GitHub CLI로 (권장)
gh repo fork qwibitai/nanoclaw --clone
cd nanoclaw
claude
# Then run /setup
# 방법 2: 수동으로
git clone https://github.com/YOUR_USERNAME/nanoclaw.git
cd nanoclaw
claude
# Then run /setup
/setup을 실행하면, NanoClaw가 필요한 의존성을 설치하고 컨테이너를 설정합니다.
실제 사용 시나리오
시나리오 1: 개인 비서
# WhatsApp에서
@Andy 내일 오전 10시에 팀 미팅 리마인더 해줘
@Andy 이번 주 쓴 돈 정리해서 월요일 아침에 보내줘
@Andy 해외뉴스 중에서 AI 관련 것만 모아서 매일 아침 8시에 요약해줘
시나리오 2: 팀 협업
# Slack에서
@Andy 이번 스프린트 진행 상황을 금요일 오후 5시에 #general에 공유해줘
@Andy 새로운 팀원이 들어오면 온보딩 체크리스트를 DM으로 보내줘
@Andy GitHub PR이 머지되면 관련 팀원들에게 Slack으로 알림 보내줘
시나리오 3: 개발자 도구
# Telegram에서
@Andy production 서버 로그를 매시간 체크해서 에러가 있으면 알려줘
@Andy 백업이 실패하면 즉시 나한테 DM 보내줘
@Andy 새로운 이슈가 등록되면 우선순위별로 분류해서 정리해줘
시나리오 4: Agent Swarms 활용
# 복잡한 작업을 여러 에이전트가 협업
@Team 고객 불만 이메일이 오면:
1. 이메일 분석 (Email Analyzer)
2. 유사 사례 검색 (Knowledge Searcher)
3. 응답 초안 작성 (Response Drafter)
4. 품질 검토 (Quality Checker)
5. 발송 승인 요청 (Approval Requester)
No Configuration Sprawl: 설정 파일 지옥의 끝
OpenClaw 사용자들이 가장 힘들어하는 부분 중 하나가 설정 파일 관리입니다:
# OpenClaw 설정 파일들 (일부)
agents.yml
channels.yml
providers.yml
skills.yml
permissions.yml
storage.yml
logging.yml
# ... 그리고 46개 더
NanoClaw는 다릅니다:
// NanoClaw: 코드가 곧 설정
export default {
trigger: '@Andy',
channels: ['whatsapp', 'telegram'],
container: 'docker',
model: 'claude-3-5-sonnet'
};
설정 파일? 하나면 충분합니다. 아니, 그것도 선택사항입니다. 그냥 코드로 직접 작성해도 됩니다.
기술 스택: TypeScript의 힘
NanoClaw는 OpenClaw와 동일하게 TypeScript로 작성되었습니다:
- 런타임: Node.js
- 언어: TypeScript
- 데이터베이스: SQLite
- 컨테이너: Docker / Apple Container
- AI SDK: Claude Agents SDK (Anthropic)
TypeScript 선택의 이유
- 타입 안전성: 에이전트 로직의 복잡성을 타입으로 관리
- 개발자 경험: IDE 지원, 자동완성, 리팩토링
- 생태계: npm의 방대한 라이브러리
- 친숙함: OpenClaw 사용자가 쉽게 적응
커뮤니티와 생태계
공식 리소스
- 웹사이트: https://nanoclaw.dev
- Discord: https://discord.gg/VDdww8qS42
- GitHub: https://github.com/qwibitai/nanoclaw
- 라이선스: MIT (완전한 오픈소스)
성장세
21,000+ GitHub 스타는 우연이 아닙니다. 개발자들은 “단순함”과 “보안”이라는 두 가지 가치에 열광하고 있습니다.
마치며: “작지만 강력한” 대안
NanoClaw는 OpenClaw를 대체하려는 게 아닙니다. OpenClaw가 엔터프라이즈급 플랫폼이라면, NanoClaw는 개인/소규모 팀용 도구입니다.
“OpenClaw는 비행기고, NanoClaw는 자동거야. 둘 다 이동 수단이지만, 용도가 달라.”
복잡한 설정 없이, 그냥 바로 시작하고 싶다면 NanoClaw를 시도해보세요. 50만 줄의 코드베이스를 이해할 필요가 없습니다. 몇 개의 파일만 보면 됩니다.
그리고 무엇보다, 컨테이너 격리로 진정한 보안을 경험할 수 있습니다. 애플리케이션 레벨 권한 체크? 그건 이제 과거의 일입니다.
🔗 관련 정보
- 공식 사이트: https://nanoclaw.dev
- GitHub: https://github.com/qwibitai/nanoclaw
- Discord: https://discord.gg/VDdww8qS42
- 개발사: QwibitAI
- 라이선스: MIT