AIDive

Claude Code 토큰 절약 도구 4개 테스트, 하나는 오히려 더 비쌌다

AIDive · 게시

코딩 에이전트

JetBrains는 아니라고, 제 컴퓨터는 1,160만이라고

2026년 7월 JetBrains는 약 320달러어치 API 크레딧, 과금된 425회 시행을 들여 rtk를 검증했다. Claude Code에서 토큰을 아끼려고 수만 명의 개발자가 설치한 셸 프록시다. 결론은 태스크당 7.6% 더 비싸졌다는 것. 그 2주 전 같은 팀은 토큰을 65% 줄여준다고 광고하는 스킬 caveman을 측정해 8.5%를 얻었다. 그런데 제 컴퓨터에서는 rtk gain이 25,599개 명령에 걸쳐 1,160만 토큰을 아꼈다고 보고한다.

두 숫자 모두 진짜다. 다만 같은 것을 재지 않는다. 하나는 완료된 태스크당 비용이고, 다른 하나는 bash 출력 바이트다.

숫자 무엇을 재는가 출처
태스크당 +7.6% (p=0.004) rtk를 설치한 상태에서 태스크 전체 비용 JetBrains, 425회 시행, 약 320달러
출력 토큰의 8.5% 에이전트 작업에서 측정된 caveman의 절감 JetBrains, 82개 짝지은 태스크
65% caveman이 광고하는 절감 caveman README
1,160만 절감 (41.6%) rtk가 압축한 bash 출력 바이트 rtk gain, 25,599개 명령

이것이 네 개짜리 스택이다. graphify, rtk, Superpowers, caveman. 2026-09-02 기준 GitHub 스타 합계 575,612개. 각각이 청구서의 다른 조각을 건드린다.

도구 스타 (2026-09-02) 언어 라이선스
Superpowers 280,792 Markdown 스킬 MIT
graphify 113,946 Python Apache-2.0
caveman 102,548 Go MIT (스킬)
rtk 78,326 Rust Apache-2.0

토큰은 실제로 어디로 가는가

Claude Code 청구서에는 두 면이 있다. 입력 토큰은 모델이 읽는 모든 것이다. 모든 셸 명령의 출력, 여러분의 프롬프트, 시스템 프롬프트, 그리고 호출마다 다시 실려 가는 대화 기록 전체. 출력 토큰은 모델이 쓰는 모든 것이다.

rtk 자체 문서가 정확히 그 트리를 그리고, 출시 글에는 없던 한 문장을 덧붙인다. "출력 바이트가 90% 줄어든 명령이 여러분의 세션을 90% 싸게 만들지는 않는다."

JetBrains는 읽기 쪽에 숫자를 붙였다. 기준 세션 83개를 재생해 도구 출력 190만 자를 분류했다.

모델이 읽는 것의 조각 문자 수 비중
rtk가 압축할 수 있는 셸 출력 373,339 19.7%
rtk에 규칙이 없는 셸 출력 879,326 46.3%
rtk를 아예 거치지 않는 파일 읽기·검색 도구 646,613 34.0%

모델이 읽는 것 중 셸 프록시로 압축 가능한 부분은 5분의 1뿐이다. Claude Code 내장 도구인 Read, Grep, Glob은 Bash 훅을 한 번도 통과하지 않는다.

여기서 네 도구의 지도가 나온다. graphify는 에이전트가 읽는 양을 줄이고, rtk는 셸이 돌려주는 양을 줄이며, Superpowers는 각 태스크가 짊어지는 기록을 줄이면서 어떤 모델이 그것을 짊어질지 고르고, caveman은 에이전트가 말하는 양을 줄인다. 읽기 쪽이 청구서의 더 큰 절반이므로 순위는 거기서 시작한다.

graphify: 줄이 아니라 노드를 걷다

graphify는 코드베이스를 문서, SQL 스키마, 설정, PDF까지 함께 질의 가능한 지식 그래프로 바꿔주는 스킬이다. Claude Code, Cursor, Codex, Gemini CLI에서 /graphify .를 입력하면 프로젝트가 한 번 매핑되고, 이후 에이전트는 파일을 grep하는 대신 그래프에 질의한다.

