TL;DR: RTK는 Rust로 작성된 CLI 프록시 도구로, Claude Code, Cursor, Gemini CLI 같은 LLM 프로그래밍 도구가 명령을 실행할 때 출력물을 자동으로 필터링하고 압축해서 토큰 소비를 60-90% 줄여줍니다. 단일 바이너리 파일, 제로 의존성, 100개 이상 명령 지원, 설치는 한 줄이면 끝납니다.
Claude Code, Cursor, Gemini CLI 같은 AI 프로그래밍 보조 도구를 매일 쓰고 계신다면, 이런 고민 한 번쯤 해보셨을 겁니다. AI가 git status, ls, cat, cargo test 같은 명령을 실행할 때마다 원본 출력이 그대로 LLM 컨텍스트 창에 들어가고, 토큰이 마구 소모된다는 거죠.
30분 코딩 세션에서 약 118,000개 토큰이 소모되는데, 그중 94,100개가 불필요한 정보입니다.
RTK는 바로 이 문제를 해결하려고 나왔습니다. Rust로 작성되었고, 크기도 작으며(단일 바이너리, 제로 의존성), 명령 실행 경로에서 출력을 가로채서 노이즈를 지능적으로 걸러내고 핵심 정보만 남깁니다. 30분 세션의 토큰 소비가 118,000개에서 약 23,900개로 줄어드니 — 80% 절약이죠.
RTK란?
RTK는 "Rust Token Killer"의 약자로, 여러분과 LLM 사이에서 동작하는 CLI 프록시 레이어입니다. LLM도 아니고, IDE 플러그인도 아닙니다. 아주 똑똑한 "중개인"이죠.
RTK 없음: RTK 사용 후:
Claude --git status--> shell --> git Claude --git status--> RTK --> git
^ | ^ | |
| ~2,000 tokens (원본 출력) | | ~200 tokens | 지능형 필터링 |
+-----------------------------------+ +------- (압축 출력) -----+----------+
AI 도구가 명령을 실행할 때 RTK는 이렇게 작동합니다:
- 지능형 필터링 — 주석, 공백, 템플릿 텍스트 제거
- 지능형 그룹핑 — 유사 항목을 디렉토리/유형별로 집계 (파일은 디렉토리별로 분류, 에러는 유형별로 그룹화)
- 지능형 잘라내기 — 핵심 컨텍스트는 유지하고 중복 내용만 삭제
- 중복 제거 및 병합 — 반복되는 로그 라인을 카운트로 통합
프로젝트 정보:
| 속성 | 값 |
|---|---|
| GitHub | rtk-ai/rtk |
| 언어 | Rust |
| 라이선스 | Apache 2.0 |
| Stars | 68,000+ |
| 최신 버전 | 0.28.2 |
| 의존성 | 없음 (단일 정적 바이너리) |
RTK 설치
RTK 설치 방법은 아주 간단합니다. 런타임 의존성 없이 독립 실행형 바이너리 하나면 됩니다.
macOS / Linux
추천: Homebrew
brew install rtk
빠른 설치 스크립트:
curl -fsSL https://raw.githubusercontent.com/rtk-ai/rtk/refs/heads/master/install.sh | sh
~/.local/bin에 설치되며, 이 경로가 PATH에 있는지 확인하세요:bash echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc source ~/.bashrc
Cargo로 설치:
cargo install --git https://github.com/rtk-ai/rtk
Windows
GitHub Releases에서 rtk-x86-64-pc-windows-msvc.zip을 다운로드하고, 압축을 풀어서 rtk.exe를 PATH에 있는 디렉토리(예: C:\Users\<사용자>\.local\bin)에 넣으세요.
⚠️ exe를 더블클릭해서 실행하지 마세요. 명령줄(PowerShell/CMD/Windows Terminal)에서 실행해야 합니다.
설치 확인
rtk --version # "rtk 0.28.2"가 표시되어야 함
rtk gain # 토큰 절약 통계가 표시되어야 함
이름 충돌 경고: crates.io에는 "rtk"(Rust Type Kit)라는 다른 프로젝트도 있습니다.
rtk gain명령이 에러를 낸다면 잘못된 걸 설치한 겁니다. 위의cargo install --git방식으로 다시 설치하세요.
빠른 시작: 3분 만에 AI 도구에 연결하기
설치가 끝났다면, AI 프로그래밍 도구에서 RTK를 활성화하는 데는 단 한 단계만 필요합니다:
# Claude Code / Copilot (기본값)
rtk init -g
# Gemini CLI
rtk init -g --gemini
# Codex (OpenAI)
rtk init -g --codex
# Cursor
rtk init -g --agent cursor
# Windsurf
rtk init -g --agent windsurf
# Cline / Roo Code
rtk init --agent cline
# Kilo Code
rtk init --agent kilocode
# Google Antigravity
rtk init --agent antigravity
-g(또는 --global) 파라미터의 역할: AI 도구의 설정 파일을 자동으로 다시 작성해서, 자주 쓰는 명령(예: git status)을 전부 rtk git status로 바꿔줍니다. AI 도구를 재시작하면 적용됩니다.
# Claude Code 재시작 후 테스트
git status # 자동으로 rtk git status로 재작성됨
⚠️ 훅(hook)은 Bash 도구 호출에서만 작동합니다. Claude Code의 내장 도구(
Read,Grep,Glob등)는 Bash 훅을 거치지 않으므로 자동으로 재작성되지 않습니다. 이런 상황에서도 압축 출력을 얻으려면 직접 셸 명령(cat/rg/find)을 사용하거나rtk read,rtk grep,rtk find를 수동으로 호출하세요.
RTK가 지원하는 명령一览
RTK는 100개 이상의 명령에 대한 출력 압축을 지원하며, 파일 조작, Git, 테스트, 빌드, 패키지 관리, 클라우드 서비스 등 다양한 시나리오를 커버합니다.
파일 조작
rtk ls . # 지능형 디렉토리 트리 (토큰 -80%)
rtk read file.rs # 지능형 파일 읽기
rtk read file.rs -l aggressive # 함수 시그니처만 유지 (함수 본문 제거)
rtk smart file.rs # 2줄 휴리스틱 코드 요약
rtk find "*.rs" . # 압축된 find 결과
rtk grep "pattern" . # 그룹핑된 검색 결과
rtk diff file1 file2 # 압축된 diff (파일이 다르면 exit 1)
Git 조작
rtk git status # 컴팩트 상태
rtk git log -n 10 # 한 줄 커밋 기록
rtk git diff # 압축된 diff
rtk git add # → "ok"
rtk git commit -m "msg" # → "ok abc1234"
rtk git push # → "ok main"
rtk git pull # → "ok 3 files +10 -2"
git push 결과 비교가 정말 인상적입니다:
# git push (15줄, ~200 tokens) # rtk git push (1줄, ~10 tokens)
Enumerating objects: 5, done. ok main
Counting objects: 100% (5/5), done.
Delta compression using up to 8 threads.
Compressing objects: 100% (3/3), done.
Writing objects: 100% (3/3), 456 bytes | 456.00 KiB/s, done.
...
15줄에서 1줄로 압축, 토큰 95% 감소.
테스트 러너
rtk pytest # Python 테스트 (-90%)
rtk cargo test # Rust 테스트 (-90%)
rtk go test # Go 테스트 (NDJSON, -90%)
rtk jest # Jest 컴팩트 출력
rtk vitest # Vitest 컴팩트 출력
rtk playwright test # E2E 테스트 결과 (실패만)
rtk err <명령어> # 임의 명령에서 에러 추출
rtk test <명령어> # 범용 테스트 래퍼 — 실패만 (-90%)
빌드 & Lint
rtk tsc # TypeScript 에러 파일별 그룹핑
rtk cargo build # Cargo 빌드 (-80%)
rtk cargo clippy # Cargo clippy (-80%)
rtk ruff check # Python linting (JSON, -80%)
rtk golangci-lint run # Go linting (JSON, -85%)
rtk next build # Next.js 빌드 압축
rtk prettier --check . # 포맷이 필요한 파일
Docker & 컨테이너
rtk docker ps # 컴팩트 컨테이너 목록
rtk docker images # 컴팩트 이미지 목록
rtk docker logs <컨테이너> # 중복 제거 로그
rtk kubectl pods # 컴팩트 Pod 목록
rtk kubectl logs <pod> # 중복 제거 로그
AWS CLI
rtk aws sts get-caller-identity # 한 줄 신원 정보
rtk aws ec2 describe-instances # 컴팩트 인스턴스 목록
rtk aws lambda list-functions # 이름/런타임/메모리 (키 제거)
rtk aws s3 ls # 잘린 목록 + tee로 복구
rtk aws dynamodb scan # 타입 어노테이션 펼치기
데이터 분석
rtk json config.json # 구조 표시 (값 제거)
rtk deps # 의존성 요약
rtk env -f AWS # 필터링된 환경변수
rtk log app.log # 중복 제거 로그
rtk summary <긴 명령어> # 휴리스틱 요약
토큰 절약 분석: RTK 효과는 어느 정도?
RTK는 내장된 상세 통계 기능으로 얼마나 많은 토큰을 절약했는지 명확하게 보여줍니다:
rtk gain # 요약 통계
rtk gain --graph # ASCII 차트 (최근 30일)
rtk gain --history # 최근 명령 이력
rtk gain --daily # 일별 상세
rtk gain --all --format json # JSON 내보내기 (대시보드용)
rtk discover # 활용되지 않은 절약 기회 발견
rtk discover --all --since 7 # 모든 프로젝트, 최근 7일
rtk session # 최근 세션의 RTK 적용률 표시
전역 파라미터
-u, --ultra-compact # ASCII 아이콘 + 인라인 포맷 (추가 토큰 절약)
-v, --verbose # 상세도 증가 (-v, -vv, -vvv)
실전: RTK + Claude Code의 하루
Rust 프로젝트 전업 개발자라고 가정하고, 하루 업무 흐름을 따라가 보겠습니다:
아침: 코드 리뷰
# 오늘의 커밋 확인
git log --oneline --since="today" # rtk가 한 줄 커밋 요약으로 압축
# PR 목록 확인
gh pr list # rtk가 컴팩트 PR 테이블로 출력
# 특정 PR 상세 확인
gh pr view 42 # rtk가 PR 상세 + 상태 체크 출력
오전: 기능 개발
# 프로젝트 구조 확인
ls -la # rtk 디렉토리 트리 (~150 tokens vs ~800)
# 핵심 파일 확인
read src/main.rs # rtk 지능형 읽기 (시그니처 + 핵심 로직 유지)
# 테스트 실행
cargo test # rtk 실패 테스트만 (-90%)
# 커밋 & 푸시
git commit -m "feat: add auth" # rtk → "ok abc1234"
git push # rtk → "ok main"
오후: CI 디버깅
# CI 실행 결과 확인
gh run list # rtk 컴팩트 워크플로우 상태
# 실패 원인 파악
docker ps # rtk 컴팩트 컨테이너 목록
docker logs my-container # rtk 중복 제거 로그
# 수정 후 재테스트
rtk test pytest # 범용 테스트 래퍼, 실패만 표시
하루 동안 얼마나 절약했을까?
| 시나리오 | 원본 토큰 | RTK 토큰 | 절약 |
|---|---|---|---|
| 디렉토리/파일 탐색 | 50,000 | 10,000 | -80% |
| Git 조작 | 18,100 | 3,700 | -80% |
| 테스트 실행 | 41,000 | 4,100 | -90% |
| 빌드/Lint | 18,000 | 3,600 | -80% |
| 기타 | 10,000 | 2,000 | -80% |
| 합계 | 137,100 | 23,400 | -83% |
Claude 3.5 Sonnet 기준 $10/백만 토큰으로 계산하면, 하루에 약 $1.14를 아낄 수 있습니다. 한 달 20일 근무면 약 $22.8이죠. 적어 보일까요? 하지만 10명 팀이라면요? 월 $228, 연간 $2,736입니다.
Claude Opus 같은 더 비싼 모델을 쓴다면 절약 금액은 훨씬 더 커집니다.
아키텍처 원리
RTK의 디자인 철학은 간단합니다: LLM이 할 수 있는 일은 하지 말고, LLM이 볼 필요가 없는 것만 처리하자.
// 의사 코드: RTK의 핵심 처리 흐름
fn process_command(cmd: &str, output: &str) -> String {
match cmd_type(cmd) {
CmdType::GitStatus => compact_git_status(output),
CmdType::TestRunner => failures_only(output),
CmdType::FileList => group_by_dir(output),
CmdType::Logs => deduplicate(output),
CmdType::Build => errors_only(output),
_ => heuristic_summary(output),
}
}
RTK는 각 명령 유형마다 다른 압축 전략을 적용합니다:
git status: 수정된 파일의 간단한 목록만 유지, staged/unstaged 상태 상세 설명 제거cargo test: 실패한 테스트 케이스만 표시, 통과한 테스트는 한 줄 통계로 통합ls/find: 디렉토리별로 그룹핑, 파일명만 표시, 권한/크기/날짜 제외docker logs: 중복 행 제거, 동일 로그는 첫 표시 + 카운트aws describe-*: 메타데이터 제거, 핵심 속성만 유지 (민감 정보 자동 필터링)
RTK 바이너리는 컴파일 후 몇 MB에 불과하고, 시작 오버헤드는 10ms 미만이라 거의 체감되지 않습니다.
사용 시나리오와 제한사항
✅ 매우 적합한 경우
- AI 프로그래밍 보조 도구 헤비 유저: Claude Code, Cursor, Gemini CLI로 하루 4시간 이상 작업
- 다중 언어 프로젝트: Rust/Go/Python/TypeScript 혼합 프로젝트, 다양한 테스트 러너 모두 커버
- 팀 협업: 토큰 예산 통일, CI/CD에서 LLM 호출 비용 절감
- 클라우드 배포: CI 파이프라인에서 AI 도구 사용 시 (토큰 과금)
⚠️ 주의사항
- 훅은 Bash 호출만 커버: Claude Code의 내장 도구는 RTK를 거치지 않음
- 과도한 압축으로 컨텍스트 손실 가능: 복잡한 문제 디버깅 시
--verbose로 전체 출력 확인 필요 - 재적응 필요: AI 도구 출력이 짧아지면 AI에게 질문하는 방식도 조정해야 할 수 있음
요약
RTK는 제가 본 가장 실용적이고 즉각적인 효과가 있는 AI 프로그래밍 보조 도구 중 하나입니다. 과장도 없고, 화려한 UI도 없습니다. 그냥 조용히 작동하는 Rust 바이너리 하나일 뿐이지만, 매일 토큰을 아끼고, 돈을 절약하고, 속도를 높여줍니다.
30초 설치, 평생 혜택. 이게 오픈소스 정신입니다 — 최소한의 코드로 가장 실제적인痛点(고통)을 해결하는 것.
빠른 시작:
brew install rtk # macOS
rtk init -g # Claude Code 연동 활성화
# Claude Code 재시작, 토큰 절약 시작
AI 프로그래밍 도구가 하루에 수십 개에서 수백 개 명령을 실행한다면, RTK는 꼭 시도해볼 만합니다. 68K+ GitHub Stars가 이미 그 가치를 증명했습니다 — 이제 여러분의 차례입니다.
관련 링크:
- GitHub: rtk-ai/rtk
- 공식 사이트: rtk-ai.app
- Discord: 커뮤니티交流
- 아키텍처 문서: ARCHITECTURE.md