# NanoClaw – Apple 컨테이너 격리 환경에서 실행되는 500줄짜리 TypeScript 기반 Claude 어시스턴트

> Clean Markdown view of GeekNews topic #26337. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=26337](https://news.hada.io/topic?id=26337)
- GeekNews Markdown: [https://news.hada.io/topic/26337.md](https://news.hada.io/topic/26337.md)
- Type: GN+
- Author: [neo](https://news.hada.io/@neo)
- Published: 2026-02-02T13:32:58+09:00
- Updated: 2026-02-02T13:32:58+09:00
- Original source: [github.com/gavrielc](https://github.com/gavrielc/nanoclaw)
- Points: 5
- Comments: 1

## Summary

**NanoClaw**는 Apple 컨테이너 환경에서 동작하는 **경량형 Claude 어시스턴트**로, 약 500줄의 TypeScript 코드만으로 개인 맞춤형 AI 비서를 구현합니다. 각 그룹별 컨테이너 격리를 통해 대화와 파일 시스템을 분리하며, WhatsApp 메시징·스케줄링·웹 접근 등 주요 기능을 단일 프로세스에서 처리합니다. 설정 파일 대신 코드를 직접 수정하거나 **‘스킬(Skill)’ 파일**로 확장하는 구조를 채택해, 복잡한 프레임워크 없이도 안전하고 투명한 AI 비서 개발이 가능합니다.

## Topic Body

- **NanoClaw**는 Apple 컨테이너에서 실행되는 개인용 **Claude 기반 AI 어시스턴트**로, 단일 프로세스 구조와 소수의 파일로 구성된 경량형 시스템  
- 각 **그룹별 컨테이너 격리**를 통해 대화 기록과 파일 시스템을 분리하며, **WhatsApp 메시징**, **스케줄링 작업**, **웹 접근** 등을 지원  
- 설정 파일 없이 **Claude Code**가 설치와 커스터마이징을 안내하며, 사용자는 직접 코드를 수정해 자신에게 맞게 조정 가능  
- 새로운 기능은 코드 추가 대신 **‘스킬(Skill)’ 파일**로 확장하며, `/add-telegram`, `/convert-to-docker` 등 다양한 확장 요청이 제시됨  
- 복잡한 프레임워크 대신 **이해 가능한 보안 구조와 단순성**을 중시해, 개인 개발자나 스타트업이 안전하게 AI 비서를 구축할 수 있는 기반 제공  

---

### 프로젝트 개요
- NanoClaw는 **Apple Container** 환경에서 동작하는 개인용 **Claude 어시스턴트**로, 경량성과 보안성을 핵심으로 설계  
  - 단일 Node.js 프로세스에서 실행되며, 각 에이전트는 **리눅스 컨테이너** 내에서 격리된 파일 시스템을 사용  
  - 코드베이스는 약 500줄의 TypeScript로 구성되어 있으며, 사용자가 전체 구조를 **8분 내 이해 가능**하다고 설명  
- MIT 라이선스로 공개되어 있으며, GitHub에서 500개 이상의 **Star**를 획득  

### 설계 철학
- **이해 가능한 규모**: 마이크로서비스, 메시지 큐, 복잡한 추상화 없이 단일 프로세스로 구성  
- **격리를 통한 보안**: 명시적으로 마운트된 디렉터리만 접근 가능하며, Bash 명령도 컨테이너 내부에서만 실행  
- **단일 사용자 중심**: 프레임워크가 아닌 개인 맞춤형 소프트웨어로, 포크 후 직접 수정 가능  
- **설정 대신 코드 수정**: 설정 파일을 최소화하고, 원하는 동작은 코드 변경으로 구현  
- **AI 네이티브 접근**: 설치, 디버깅, 모니터링 모두 Claude Code 대화형 인터페이스를 통해 수행  
- **스킬 기반 확장성**: 기능 추가는 코드 변경이 아닌 `.claude/skills` 디렉터리의 스킬 파일로 처리  

### 주요 기능
- **WhatsApp I/O**: 휴대폰에서 Claude와 직접 메시지 교환  
- **그룹별 컨텍스트 격리**: 각 그룹은 고유한 `CLAUDE.md` 메모리와 컨테이너 파일 시스템을 가짐  
- **메인 채널**: 관리용 개인 채널로, 다른 그룹과 완전히 분리  
- **스케줄링 작업**: 주기적 작업 실행 및 자동 메시지 전송  
- **웹 접근**: 검색 및 콘텐츠 수집 기능  
- **선택적 통합**: `/add-gmail` 등 스킬을 통해 Gmail 등 외부 서비스 연동 가능  

### 커스터마이징
- 설정 파일 없이 Claude Code 대화로 직접 변경 가능  
  - 예: “트리거 단어를 @Bob으로 변경”, “응답을 더 짧게”, “매주 대화 요약 저장” 등  
- `/customize` 명령으로 단계별 수정 지원  
- 코드베이스가 작아 Claude가 직접 안전하게 수정 가능  

### 확장 및 기여 방식
- 새로운 기능은 **PR로 직접 추가하지 않고 스킬로 제공**  
  - 예: `/add-telegram`, `/add-slack`, `/add-discord` 등 통신 채널 확장  
  - `/convert-to-docker`로 Apple Container를 Docker로 전환  
  - `/setup-windows`로 WSL2 기반 Windows 지원  
  - `/add-clear`로 세션 요약 및 압축 기능 추가  
- 기여자는 스킬을 통해 자신의 포크를 변환하고, 이를 다시 프로젝트에 공유  

### 시스템 요구사항 및 구조
- **macOS Tahoe(26)** 이상, **Node.js 20+** , **Claude Code**, **Apple Container** 필요  
- 아키텍처 흐름:  
  `WhatsApp (baileys) → SQLite → Polling loop → Container (Claude Agent SDK) → Response`  
- 주요 파일 구성:  
  - `src/index.ts`: 메인 앱 및 WhatsApp 연결  
  - `src/container-runner.ts`: 컨테이너 실행 관리  
  - `src/task-scheduler.ts`: 스케줄링 기능  
  - `src/db.ts`: SQLite 연동  
  - `groups/*/CLAUDE.md`: 그룹별 메모리 저장  

### FAQ 요약
- **WhatsApp 사용 이유**: 개인적으로 WhatsApp을 사용하기 때문이며, 다른 채널은 스킬로 교체 가능  
- **Apple Container 선택 이유**: macOS 내장, 가볍고 빠름  
- **Linux 실행 가능 여부**: Claude Code를 통해 약 30분 내 포팅 가능  
- **보안성**: 컨테이너 격리 기반으로, 명시적 마운트 외 접근 불가  
- **설정 파일 부재 이유**: 설정 확산을 방지하고, 코드 중심 커스터마이징 유지  
- **디버깅 방법**: Claude Code에 직접 질문하여 문제 해결  
- **허용되는 변경 사항**: 보안·버그 수정 및 기본 구성 개선만 허용  

### 라이선스
- **MIT License**로 배포  
- 누구나 자유롭게 수정 및 재배포 가능

## Comments



### Comment 50453

- Author: neo
- Created: 2026-02-02T13:32:58+09:00
- Points: 1

###### [Hacker News 의견들](https://news.ycombinator.com/item?id=46850205) 
- 이걸 실제로 돌리는 게 너무 **위험하게 느껴짐**  
  지금은 괜찮아 보여도, 한 번 문제 생기면 끝임  
  이런 Claw 같은 걸 **공유 대화 공간**에 연결하는 건, 말 그대로 위험한 실험 같음  
  블랙햇들이 이미 주시 중이고, 결국 많은 사람이 크게 데일 것 같음  
  - 그럴 수도 있음. 예전에 다들 보안 허술한 phpBB나 Wordpress 플러그인 돌렸던 것처럼, 이번에도 같은 **역사 반복**일 수 있음  
  - 보안 문제도 있지만, 두 가지가 더 걱정임  
    1) OpenAI가 말한 것처럼 **광고가 답변에 섞이는** 일이 생기면 어떨지  
    2) 지금의 저렴한 가격이 **지속 불가능**해서 10배로 오르면 어떨지  
    지금은 싸게 LLM을 쓰면서도 광고 없는 황금기를 누리는 중일지도 모르겠음  
    나도 요즘 검색 결과가 너무 **스팸화**돼서, AI로 직접 비교나 견적을 묻는 식으로 쓰고 있음  
    하지만 곧 광고와 유료 추천이 섞인 답변을 받게 될까 걱정임  

- 요즘 내가 만든 코드를 공개할 때는, **문서나 README는 직접 손으로** 쓰려고 함  
  LLM이 쓴 냄새가 나는 문서는 프로젝트가 좋아도 흥미가 떨어짐  
  사람에게 전하려는 진심이 느껴지지 않음  
  오타가 있더라도 인간적인 설명이 훨씬 낫다고 생각함  
  참고로 작성자가 내 댓글 이후에 README를 수정했더라  
  [수정된 커밋 링크](https://github.com/gavrielc/nanoclaw/commit/40d41542d2f335a0ecb431142747a3b62c7111db)  
  - 작성자임. AI로 코딩했다는 걸 숨긴 적 없음. 거의 모든 커밋에 “Co-Authored-By: Claude Opus 4.5”라고 써 있음  
    네가 지적한 대로 AI 냄새가 나는 부분을 수정했고, 지금은 훨씬 나아졌음  
    이 코드는 걸작이 아니라 **내게 유용한 실용 코드**임  
    다른 사람에게도 참고용으로 도움이 되길 바람  
    주말 동안 보안 구조에 신경 써서 만든 거고, 지금은 일단 마무리해야 해서 rough한 상태로 올림  
    README를 보면 프로젝트의 맥락이 더 잘 이해될 것임  
  - 나도 완전 공감함. **AI가 쓴 README나 제품 소개문**은 진심이 안 느껴져서 흥미가 확 떨어짐  
    코드에 AI를 쓰는 건 괜찮지만, 소개문은 사람이 직접 써야 함  
  - 요즘 LLM 기반 프로젝트는 기능보다 **사람들의 관심을 끄는 포장**에 더 집중하는 경향이 있음  
    예전엔 코드 자체가 ‘노력의 증거’였는데, 이제는 너무 쉽게 만들어져서 무게감이 사라짐  
  - 심지어 README 내용이 **환각(hallucination)** 된 경우도 있음  
    [관련 스레드 링크](https://news.ycombinator.com/item?id=46850317)  

- Clawdbot의 장점 중 하나는 **모든 권한을 허용**한다는 점임  
  다만 이런 외부 액션이 어떻게 샌드박싱되는지는 의문임  
  Apple Container는 각 컨테이너가 **경량 VM과 1:1 매핑**돼서 꽤 안정적임  
  이를 활용한 일반 코드 실행 샌드박스 예시로 [instavm/coderunner](https://github.com/instavm/coderunner)가 있음  
  Claude Code 같은 AI와도 연동 가능함  
  - “모든 권한 허용”이라면, 시스템 파일에 **777 퍼미션** 주는 거랑 뭐가 다른지 궁금함  
  - 예전에 CS 실험실에서 **슈퍼유저 비밀번호**를 달라 했을 때 교수님이 안 줬던 게 떠오름  
    Clawdbot은 마치 100명의 2학년생이 문 두드리며 root 권한 달라는 느낌임  

- 이 프로젝트 멋져 보임  
  요즘 Claude Pro/Max 구독으로 Agent SDK를 쓸 수 있는지 궁금했는데,  
  [공식 Quickstart 문서](https://platform.claude.com/docs/en/agent-sdk/quickstart)에 따르면 가능하다고 함  
  설치 후 터미널에서 로그인하면 SDK가 자동 인증을 사용한다고 되어 있음  
  - 하지만 문서에 “**API 키 인증만 허용**한다”고도 써 있음  
    즉, 구독 계정으로 SDK를 직접 쓰는 건 안 된다는 뜻으로 보임  
    Anthropic이 이 부분을 명확히 해줬으면 좋겠음  
  - 작성자임. 나도 그게 헷갈려서 직접 만들어봄  
    Agents SDK를 쓰고 있어서 **TOS 위반은 아닐 것**이라 생각함  
    다만 컨테이너 안에서 인증 세션을 유지하는 방법을 몰라서 **OAuth 토큰을 환경변수로 주입**하는 꼼수를 씀  
    이게 유일한 보안 허점임. 악의적인 사용자가 프롬프트 인젝션으로 토큰을 빼낼 수도 있음  
    혹시 세션 인증을 컨테이너에서 제대로 연결하는 방법 아는 사람 있으면 도움 부탁함  
  - 덕분에 새로 알게 됨. 그럼 OpenClaw 관련 논란은 SDK 없이 호출해서 생긴 문제였던 듯함  
    이 문서대로라면 구독 계정으로도 자유롭게 **에이전트형 앱**을 만들 수 있는 것 같음  

- 비기술적인 사람들이 **환각률 감소**만 보고 모델을 과신하는 경향이 있음  
  하지만 진짜 위험은 **악성 프롬프트 공격**임  
  신용카드 초창기처럼, 아직은 피해가 드러나지 않았을 뿐  
  곧 여러 사례가 터지고 나서야 경각심이 생길 것임  

- 누군가 이런 **보다 안전한 버전**을 만들어주길 바랐음  
  OpenClaw는 유용하지만 동시에 무섭기도 함  
  그래서 내 Mac mini는 지금 꺼둔 상태임  

- Docker 대신 **Apple Container**를 쓴 게 흥미로움  
  아마 Mac Mini에서 **리소스 절약**을 위해서일 듯  
  다만 이게 표준 Linux 툴링을 제한하지는 않는지 궁금함  
  - Apple Container는 사실상 **microVM**이라, 일반 컨테이너보다 훨씬 강한 격리를 제공함  
  - (다른 댓글은 생략됨)  
  - 검색 엔진으로 직접 찾아보면 답이 나올 듯함  

- OpenClaw의 **소형 버전** 아이디어가 마음에 듦  
  코드가 약 2500줄 정도로 보이고, Apple Container 구조도 흥미로움  

- Quick Start에 `git clone https://github.com/anthropics/nanoclaw.git`라고 돼 있는데  
  그 저장소는 존재하지 않음. **공식 Anthropic 프로젝트인지** 궁금함  
  혹시 README가 환각으로 만들어진 건 아닌지 의심됨  
  - 실제로 Claude가 그 레포를 **환각으로 생성**했음  
    [관련 커밋 링크](https://github.com/gavrielc/nanoclaw/commit/dbf39a9484d9c66b55d8cad104a3012b656fc29f)  
  - 수정 완료함. 이건 **주말에 혼자 만든 실험용 프로젝트**임  
    Obsidian vault에 Claude Code를 붙이고, WhatsApp으로 크론 작업을 예약할 수 있게 함  
    거대한 OpenClaw보다 훨씬 단순하고 내가 이해할 수 있는 범위라서 마음이 놓임  
    다른 사람도 참고용으로만 쓰면 좋겠음  
  - 지금은 정상적으로 수정된 것 같음  

- 요즘 **vibe-coded 앱**을 보면, 그냥 Claude Code로 비슷한 걸 직접 만들어버림  
  남의 걸 쓰는 것보다 내 필요에 맞게 만드는 게 더 효율적임  
  - 맞음. 이제는 코드 작성과 유지 비용이 거의 **제로에 수렴**해서  
    외부 라이브러리의 가치가 줄고 있음  
    공급망 공격이나 라이선스 변경 위험도 사라짐  
    코드 자체가 문서이자 설정이 되는 시대임  
    그래서 OpenClaw보다 이런 **경량 맞춤형 버전**이 더 마음에 듦  
    포크해서 시작점으로 쓰거나 Claude에게 참고용으로 주면, 나만의 버전을 바로 만들 수 있음