코드는 약 40개 언어에 걸쳐 tree-sitter AST로 파싱된다. 결정적이고, LLM 호출이 없으며, 아무것도 기기를 떠나지 않는다. 빌드에 드는 LLM 크레딧은 0. 결과물은 세 파일이다. 클릭해서 둘러보는 graph.html, GRAPH_REPORT.md, 그리고 그래프 자체인 graph.json. 파일을 다시 읽지 않고도 질의할 수 있다. 모든 노드는 개념(파일, 함수, 클래스)이고, 모든 엣지에는 소스에 명시돼 있었으면 EXTRACTED, graphify가 해석했으면 INFERRED 태그가 붙는다. 노드는 Leiden 알고리즘으로 하위 시스템으로 묶인다.

우리 프로젝트 하나에 내장 벤치마크를 돌린 결과:

지표
노드 34,031
엣지 56,865
검출된 커뮤니티 967
엣지 출처 76% EXTRACTED · 24% INFERRED
전체 코퍼스 단순 읽기 1,701,550단어 ≈ 2,268,733토큰
그래프 질의 평균 약 24,702토큰
감소 질의당 토큰 91.8배 절감

질문별 편차는 크다. "what is the main entry point"에서 679.1배, "what connects the data layer to the api"에서 34.0배.

한계는 둘. 이 비교의 기준은 전부 읽기이고, grep 중심 세션은 애초에 그만큼 비싸지 않았으므로 실제 이득은 더 작다. 그리고 그래프는 낡는다. graphify update <path>, --watch, git 훅으로 갱신해야 하며, 문서·PDF·이미지에 대한 시맨틱 패스는 실제로 모델을 호출하고 실제로 토큰을 쓴다.

설치는 uv tool install graphifyy(패키지 이름의 y가 두 개다), 그다음 graphify install.

rtk: 심판대에 오른 셸 프록시

rtk는 Claude Code와 셸 사이의 CLI 프록시다. ls, cat, git status 같은 평범한 명령은 에이전트가 입력 토큰으로 읽어야 할 잡음을 잔뜩 돌려준다. 파일 권한, 진행 표시줄, 통과한 테스트 100줄. rtk는 같은 명령을 실행하고 압축된 버전을 돌려준다. Rust 바이너리 하나, 100개 이상 지원 명령, 오버헤드 10ms 미만. PreToolUse 훅이 해당되는 Bash 호출을 실행 전에 다시 쓴다(git statusrtk git status). 그래서 에이전트가 신경 쓸 필요가 없다.

제작자의 출시 글은 2주 만에 1,020만 토큰 절감, 89.2%를 주장했고 cargo test가 155줄에서 3줄로 줄어든 예를 들었다. 25,599개 명령 이후 우리 대시보드는 이렇다:

명령 호출 절감 토큰 비율
rtk find 354 220만 46.6%
rtk read 3,504 220만 10.4%
rtk grep 2,760 190만 47.7%
rtk ps aux 24 110만 98.0%
rtk diff 39 54.11만 92.2%
합계 25,599 1,160만 41.6%

그리고 재판. JetBrains는 rtk를 배포된 그대로 설치하고 claude-sonnet-5에서 86개 태스크를 두 번 돌렸다.

JetBrains의 발견
rtk가 다시 쓸 수 있는 셸 명령 1,056개 중 349개 (3개 중 1개)
총 절감의 상한 청구서의 약 3%
태스크당 비용, reasoning effort 낮음 +7.6% (p=0.004)
태스크당 턴 수 +13.8% (p=0.03)
태스크당 비용, effort 높음 ±0%
태스크 품질 변화 없음

rtk README는 이제 분명히 말한다. bash 출력의 최대 90%이며 "청구서를 90% 줄이는 것과 같지 않다", 게다가 자체 집계는 bytes / 4로 추정한 값이다.

평결: 무료이고 압축은 진짜이며, JetBrains의 표현으로는 "종종 세련되다". bash가 많은 세션용으로 두되, 청구서를 움직이리라 기대하지는 말 것.

Superpowers: 먼저 틀 잡기, 그다음 실패하기엔 너무 작은 태스크

