같은 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. 실제로 얼마나 절약되나요? 제작자가 공개한 테스트 스냅샷에서는 전체 청구액 기준 대략 절반 안팎까지 줄었습니다(작업 종류에 따라 편차 큼). 정확한 수치는 내 대시보드에서 내 작업 기준으로 직접 확인하는 게 가장 정확합니다.