같은 Fable, 청구서만 반으로 줄이는 법
⚡ 30초 컷: 명령어만
바쁘면 이것만 복사·붙여넣기 하세요. 왜 되는지랑 자세한 설명은 아래에 있습니다.
① 새 터미널 창을 열고 프록시를 켭니다. (이 창은 닫지 마세요.)
npx pxpipe-proxy@latest
② 다른 터미널 창에서 클로드를 이 프록시로 연결합니다.
ANTHROPIC_BASE_URL=http://127.0.0.1:47821 claude
③ 브라우저로 얼마나 아꼈는지 확인합니다.
http://127.0.0.1:47821/
딱 하나만 기억하세요: 패키지 이름은
pxpipe가 아니라pxpipe-proxy입니다.npx pxpipe라고 치면 오류가 납니다.
Claude Code로 며칠만 빡세게 굴려보면 다들 같은 데서 멈칫합니다. 실력은 만족스러운데, 월말 토큰 청구서를 보면 손이 떨립니다. 시스템 프롬프트, 도구 설명, 지난 대화 기록: 이 덩치 큰 맥락이 매 요청마다 텍스트로 다시 실려 나가면서 입력 토큰을 그대로 태우기 때문입니다.
이 세팅은 모델을 바꾸지 않습니다. 쓰던 Fable 그대로, 청구되는 입력만 줄입니다. 원리는 한 줄입니다. 텍스트로 보내면 비싼 그 덩치 큰 맥락을, 촘촘한 이미지 한 장으로 바꿔서 보냅니다. 이미지의 토큰값은 안에 든 글자 수가 아니라 픽셀 크기로 고정되기 때문에, 빽빽한 코드·JSON·로그일수록 같은 내용이 훨씬 적은 토큰으로 들어갑니다.
무료 오픈소스 도구입니다. 이름은 pxpipe. 내 컴퓨터에서 도는 작은 중계기(프록시)라, 요청이 나가기 전에 덩치 큰 부분만 이미지로 바꿔줍니다. 모델의 답변(출력)은 절대 건드리지 않습니다. 압축하는 건 오직 보내는 쪽입니다.
설정은 딱 두 줄, 30초면 끝납니다. 터미널을 쓰지만 전부 복사·붙여넣기만 하면 됩니다.
시작 전 준비물
- Claude Code(터미널에서 쓰는 클로드)가 설치돼 정상 작동 중일 것.
- Node.js 18 이상. 이 도구가 Node로 돕니다. 없으면
nodejs.org에서 설치하세요. (터미널에node -v쳐서 v18 이상이면 통과.)
STEP 1. 중계기 켜기: 30초
설치할 것 없이, 새 터미널 창 하나를 열고 아래 한 줄을 붙여넣습니다.
npx pxpipe-proxy@latest
- 확인 방법: 잠시 뒤
proxy on 127.0.0.1:47821비슷한 문구가 뜨면 켜진 겁니다. - 이 창은 그대로 둡니다. 여기가 중계기라 닫으면 꺼집니다. 작업은 아래에서 새 창으로 합니다.
명령어 주의: 패키지 이름은
pxpipe가 아니라pxpipe-proxy입니다.npx pxpipe라고 치면 "찾을 수 없음" 오류가 납니다. 실행 명령 자체는 pxpipe지만, 받아오는 이름은 pxpipe-proxy예요.
STEP 2. 클로드를 중계기로 연결: 10초
다른 터미널 창을 새로 열고, 평소 claude 대신 아래처럼 실행합니다.
ANTHROPIC_BASE_URL=http://127.0.0.1:47821 claude
- 이러면 클로드가 앞으로 보낼 요청을 중계기로 흘려보냅니다. 나머지는 알아서 처리됩니다.
- 확인 방법: 평소처럼 클로드가 뜨고 대화가 되면 연결된 겁니다. 뒤에서 덩치 큰 맥락이 이미지로 바뀌어 나가는 중입니다.
- 매번 치기 귀찮으면: 쉘 설정 파일(
~/.zshrc또는~/.bashrc) 맨 아래에export ANTHROPIC_BASE_URL=http://127.0.0.1:47821한 줄을 넣어두면, 이제부터 그냥claude만 쳐도 항상 중계기를 탑니다. (되돌리려면 이 줄만 지우면 됩니다.)
STEP 3. 얼마나 아꼈는지 눈으로 보기
브라우저 주소창에 아래를 칩니다.
http://127.0.0.1:47821/
- 대시보드가 열리면서 텍스트가 이미지로 바뀐 실제 화면을 나란히 보여주고, 지금까지 아낀 토큰과 비용을 실시간으로 집계합니다.
- 화면 안에 **끄기 스위치(kill switch)**도 있어서, 압축을 잠깐 멈추고 원래대로 돌려볼 수도 있습니다.
(선택) Fable 말고 다른 모델도 이미지로
기본값은 Fable 계열만 이미지로 압축합니다. 여기엔 이유가 있습니다.
- Fable은 압축 이미지를 거의 완벽하게 읽습니다: 새 산수 문제 100개 중 100개, 상태 추적 18개 중 18개를 텍스트로 줄 때와 똑같이 맞혔습니다(제작자 실측).
- Opus·GPT·Grok에도 켤 수는 있지만 기본은 꺼져 있습니다. 빽빽한 이미지에서 12자리 같은 정확한 문자열을 놓칠 확률이 Fable보다 높기 때문입니다. 그래서 "몰래 기본값으로 켜는 건 옳지 않다"는 게 제작자 입장이고, 원하는 사람만 직접 켜도록 해뒀습니다.
켜보고 싶으면, STEP 1에서 명령을 이렇게 바꿉니다.
PXPIPE_MODELS=claude-fable-5,grok-4.5 npx pxpipe-proxy@latest
- 켠 뒤엔 중요하지 않은 짧은 작업으로 먼저 테스트해서 답 품질이 괜찮은지 확인하고 본작업에 쓰세요.
꼭 지킬 안전 수칙
- 글자 하나도 틀리면 안 되는 값은 조심하세요. 비밀번호, API 키, 해시, 정확한 ID 같은 것은 빽빽한 이미지로 압축하면 드물게 잘못 읽힐 수 있습니다. pxpipe는 최근 대화는 텍스트로 남기고 오래된 덩치만 이미지로 바꾸지만, 바이트 단위로 정확해야 하는 값이 있으면 그 부분은 텍스트로 유지되게 두세요.
- 손실이 있을 수 있는 압축입니다. 대략적인 맥락·요지 파악에는 강하지만, 원문 그대로 완벽 복원은 보장하지 않습니다.
- 출력은 안전합니다. 압축하는 건 보내는 요청뿐이고, 모델이 만들어내는 답변은 손대지 않습니다.
끄고 싶을 때
- STEP 1의 중계기 창에서
Ctrl + C를 누르면 꺼집니다. - STEP 2에서
~/.zshrc등에 export를 넣었다면 그 줄을 지우세요. 그러면 클로드가 원래대로 직접 연결됩니다.
자주 나오는 질문
Q. npx pxpipe 라고 쳤더니 "찾을 수 없음"이 떠요.
패키지 이름이 pxpipe가 아니라 pxpipe-proxy입니다. npx pxpipe-proxy@latest로 다시 실행하세요.
Q. "포트가 이미 사용 중"이라고 나와요.
다른 프로그램이 47821 포트를 쓰고 있는 경우입니다. 포트를 바꿔서 켜면 됩니다: PORT=47822 npx pxpipe-proxy@latest. 이때 STEP 2의 주소도 http://127.0.0.1:47822로 같이 바꿔주세요.
Q. 대시보드를 보니 절약이 1%밖에 안 떠요. 지금 작업이 이미 캐시가 많이 걸려 있거나, 코드보다 줄글 위주라 그렇습니다. 이미지 압축은 코드·JSON·로그처럼 빽빽한 입력에서 이득이 큽니다. 중계기가 이득 없는 요청은 알아서 텍스트로 그냥 통과시키니, 손해 보는 구조는 아닙니다.
Q. 답 품질이 떨어지지 않나요? 기본값인 Fable에서는 새 산수 100/100, 상태 추적 18/18로 텍스트와 동일했습니다(제작자 실측). 다만 12자리 문자열 정확 복원처럼 바이트 단위가 걸린 경우는 손실이 있을 수 있으니, 위 "안전 수칙"을 지키세요.
Q. 실제로 얼마나 절약되나요? 제작자가 공개한 테스트 스냅샷에서는 전체 청구액 기준 대략 절반 안팎까지 줄었습니다(작업 종류에 따라 편차 큼). 정확한 수치는 내 대시보드에서 내 작업 기준으로 직접 확인하는 게 가장 정확합니다.