Superpowers는 Jesse Vincent가 만든 Claude Code 플러그인이다. 스타 280,792개, 스킬 14개, 설치 명령 하나(/plugin install superpowers@claude-plugins-official). 아무것도 압축하지 않으면서 토큰을 아낀다.

모든 것은 brainstorming 스킬에서 시작한다. 파일은 단단한 게이트로 열린다. 명시적 의도가 승인되기 전에는 코드도, 스캐폴딩도, 어떤 구현 스킬도 없다. 스킬이 로드되면 에이전트는 브레인스토밍 파트너가 되고, 실제로 무언가를 만들기 전에 프로젝트의 몇몇 부분이 다시 생각된다. 가장 중요한 단계다. 가장 비싼 토큰은 잘못된 것을 만드는 데 쓴 토큰이니까.

스킬은 작업을 spike, 제한된 변경, 아키텍처 변경으로 분류하고, 규칙은 파일에 적혀 있다. "두 길 사이에서 망설이면 무거운 쪽을 택하라." 실패 방식에도 이름을 붙여 "Too Simple To Need Approval"이라는 안티패턴 절을 둔다. 아키텍처 경로는 여러분이 검증할 spec을, 그다음 구현 계획을 낸다.

신뢰성은 계획에서 온다. writing-plans 스킬은 작업을 한 동작, 2~5분짜리 단계로 자른다. 실패하는 테스트를 쓰고, 돌려서 실패를 확인하고, 통과시키는 최소 코드를 쓰고, 테스트를 다시 돌리고, 커밋한다. 계획은 실행하는 엔지니어에게 문맥이 전혀 없다는 전제로 쓰인다. 그 정도로 작은 태스크는 새 컨텍스트 창에 여유 있게 들어가므로, 에이전트가 포화된 창으로 태스크 끝에 도달하는 일이 없다. 그리고 환각 코드는 포화된 창에서 나온다.

한계는 의식(ceremony)이다. 파일은 태스크 크기에 맞춰 조절된다고 하지만, 한 줄짜리 수정에도 게이트는 작동하고, 그것도 토큰이다.

Superpowers: 태스크 하나, subagent 하나, 딱 맞는 모델 하나

그다음 계획이 실행되면 토큰 계산이 달라진다. 태스크 하나에 subagent 하나. 각 subagent는 자기 태스크만 담긴 새 컨텍스트로 시작하고 세션 기록은 절대 갖지 않는다. 그래서 오케스트레이터의 창은 작게, subagent의 창은 깨끗하게 유지된다. 태스크마다 오케스트레이터가 결과를 검토한다. 좋으면 다음 태스크, 아니면 수정이 subagent로 되돌아간다. 태스크당 최대 5라운드. 1~3라운드는 원래 구현자를 이어가고, 4라운드에서는 더 유능한 모델의 새 구현자에게 넘기며, 5라운드에서는 오케스트레이터가 직접 판단한다.

모든 비용을 감당하는 규칙은 모델 선택이다. "비용을 아끼기 위해 각 역할을 감당할 수 있는 가장 약한 모델을 써라." 오케스트레이터는 태스크마다 난이도를 매기고 그에 맞는 모델을 고른다.

태스크 유형 모델 등급
기계적이고 명세가 분명함; 계획에 코드가 이미 있음 가장 저렴한 / 작은 모델
여러 파일 조율, 디버깅 표준 모델
아키텍처, 브랜치 최종 리뷰 가장 유능한 모델
모델을 지정하지 않음 세션의 모델을 상속

같은 파일의 한 가지 미묘한 점. "턴 수가 토큰 가격을 이긴다." 세 턴을 쓰는 싼 모델은 싸지 않다. 실제로 이것이 월 20달러 Pro 플랜에서 Opus와 Fable을 쓸 만하게 만든다. 비싼 모델은 세션 전체가 아니라 한 줌의 태스크만 건드린다.

마지막 이득은 문서화다. 모든 spec과 계획은 docs/superpowers/specs/docs/superpowers/plans/YYYY-MM-DD-<feature-name>.md에 저장되는 마크다운 파일이고 작업이 끝날 때 커밋된다. 이 채널의 파이프라인에서도 현재 영상 엔진으로의 이전은 spec 하나와 14개 태스크 계획으로 남아 있어, 지금도 열어 보고 새 세션에서 언급하고 그 위에 쌓아 올릴 수 있다. 에이전트가 한 일 중 추적되지 않는 것은 없다.

