srothgan/claude-code-rust
요약
Claude Code의 성능과 사용자 경험을 개선하기 위해 Rust와 Ratatui를 사용하여 구축된 네이티브 터미널 인터페이스입니다. 기존 Node.js 기반 TUI의 메모리 사용량, 시작 속도, 입력 지연 문제를 해결하며 Anthropic의 Agent SDK와 호환됩니다.
핵심 포인트
- Rust와 Ratatui를 활용하여 메모리 사용량을 대폭 절감하고 시작 속도를 개선함
- Crossterm을 통한 직접적인 터미널 제어로 입력 지연 및 스크롤백 문제 해결
- Anthropic Agent SDK 브리지를 통해 기존 Claude Code의 기능(도구 호출, 파일 편집 등)을 그대로 유지
- 3계층 설계(Rust 프레젠테이션, SDK 브리지, Agent 런타임)를 통한 구조적 최적화
Claude Code를 위한 네이티브 Rust 터미널 인터페이스입니다. 성능과 더 나은 사용자 경험을 위해 구축되었으며, Anthropic의 기본 Node.js/React Ink TUI를 즉시 대체할 수 있습니다.
Claude Code Rust는 기존 Claude Code 터미널 인터페이스를 Ratatui 기반의 네이티브 Rust 바이너리로 교체합니다. 이는 로컬 Agent SDK 브리지(bridge)를 통해 동일한 Claude API에 연결됩니다. 도구 호출(tool calls), 파일 편집, 터미널 명령 및 권한과 같은 Claude Code의 핵심 기능은 변경 없이 그대로 작동합니다.
- Node.js 18+ (Agent SDK 브리지용)
- 기존 Claude Code 인증 (
~/.claude/config.json)
npm install -g claude-code-rust
배포된 패키지는 claude-rs 명령어를 설치하며, 설치 과정에서 사용자의 플랫폼에 맞는 사전 빌드된(prebuilt) 릴리스 바이너리를 가져옵니다.
만약 claude-rs가 오래된 글로벌 심(shim)으로 연결된다면, PATH에서 npm 글로벌 bin 디렉토리가 가장 앞에 오도록 설정하거나, 다시 시도하기 전에 오래된 심을 제거하십시오.
claude-rs
기본 Claude Code TUI는 React Ink를 사용한 Node.js 환경에서 실행됩니다. 이는 다음과 같은 실제적인 문제들을 야기합니다:
메모리 (Memory): 네이티브 바이너리의 약 20-50MB 대비 200-400MB의 기본 사용량
시작 속도 (Startup): 100ms 미만 대비 2-5초
스크롤백 (Scrollback): 히스토리를 유실하는 손상된 가상 스크롤링
입력 지연 (Input latency): 키 입력 처리 시 이벤트 큐(event queue) 지연
복사/붙여넣기 (Copy/paste): 네이티브 터미널 지원 대신 커스텀 구현 사용
Claude Code Rust는 Crossterm을 통한 직접적인 터미널 제어를 갖춘 단일 네이티브 바이너리로 컴파일함으로써 이 모든 문제를 해결합니다.
3계층 설계:
프레젠테이션 (Presentation) (Rust/Ratatui) - 키보드 입력과 브리지 클라이언트 이벤트를 동시에 처리하는 비동기 이벤트 루프(Tokio)를 포함한 단일 바이너리입니다. 구문 강조(syntax-highlighted)가 적용된 코드 블록과 가상 스크롤링이 지원되는 채팅 히스토리를 제공합니다.
Agent SDK 브리지 (Agent SDK Bridge) (stdio JSON 엔벨로프) - agent-sdk/dist/bridge.js를 자식 프로세스로 실행하며, stdin/stdout을 통해 줄 단위로 구분된 JSON 엔벨로프(envelopes)로 통신합니다. 사용자 메시지, 도구 업데이트 및 권한 요청을 위한 양방향 스트리밍을 지원합니다.
Agent 런타임 (Agent Runtime) (Anthropic Agent SDK) - TypeScript 브리지가 @anthropic-ai/claude-agent-sdk를 구동합니다.
, 이는 인증(authentication), 세션/쿼리 라이프사이클(session/query lifecycle), 그리고 도구 실행(tool execution)을 관리합니다.
이 프로젝트는 1.0 미만 버전이며 활발히 개발 중입니다. 참여 방법은 CONTRIBUTING.md를 참조하세요.
시작 속도는 이 TUI(Terminal User Interface)가 감싸고 있는 상위 Claude Agent SDK 런타임(runtime)에 의해 여전히 제약을 받습니다. Rust 인터페이스 자체는 빠르지만, 엔드 투 엔드(end-to-end) 준비가 완료되어 세션을 완전히 사용할 수 있기까지는 여전히 눈에 띄는 시간이 걸릴 수 있습니다. 이를 개선하는 것이 현재 활발히 진행 중인 작업 영역입니다.
이 프로젝트는 Apache License 2.0에 따라 라이선스가 부여됩니다. 개인 사용자, 다운스트림 패키저(downstream packagers), 그리고 상업적 채택자들이 사용 및 재배포를 간편하게 할 수 있도록 Apache-2.0을 선택했습니다.
이 프로젝트는 Anthropic과 제휴하거나, 보증받거나, 지원을 받지 않습니다.
사람들이 이런 부분을 걱정한다는 것을 알고 있기에, 이 프로젝트의 현재 상태에 대해 짧게 언급하겠습니다: claude-code-rust는 제가 Rust로 처음부터 직접 작성한 터미널 UI(terminal UI)입니다. 이는 최신 Claude Code 소스 유출본의 포크(fork), 복사본 또는 포트(port)가 아닙니다. 대신 다른 모든 서드파티(third-party) 도구와 마찬가지로, 런타임 의존성으로서 Anthropic의 공식 Agent SDK와 통신합니다. 개발 과정 중 어떤 시점에서도 Anthropic의 소스 코드를 읽거나 참조로 사용하지 않았습니다.
이 프로젝트는 Agent SDK를 통해 귀하의 기존 Claude Code 구독을 사용하며, Agent SDK의 약관은 그 위에서 구축하는 것을 허용합니다. 다른 커뮤니티 프로젝트들도 동일하게 수행하고 있습니다. 제가 파악하기로는 이 프로젝트를 사용하는 것은 문제가 없으나, 저는 변호사가 아닌 단독 유지 관리자(maintainer)입니다. Anthropic 측에서 변경 사항이 발생하면 이 섹션을 업데이트하고 그에 따라 프로젝트를 조정하겠습니다.
이 프로젝트의 소스 코드는 Apache-2.0 라이선스를 따릅니다. Agent SDK 자체는 독점적(proprietary)이며 Anthropic의 상업적 서비스 약관(Commercial Terms of Service)의 적용을 받습니다.
공식 Claude 문서는 https://claude.ai/docs 를 참조하세요.
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub Claude Ecosystem의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기