본문으로 건너뛰기

NullClaw: 678KB로 완성하는 초경량 AI 어시스턴트 인프라

정석

NullClaw OpenGraph

AI 어시스턴트 인프라의 가장 큰 딜레마는 기능과 경량화 사이의 균형이다. 강력한 기능을 제공하려면 필연적으로 리소스 소비가 늘어난다. 하지만 NullClaw는 이 상식을 뒤엎는다.

678KB 정적 바이너리. 1MB RAM. 8ms 부팅. 그런데도 23+ AI 제공자, 18개 메시징 채널, 18개 이상의 도구를 완벽하게 지원한다. 심지어 $5짜리 보드에서도 돌아간다.


1. 왜 NullClaw인가

OpenClaw, NanoBot, PicoClaw, ZeroClaw… AI 어시스턴트 인프라는 이미 여러 선택지가 있다. 그런데 왜 또 다른 프로젝트가 필요할까? 답은 **“극한의 효율성”**이다.

OpenClawNanoBotPicoClawZeroClawNullClaw
언어TypeScriptPythonGoRustZig
RAM> 1 GB> 100 MB< 10 MB< 5 MB~1 MB
시작 시간> 500 ms> 30 ms< 1 s< 10 ms< 8 ms
바이너리 크기~28 MBN/A~8 MB3.4 MB678 KB
테스트1,0173,230+
실행 비용$599~$50$10$10$5

NullClaw는 “Null overhead. Null compromise. 100% Zig.”라는 철학으로, 아무것도 없는 상태에서 시작해 아무것도 희생하지 않는 접근을 추구한다.


2. 핵심 기능

2.1 광범위한 AI 모델 지원 (23+ providers)

OpenRouter, Anthropic, OpenAI, Gemini, Vertex AI, Ollama, Venice, Groq, Mistral, xAI, DeepSeek, Together, Fireworks, Perplexity, Cohere, Bedrock 등 주요 AI 제공자를 모두 지원한다. 특히 custom:https://... 형태로 모든 OpenAI 호환 API를 즉시 통합할 수 있어, 자체 호스팅 모델이나 프라이빗 엔드포인트도 문제없다.

2.2 다채널 메시징 (18 channels)

CLI, Telegram, Discord, Slack, Signal, Matrix, WhatsApp, IRC, iMessage, Email, Lark/Feishu, DingTalk, Line, OneBot, QQ, Nostr, MaixCam, Mattermost까지 지원한다. 각 채널은 vtable 인터페이스로 구현되어 있어, 설정만 변경하면 언제든 교체 가능하다.

2.3 하이브리드 메모리 시스템

SQLite 기반으로 FTS5 전체 텍스트 검색과 벡터 유사도 검색을 결합한 하이브리드 검색을 제공한다. Markdown, Redis, PostgreSQL, LanceDB, API 백엔드도 선택 가능하다. 임베딩 제공자로는 OpenAI, Gemini, Voyage, Ollama를 지원하며, 자동 아카이브/퍼지와 스냅샷 마이그레이션 기능도 포함되어 있다.

2.4 보안 기본값


3. 기술적 깊이

3.1 Vtable 기반 플러그인 아키텍처

NullClaw의 모든 서브시스템은 ptr: *anyopaque + vtable: *const VTable 패턴을 따른다.

Provider → 23+ AI 모델 제공자
Channel → 18 메시징 채널
Tool → 18+ 도구
Memory → 다양한 백엔드
Observer → 관측 가능성 훅
RuntimeAdapter → Native, Docker, WASM
Sandbox → Landlock, Firejail, Bubblewrap, Docker
Tunnel → Cloudflare, Tailscale, ngrok, Custom
Peripheral → Serial, Arduino, RPi GPIO, STM32

이 설계 덕분에 새로운 Provider나 Channel을 추가할 때 기존 코드를 수정할 필요 없이 새로운 구현체만 추가하면 된다.

