Claude Code의 오픈 소스 Rust 기반 프로덕션급 재작성 프로젝트 ClawCode
요약
Claude Code를 Rust 언어로 재작성한 오픈 소스 에이전트형 코딩 어시스턴트인 ClawCode가 공개되었습니다. 기존 Node.js 기반의 Claude Code보다 훨씬 빠른 시작 시간, 낮은 메모리 사용량, 단일 정적 바이너리 제공 등 압도적인 성능과 멀티 프로바이더 지원을 특징으로 합니다.
핵심 포인트
- Rust 기반 재작성을 통해 콜드 스타트 시간을 50ms 미만으로 단축하고 메모리 사용량을 약 12MB로 절감
- Anthropic뿐만 아니라 OpenAI 등 다양한 LLM 프로바이더를 지원하는 멀티 프로바이더 환경 제공
- 42개의 네이티브 도구와 개방형 플러그인/훅 아키텍처를 통한 높은 확장성 확보
- 자동 재시도(Exponential backoff) 및 요청 타임아웃 설정을 통한 프로덕션급 안정성 구현
- 업스트림 모델과의 100% 동작 일치를 검증하기 위한 자동화된 호환성 하네스 적용
Claude Code를 Rust로 재작성한 오픈 소스 프로덕션급 프로젝트.
즉시 사용 가능한 에이전트형 코딩 어시스턴트 (Agentic coding assistant). 네이티브 도구 호출 (Native tool calling). 멀티 프로바이더 (Multi-provider). 타협 없는 성능.
Quickstart • Why ClawCode • Architecture • Features • Providers • Contributing
# Clone and build
git clone https://github.com/StartripAI/claw_code.git
cd claw_code
...
끝입니다. ClawCode는 사용자의 프로바이더 (Provider)를 자동으로 감지하고, 세션을 시작하며, 42개의 네이티브 도구 (Native tools)를 즉시 사용할 수 있는 에이전트형 코딩 루프 (Agentic coding loop)로 사용자를 안내합니다.
| 문제점 (Pain Point) | Claude Code (Node.js) | ClawCode (Rust) |
|---|---|---|
| 시작 시간 (Startup time) | ~2s 콜드 스타트 (Cold start) | <50ms |
| 메모리 (Memory) | ~200MB 기본 사용량 | ~12MB |
| 바이너리 크기 (Binary size) | node_modules 지옥 | 단일 정적 바이너리 (Single static binary) |
| 오프라인 (Offline) | ❌ | ✅ 로컬 개발을 위한 모의 프로바이더 (Mock provider) |
| 멀티 프로바이더 (Multi-provider) | Anthropic 전용 | Anthropic + OpenAI + 모든 호환 프로바이더 |
| 확장성 (Extensibility) | 폐쇄형 훅 (Closed hooks) | 개방형 플러그인 및 훅 아키텍처 (Open plugin + hook architecture) |
| 안전성 (Safety) | JS 런타임 (JS runtime) | Rust 메모리 안전성 + 권한 샌드박스 (Permission sandbox) |
100% 동작 일치 (Behavioral parity)— 9개의 독립적인 차원에서 업스트림 참조 모델과 비교하여 자동화된 호환성 하네스 (Compatibility harness)를 통해 검증되었습니다. 단순한 장난감 클론이 아닙니다. 래퍼 (Wrapper)도 아닙니다. 프로덕션을 위해 밑바닥부터 재작성되었습니다.
┌──────────────────────────────────────────────────┐
│ claw (binary) │
│ CLI • REPL • Server • Voice • Remote • LSP │
...
12개의 워크스페이스 크레이트 (Workspace crates). 각 크레이트는 단일 책임을 가집니다. 순환 의존성 (Circular dependencies)은 전혀 없습니다.
42개의 네이티브 도구 (Native tools)— 파일 읽기/쓰기/편집, glob, grep, bash, 웹 페치/검색 (Web fetch/search), 노트북 편집, 구조화된 출력 (Structured output), 에이전트 하위 작업 (Agent sub-tasks) 등
네이티브 JSON 도구 호출 (Native JSON tool calling)— 문자열 해킹이 아닌 Anthropic의 tool_use 블록과 OpenAI의 function 호출을 사용합니다.
자동 재시도 (Automatic retries)— 429/5xx 에러 발생 시 지수 백오프 (Exponential backoff, 1s→2s→4s→8s→16s)를 적용하며, 최대 재시도 횟수 설정이 가능합니다.
요청 타임아웃 (Request timeouts)— 프로바이더별로 설정 가능하며 (기본 120초), 연결이 멈춰 있는 현상을 방지합니다.
지속성 세션 (Persistent sessions)— ID를 통해 이전 대화의 어떤 부분이든 재개 가능
자동 압축 (Auto-compaction)— 메시지가 임계값을 초과하면, 시스템 프롬프트 (System prompt)를 보존하면서 오래된 컨텍스트를 메모리로 압축
토큰 예산 강제 (Token budget enforcement)— 세션당 총 토큰 소비량에 대한 하드 캡 (Hard cap)을 설정하여 비용 폭주 방지
세션 메모리 (Session memory)— 주요 사실들은 전용 메모리 항목을 통해 압축 후에도 유지
3단계 권한 모델 (Three-tier permission model):
read-only (읽기 전용)
→ workspace-write (워크스페이스 쓰기)
→ danger-full-access (위험-전체 액세스)
도구 실행 전/후 훅 (Pre/post tool hooks)— 모든 도구 실행을 가로채거나, 수정하거나, 거부
패턴 기반 규칙 (Pattern-based rules)— Glob 스타일의 도구 권한 규칙 (Bash*, *Tool, 정확한 일치)
대소문자 구분 없는 매칭 (Case-insensitive matching)— 도구 이름의 대소문자와 관계없이 권한 규칙 작동
Anthropic— 스트리밍 SSE를 지원하는 Claude 4 / Sonnet / Haiku
OpenAI 호환 (OpenAI-compatible)— GPT-4o 또는 모든 API 호환 엔드포인트 (Ollama, vLLM, Together 등)
Mock— API 키 없이 오프라인 개발 및 테스트 가능
핫스왑 (Hot-swap)— /config provider openai 명령을 통해 세션 중간에 프로바이더 교체 가능
/status
/doctor
/config
/clear
/compact
/session
/permissions
/memory
/review
/export
/model
/help
/bug
/init
/version
/mcp
/skills
/cost
등 다수.
# 환경 변수 (Environment variables)
export CLAW_PROVIDER=anthropic # 또는: openai, openai-compatible
export CLAW_MODEL=claude-sonnet-4-20250514 # 지원되는 모든 모델
...
ClawCode는 상위 Claude Code 레퍼런스와 구현체를 비교 평가하는 내장 **호환성 하네스 (Compatibility harness)**를 제공합니다:
cargo run -p compat-harness -- score --manifest parity_manifest.toml
{
"repo1_structural_gate": true,
"repo1_tool_coverage": 100.0,
...
9/9 차원 모두 100%. 스텁 (Stub) 없음. 공백 없음.
| 지표 (Metric) | 값 (Value) |
|---|---|
| 언어 (Language) | 100% Rust (2024 edition) |
| ... |
# 테스트 실행 (Run tests)
cargo test --workspace
# 엄격한 린트 (Strict lint)
...
Ratatui TUI— 패널, 구문 강조 (Syntax highlighting) 및 라이브 스트리밍을 지원하는 전체 터미널 UI (Full terminal UI) -
MCP JSON-RPC client— 외부 도구 서버를 위한 네이티브 모델 컨텍스트 프로토콜 (Model Context Protocol) -
Multi-agent coordination— 공유 컨텍스트를 가진 병렬 서브 에이전트 (Parallel sub-agents) -
Persistent transcripts— 세션 전반에 걸쳐 검색 가능한 대화 기록 (Searchable conversation history) -
Plugin marketplace— 커뮤니티 기여 도구 팩 및 훅 (Hooks)
기여를 환영합니다! 버그 수정, 새로운 도구, 또는 성능 최적화 등 무엇이든 좋습니다:
- 저장소 포크 (Fork the repo)
- 기능 브랜치 생성 (
git checkout -b feat/amazing-feature) cargo clippy -- -D warnings통과 확인cargo test --workspace통과 확인- PR (Pull Request) 오픈
MIT — 자세한 내용은 LICENSE를 참조하세요.
Built with 🦀 by StartripAI
ClawCode가 시간을 절약해 주었다면, ⭐를 눌러주세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Claude Ecosystem의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기