caveman과 Concise 스타일: 말을 줄이다

마지막 조각은 에이전트가 말하는 내용이다. 에이전트는 서술한다. "물론입니다", "기꺼이 도와드리겠습니다", "겪고 계신 문제는 아마도 ~때문일 것입니다". 아무것도 낳지 않는 출력 토큰이다.

caveman은 Julius Brussee의 스킬로 스타 102,548개, 에이전트를 원시인처럼 말하게 만든다. 관사, 군더더기, 인사치레, 얼버무림을 버리고 [대상] [동작] [이유]. [다음 단계]. 패턴을 따르게 한다. 코드, 명령, 파일 경로, 정확한 오류 메시지는 절대 건드리지 않고 그 주변 산문만 줄인다. 세 단계(/caveman lite|full|ultra)와 시작 시 켜주는 SessionStart 훅이 있다.

자체 표를 보면 Claude API로 보낸 프롬프트 10개에서 스킬 없이 평균 출력 1,214토큰, 스킬을 쓰면 294토큰 — 65%. 최고 87%, 최저 22%.

현실 점검도 README가 직접 한다. 이 스킬은 출력만 줄이고 입력·추론 토큰은 그대로이며, 스킬 자체 규칙이 매 턴 약 1~1.5k 입력 토큰을 잡아먹는다. JetBrains는 짝지은 에이전트 태스크 82개에서 약 106달러 크레딧을 들여 측정했다.

caveman 광고 측정 (JetBrains)
출력 토큰 절감 65% 8.5% (59.2만 → 54.2만)
품질 영향 검출 가능한 저하 없음 (부호 검정 p=0.82)

격차는 구조적이다. 에이전트의 출력은 대부분 코드와 도구 호출이고, caveman은 그것을 올바르게 건드리지 않는다. JetBrains의 권고는 이렇다. "마음에 들면 쓰라. 재미있고, 품질 면에서 측정 가능한 비용은 없다."

그리고 Claude Code v2.1.237부터 내장 대응물이 있다. Concise 출력 스타일이다. Claude가 "결과부터 시작하고, 서두와 서술을 건너뛰며, 기본적으로 답을 짧게 유지한다". /config → Output style에서 고르면 .claude/settings.local.json에 저장되고 /clear 또는 새 세션부터 적용된다. 둘의 공통 한계 하나: 출력 스타일은 메인 대화에만 적용되고, subagent는 자기 시스템 프롬프트로 동작한다.

판정: 청구서를 움직이는 것, 가장자리를 움직이는 것

각 도구가 실제로 무엇을 움직이는지로 순위를 매기고, 그 대가도 함께 적는다.

순위 도구 움직이는 것 측정된 효과 대가
1 Superpowers 태스크별 기록 + 그것을 읽는 모델 비싼 모델이 세션 전체가 아니라 한 줌의 태스크만 담당 모든 태스크에 게이트, 한 줄 수정에도
2 graphify 에이전트가 읽는 것 코퍼스 단순 읽기 대비 질의당 토큰 91.8배 절감 (우리 프로젝트) 그래프가 낡는다; 시맨틱 패스는 토큰을 쓴다
3 rtk bash 출력 바이트 상한 청구서의 약 3%; JetBrains 테스트에서 낮은 effort일 때 태스크당 +7.6% 셸 명령 3개 중 1개만 규칙이 있다
4 caveman / Concise 에이전트가 쓰는 산문 출력 토큰의 8.5%, 품질 손실 없음 매 턴 약 1~1.5k 입력 토큰

Superpowers가 이긴다. 그것도 어떤 압축 덕분이 아니다. 태스크마다 새 컨텍스트, 그리고 일을 해낼 수 있는 가장 싼 모델. 이 둘이 무엇이 읽히고 누가 읽는지를 바꾼다. graphify가 2위인 이유는 덜 읽는 것이 청구서의 더 큰 절반이기 때문이다. rtk는 진짜이고 무료이며 해롭지 않지만, 셸 명령의 3분의 2와 모든 파일 읽기가 그것을 비껴간다. caveman, 혹은 이제 Claude Code에 들어 있는 Concise 스타일은 가장 작은 조각을 다듬는다.