3.2 의존성 최소화

외부 런타임, VM, 프레임워크 없이 libc + 선택적 SQLite만으로 동작한다. 소스 규모는 ~110개 파일, ~166,000줄 Zig 코드, 3,230+ 테스트, 0 leak 요구사항이다.

3.3 CalVer 버전 관리

YYYY.M.D 형식의 CalVer을 사용한다 (예: v2026.3.4). 시맨틱 버전닝보다 날짜 기반 버전이 “언제 출시되었는지”를 직관적으로 보여준다.


4. 실제 사용법

설치

# 소스에서 빌드 (Zig 0.15.2 필요)
git clone https://github.com/nullclaw/nullclaw.git
cd nullclaw
zig build -Doptimize=ReleaseSmall  # 678 KB 바이너리 생성

# 또는 Homebrew
brew install nullclaw

기본 설정

# 빠른 설정
nullclaw onboard --api-key sk-... --provider openrouter

# 대화형 설정 마법사
nullclaw onboard --interactive

사용

# 채팅
nullclaw agent -m "Hello, nullclaw!"  # 단발 메시지
nullclaw agent  # 대화형 모드

# 게이트웨이 런타임 시작
nullclaw gateway  # 127.0.0.1:3000
nullclaw gateway --port 8080  # 커스텀 포트

# 상태 확인
nullclaw status  # 시스템 전체 상태
nullclaw doctor  # 진단

5. 엣지 배포 시나리오

NullClaw의 진가는 제한된 환경에서 발휘된다.

Cloudflare Worker + WASM

examples/edge/cloudflare-worker/ 예제에서는 호스트(JavaScript)가 HTTP, 시크릿, Telegram webhook, OpenAI 호출을 처리하고, WASM 모듈(Zig)이 응답 정책을 결정하는 패턴을 보여준다.

// agent_core.zig - 정책 결정 코어
pub export fn choose_policy(
    text_len: u32,
    has_question: u32,
    has_urgent_keyword: u32,
    has_code_hint: u32,
) u32 {
    const urgent_score = has_urgent_keyword * 3 + (if (text_len > 900) 1 else 0);
    const detailed_score = has_question * 2 + has_code_hint * 2 + (if (text_len > 260) 1 else 0);

    if (urgent_score >= 3) return 2; // urgent
    if (detailed_score >= 3) return 1; // detailed
    return 0; // concise
}

$5 보드에서 실행

Raspberry Pi Zero, Orange Pi Zero, 심지어 더 저렴한 보드에서도 문제없이 동작한다. 1MB RAM 요구사항은 대부분의 임베디드 환경에서 달성 가능하다.


6. OpenClaw와의 관계

NullClaw는 OpenClaw의 경량화 파생 프로젝트로 시작했지만, 이제는 독자적인 생태계를 구축하고 있다.

마이그레이션 지원:

nullclaw migrate openclaw --dry-run  # 미리보기
nullclaw migrate openclaw  # 실제 마이그레이션

기존 OpenClaw 사용자는 설정 파일과 메모리를 그대로 가져올 수 있다.


마치며: “비운다는 것”의 의미

NullClaw의 “Null”은 단순히 “없다”는 뜻이 아니다. **“불필요한 것을 비워 핵심만 남긴다”**는 철학이다.

결국 678KB라는 놀라운 크기는 “얼마나 많이 넣었는가”가 아니라 **“얼마나 많이 비웠는가”**의 결과다.

AI 어시스턴트 인프라를 고민 중이라면, 한번쯤 NullClaw의 접근을 살펴볼 만하다. 무엇을 비울 수 있을지, 그리고 그 비움이 무엇을 가능하게 할지.


🔗 관련 정보

이전
Shannon: 96.15% 정확도의 자율 AI 침투 테스터
다음
my-claude-code-asset: Six Thinking Hats와 TTH로 진화한 Claude Code 하네스