활발한 개발 중— 4700개 이상의 테스트 · 27개의 crates · 약 149k LOC
Crab Code는 Rust 네이티브 에이전틱 코딩 (agentic coding) CLI입니다. Claude Code의 도구 세트, 권한 모델 및 상호작용 패턴과 일치하면서도 모든 LLM 제공업체 (Anthropic / OpenAI / DeepSeek / Bedrock / Vertex)를 지원합니다.
git clone https://github.com/lingcoder/crab-code.git && cd crab-code
cargo build --release
export ANTHROPIC_API_KEY=sk-ant-...
...
더 자세한 내용은 crab --help를 참조하세요.
설정은 ~/.crab/config.toml에 저장됩니다.
(snake_case TOML); 전체 로딩 및 병합 명세는 docs/config-design.md에 있습니다.
.
설정 소스, 낮은 우선순위 → 높은 우선순위:
기본값 (defaults) < 플러그인 (plugin) < 사용자 (user) < 프로젝트 (project) < 로컬 (local) < --config <file> (파일 레이어)
<
환경 변수 (env) < CLI 플래그 (runtime 레이어)
사용자 (User):~/.crab/config.toml (또는 $CRAB_CONFIG_DIR/config.toml)
프로젝트 (Project):$PWD/.crab/config.toml (커밋됨)
로컬 (Local):$PWD/.crab/config.local.toml (gitignored)
CLI 주입 파일--config <path>
: 점 표기법 런타임 오버라이드 (dotted runtime override) (TOML 문법; 반복 가능)-c key.path=value
config.toml 예시:
api_provider = "deepseek"
base_url = "https://api.deepseek.com/v1"
model = "deepseek-chat"
...
환경 변수 (runtime 레이어)는 항상 파일보다 우선합니다. 상호 배타적인 변형(Mutually-exclusive variants)은 높은 순서부터 적용됩니다.
| 카테고리 (Category) | 변수 (Variable) | 목적 (Purpose) |
|---|
| Provider | CRAB_API_PROVIDER | 제공자 (Provider) 재정의: anthropic , openai , deepseek , bedrock , vertex , custom |
| Provider | CRAB_API_KEY | 범용 API 키 (모든 제공자 대상; 최우선 순위) |
| Provider | CRAB_MODEL | 모델 이름 (Model name) 재정의 |
| Provider | CRAB_BASE_URL | 범용 기본 URL (Base URL) 재정의 |
| Provider | CRAB_CONFIG_DIR | 설정 루트 (Config root) 위치 변경 (기본값 ~/.crab/ ) |
| Provider | ANTHROPIC_API_KEY / ANTHROPIC_AUTH_TOKEN | Anthropic 제공자 전용 |
| Provider | ANTHROPIC_BASE_URL | Anthropic 기본 URL (Base URL) (CRAB_API_PROVIDER=anthropic 일 때만 적용) |
| Provider | OPENAI_API_KEY | OpenAI 제공자 |
| Provider | OPENAI_BASE_URL | OpenAI 기본 URL (Base URL) (CRAB_API_PROVIDER=openai 일 때만 적용) |
| Provider | DEEPSEEK_API_KEY | DeepSeek 제공자 |
| Provider | DEEPSEEK_BASE_URL | DeepSeek 기본 URL (Base URL) (CRAB_API_PROVIDER=deepseek 일 때만 적용) |
| Bedrock | AWS_ACCESS_KEY_ID / AWS_SECRET_ACCESS_KEY | 정적 자격 증명 (Static credentials) |
| Bedrock | AWS_SESSION_TOKEN | 선택적 세션 토큰 (Session token) (임시 자격 증명) |
| Bedrock | AWS_REGION / AWS_DEFAULT_REGION | AWS 리전 (Region) |
| Bedrock | AWS_ROLE_ARN | Assume할 IAM 역할 ARN |
| Bedrock | AWS_WEB_IDENTITY_TOKEN_FILE | OIDC 토큰 파일 (Web-identity 역할 Assume용) |
| Bedrock | AWS_EXTERNAL_ID | 교차 계정 역할 (Cross-account role) Assume을 위한 외부 ID (External ID) |
| Bedrock | AWS_ROLE_SESSION_NAME | Assume한 역할에 대한 세션 이름 (Session name) |
| Vertex | GOOGLE_CLOUD_PROJECT / GCLOUD_PROJECT | GCP 프로젝트 ID |
| Vertex | GOOGLE_CLOUD_REGION | GCP 리전 (Region) (기본값: us-central1 ) |
| Vertex | GOOGLE_APPLICATION_CREDENTIALS | 서비스 계정 키 JSON 파일 경로 |
| Shell | CRAB_SHELL | bash/zsh 바이너리 경로 (Bash 도구의 자동 감지를 재정의) |
| Shell | SHELL | CRAB_SHELL이 설정되지 않았을 때의 POSIX 폴백 (Fallback) |
| Shell | CRAB_USE_POWERSHELL_TOOL | 참(Truthy) 값일 경우 Windows에서 PowerShell 도구를 노출 (기본값 off) |
| Agent | CRAB_COORDINATOR_MODE | |
1은 Agent Teams 코디네이터 모드를 활성화합니다 |
| Agent | CRAB_AUTO_DREAM |
1은 세션 간 백그라운드 메모리 통합 (memory consolidation)을 활성화합니다 |
| Agent | CRAB_AUTO_DREAM_MIN_HOURS |
통합 사이의 최소 시간 (기본값: 6) |
| Agent | CRAB_AUTO_DREAM_MIN_SESSIONS |
통합이 트리거되기 전의 최소 세션 수 (기본값: 2) |
| TLS | CRAB_CA_BUNDLE |
사용자 정의 CA 인증서 번들 (PEM) 경로 |
| TLS | SSL_CERT_FILE / SSL_CERT_DIR |
표준 OpenSSL CA 재정의 |
| Crab Code | Claude Code | OpenCode | Codex CLI | |
|---|
| Open Source | Apache 2.0 | Proprietary | MIT | Apache 2.0 |
| ... | | | | |
4개 레이어에 걸친 27개의 Rust crates. 자세한 내용은 docs/architecture.md를 참조하세요. | | | | |
Entry cli · daemon · acp
Engine agents · engine · session · tui · remote
Service api · tools · commands · hooks · mcp · skills · plugin · telemetry · ide · sandbox · swarm · cron · fs · memory · process
...
cargo build --workspace
cargo nextest run --workspace # 또는: cargo test --workspace
cargo clippy --workspace -- -D warnings
PR 환영합니다.