넷 다 설치는 무료다. graphify와 rtk는 Apache-2.0, Superpowers는 MIT, caveman 스킬은 MIT. 57만 개가 넘는 스타는 사람들이 기적을 원한다는 뜻이다. 정직한 답은 순위표다.

출처

자주 묻는 질문

Claude Code에서 토큰을 아끼는 가장 좋은 방법은?
텍스트를 압축하는 대신 에이전트가 무엇을 읽고 어떤 모델이 읽는지를 바꾸는 것입니다. Superpowers 플러그인은 각 태스크에 그 태스크만 담긴 새 subagent 컨텍스트를 주고, 감당 가능한 범위에서 가장 약한 모델을 배정합니다. 어떤 출력 압축기보다 청구서를 훨씬 크게 움직입니다.
rtk가 정말로 Claude Code 비용을 줄여주나요?
거의 아닙니다. 셸 출력 압축 자체는 진짜지만, JetBrains에 따르면 규칙이 있는 셸 명령은 3개 중 1개뿐이고 모델이 읽는 것 중 압축 가능한 부분은 5분의 1뿐이어서 절감은 청구서의 약 3%에서 막힙니다. 86개 태스크 A/B에서 rtk는 reasoning effort가 낮을 때 태스크당 7.6% 더 비쌌고 높을 때는 같았으며 품질은 그대로였습니다.
청구서가 안 줄어드는데 rtk는 왜 수백만 토큰 절감을 보고하나요?
rtk는 자신이 제거한 bash 출력 바이트를 bytes/4로 추정해 세는 것이지 금액을 세지 않습니다. 우리 대시보드는 25,599개 명령에서 1,160만 토큰 절감(41.6%)을 보여줍니다. rtk 문서가 직접 말합니다. 출력 바이트가 90% 줄어든 명령이 세션을 90% 싸게 만들지는 않는다고요.
graphify는 무엇이고 토큰을 아껴주나요?
graphify는 코드베이스를 tree-sitter로 로컬에서 파싱해 질의 가능한 지식 그래프로 만드는 /graphify 스킬입니다. LLM 호출이 없고 빌드 크레딧은 0입니다. 이후 에이전트는 파일을 grep하는 대신 논리 노드를 따라 걷습니다. 우리 프로젝트에서 내장 벤치마크는 전체 코퍼스를 읽는 경우 대비 질의당 토큰 91.8배 절감으로 측정했지만, 그 기준은 단순 전체 읽기이지 grep 중심 세션이 아닙니다.
caveman 스킬은 설치할 가치가 있나요?
재미있다면요. 65% 절감을 내세우지만 JetBrains는 짝지은 태스크 82개에서 출력 토큰의 8.5%로 측정했고 품질 저하는 검출되지 않았습니다. 코드와 도구 호출은 올바르게 손대지 않기 때문입니다. 게다가 스킬 자체 규칙이 매 턴 약 1~1.5k 입력 토큰을 더합니다.
Claude Code의 Concise 출력 스타일이란?
Claude Code v2.1.237부터 제공되는 내장 출력 스타일로, Claude가 결과부터 시작하고 서두와 서술을 건너뛰며 답을 짧게 유지합니다. /config에서 고르면 .claude/settings.local.json에 저장되고, 메인 대화에만 적용됩니다. subagent는 자기 시스템 프롬프트를 유지합니다.
Superpowers는 어떻게 20달러 플랜에서 Opus나 Fable을 쓸 만하게 만드나요?
subagent-driven-development 스킬이 오케스트레이터에게 각 역할을 감당할 수 있는 가장 약한 모델을 쓰라고 지시합니다. 명세가 분명한 기계적 태스크에는 가장 저렴한 등급, 여러 파일 작업과 디버깅에는 표준 모델, 아키텍처와 최종 리뷰에만 가장 유능한 모델을 씁니다. 그래서 비싼 모델은 세션 전체가 아니라 한 줌의 태스크만 건드립니다.

관련 영상