rtk — AI 토큰을 절약하는 도구, 그리고 나의 설정 실수
rtk — Rust Token Killer
rtk는 LLM 개발 세션의 명령 출력을 다이어트해주는
CLI 프록시다. 에이전트가 git status, ls, npm run build 같은 명령을 돌릴 때마다
장황한 출력이 그대로 컨텍스트에 쌓이는데, rtk를 거치면 같은 정보를 압축된 형태로
받는다 — 흔한 개발 명령에서 토큰 60~90% 절약을 내세운다. 의존성 없는 Rust
단일 바이너리고, GitHub 스타가 7만 개를 넘는 인기 도구다.
동작 방식이 우아하다: Claude Code의 훅(hook)에 끼워두면 에이전트가 치는 명령이
투명하게 rtk git status처럼 재작성된다. 에이전트는 자기 명령이 프록시를
거치는지도 모른다. 그리고 rtk gain으로 얼마나 아꼈는지 실측할 수 있다 —
이 측정 명령이 오늘 이야기의 시작이다.
쓰려면 두 명령이면 된다:
brew install rtk # 설치
rtk init -g # Claude Code 훅 연결 — 이걸 잊으면 오늘 이야기가 된다
설치는 2주 전에 했다. 오늘 점검해봤다.
Total commands: 159
Tokens saved: 0 (0.0%)
[warn] No hook installed — run `rtk init -g`
절약률 0%. 159개 명령을 처리하는 동안 단 한 토큰도 아끼지 못했다. 이유는
허무하다 — 설치만 하고 rtk init -g를 안 돌렸다. 훅이 없으면 rtk는 아무것도
가로채지 않는다. 도구는 2주간 성실하게 아무 일도 하지 않았다.
설치는 작동이 아니다. 효과를 주장하는 도구는 효과를 측정해야 한다. 이 사건이
발견된 것도 rtk gain이라는 측정 명령이 0을 정직하게 보여줬기 때문이다.
무죄인 용의자
더 부끄러운 건 두 번째 이야기다.
같은 날 우리 AI 파트너 티아는 하루 종일 이상한 오류를 겪었다. ls를 치면
--icons 옵션 에러가 나고, cat은 낯선 도구의 사용법을 뱉었다. 티아의 진단:
“rtk가 명령을 재작성하나 보다.” 그 뒤로 티아는 rtk를 피해 다녔다 — find로
우회하고, 명령이 깨질 때마다 “rtk에 먹혔네”라고 기록했다.
그런데 위에서 봤듯이, rtk는 훅이 없어서 아무것도 하지 않고 있었다. 알리바이가 완벽한 용의자를 종일 심문한 것이다.
진범은 ~/.zshrc였다.
alias ls="eza --icons" # ls → eza (아이콘 표시)
alias cat="bat" # cat → bat (구문 하이라이팅)
alias find="fd" # find → fd (직관적 검색)
사람 눈에 예쁘라고 넣어둔 모던 CLI 별칭들. Claude Code의 셸은 사용자 프로필을
상속하므로, 에이전트가 POSIX 문법으로 말을 걸면 eza가 자기 문법으로 알아듣는다.
ls -lt의 -t(시간순 정렬)를 eza는 --time 옵션의 값이 빠졌다고 오해했다.
수정은 두 줄
에이전트 세션에만 별칭을 끄면 된다. Claude Code는 $CLAUDECODE 환경변수를
세팅하므로:
if [ -z "$CLAUDECODE" ]; then
alias ls="eza --icons"
alias cat="bat"
alias find="fd"
fi
사람 터미널에선 아이콘이 반짝이고, 에이전트에겐 순정 ls가 돌아간다.
rtk 훅도 마저 심었다. 재밌는 디테일: rtk init -g는 비대화 모드에서 설정 파일
패치를 스스로 거절하고 수동 안내문을 내놨다. 남의 설정을 함부로 안 고치는
조심스러운 도구 — 이런 건 신뢰가 간다.
수리 직후의 재점검:

훅이 물리기 시작해 절약이 0에서 0.1%로 움직였고(첫 rtk grep은 24.2%를 아꼈다),
rtk discover는 “No missed savings found”를 돌려줬다. 텔레메트리는 거절 상태
그대로 — 측정은 로컬에서, 데이터는 우리 것.
배운 것
- 설치했다 ≠ 작동한다. 도구를 들이면 효과를 한 번은 실측하라. 측정 명령이 있는 도구를 고르는 것도 방법이다.
- 증상이 비슷하다고 범인이 같은 건 아니다. 티아는 “명령이 둔갑했다”는 증상에서 “명령을 재작성하는 도구”로 패턴 매칭했고, 알리바이 확인은 하루가 끝날 때야 했다. 용의자를 지목하면 알리바이부터 확인할 것 — 사람이든 AI든.
- 에이전트와 사람은 같은 셸을 산다. 사람을 위한 치장이 에이전트에겐 소음일 수 있다. 세션 변수로 방을 나눠주자.