Show HN: Lowfat – pluggable CLI filter that saved 91.8% of my LLM tokens
TL;DR Highlight
AI 에이전트가 CLI 명령어 출력을 읽을 때 불필요한 노이즈를 제거해 토큰 사용량을 줄여주는 Rust 기반 CLI 필터 도구. Claude Code, OpenCode 등 주요 AI 코딩 에이전트와 통합 가능하다.
Who Should Read
Claude Code, OpenCode 같은 AI 코딩 에이전트를 일상적으로 사용하는 개발자 중 LLM API 토큰 비용을 줄이고 싶거나 컨텍스트 윈도우 낭비를 막고 싶은 분들.
Core Mechanics
- lowfat은 AI 에이전트가 bash 명령어를 실행할 때 그 출력을 LLM에 전달하기 전에 가로채서 노이즈를 제거하는 CLI 필터 도구다. 예를 들어 `git status`나 `docker ps` 같은 명령어 출력에서 LLM이 필요 없는 부분을 잘라낸다.
- Rust로 작성된 단일 바이너리로, `cargo install lowfat` 또는 `brew install zdk/tools/lowfat`으로 설치할 수 있다. 별도 서버나 외부 API 호출 없이 로컬에서만 동작하며 텔레메트리가 없다.
- Claude Code와의 통합은 `.claude/settings.json`에 PreToolUse 훅을 추가하는 방식으로 동작한다. Bash 명령 실행 전에 lowfat이 자동으로 출력을 필터링하므로 에이전트 코드 수정 없이 적용 가능하다.
- Shell integration 방식으로 `eval "$(lowfat shell-init zsh)"` 를 `.zshrc`에 추가하면 CLAUDECODE=1, CODEX_ENV 같은 에이전트 환경 변수가 감지될 때 자동으로 활성화된다. LOWFAT_ENABLE=1 환경변수로 강제 활성화도 가능하다.
- OpenCode와의 통합은 `lowfat opencode install` 명령 하나로 완료되며, `~/.config/opencode/plugins/lowfat.ts`를 자동으로 작성해준다. 제거도 `lowfat opencode uninstall` 하나로 된다.
- 필터 강도를 `lowfat level ultra`(최대 압축) 또는 `LOWFAT_LEVEL=lite`(약한 필터링) 식으로 조절할 수 있다. `lowfat stats`로 누적 토큰 절약량을, `lowfat history`로 어떤 명령어에서 절약이 많았는지 확인할 수 있다.
- 플러그인 방식으로 확장 가능하며, 빌트인 필터 외에 사용자가 직접 필터를 추가할 수 있다. UNIX 파이프 방식으로 여러 필터를 조합할 수 있다.
- 제목에서 주장하는 91.8% 절약은 특정 명령어의 raw CLI 출력 기준이지, 전체 LLM 대화 토큰 대비 절약량이 아니다. Amdahl의 법칙 적용 시 실제 전체 토큰 절약률은 이보다 훨씬 낮을 수 있다.
Evidence
- 실제로 유사한 도구(rtx, lean-ctx)를 써본 사용자가 '이런 도구들이 에이전트를 더 혼란스럽게 만들더라'는 경험을 공유했다. 필터링으로 아낀 토큰보다 혼란으로 인한 추가 API 호출이 더 많아질 수 있다는 지적이다.
- 91.8% 절약이라는 제목이 과장됐다는 비판이 있었다. 이는 하나의 사용 사례에서 raw CLI 출력 토큰 기준이며, 전체 프롬프트 토큰 대비 절약량이 아니다. Amdahl의 법칙을 적용하면 전체 토큰 절약이 91%일 수는 없다는 것이다.
- 가장 핵심적인 기술적 우려로 '에이전트가 실제로 필요했던 스택 트레이스를 필터가 지워버리면 어떻게 되냐'는 질문이 제기됐다. LLM이 full-fat 출력으로 학습됐는데 갑자기 필터링된 다른 형태의 출력을 받으면 오히려 오작동할 수 있다는 우려도 있었다.
- 한 사용자가 비슷한 문제를 다른 방식으로 해결하는 팁을 공유했다: 출력이 잘렸을 때 '전체 텍스트는 /tmp/somewhere.txt에 있다'고 알려주면 LLM이 필요할 때 내장 파일 읽기 도구로 직접 조회할 수 있다는 것이다. 불필요한 재호출 없이 필요한 정보만 가져올 수 있다.
- 문서에 실제 필터링 전후 예시가 없다는 지적이 있었다. '어떻게 동작하는지'는 설명하지만 '실제로 어떤 텍스트가 어떻게 바뀌는지' 보여주는 예시가 없어서 효과를 판단하기 어렵다는 피드백이다.
How to Apply
- Claude Code를 사용 중이고 매번 `git log`, `docker ps` 같은 verbose 명령어 출력이 컨텍스트를 잡아먹는다고 느낀다면, `.claude/settings.json`에 PreToolUse 훅을 추가해 lowfat을 연결하면 에이전트 코드 변경 없이 바로 필터링이 적용된다.
- 필터링이 너무 공격적으로 동작해서 에이전트가 필요한 정보를 못 받을까 걱정된다면, `LOWFAT_LEVEL=lite`로 약하게 시작하고 `lowfat stats --audit`으로 실제 어떤 내용이 잘렸는지 확인하면서 조금씩 강도를 올리는 방식이 안전하다.
- 어떤 명령어에서 토큰 낭비가 가장 많은지 모른다면 `lowfat history`로 명령어별 잠재적 절약량을 확인한 뒤, 절약량이 큰 명령어에 특화된 커스텀 필터를 플러그인으로 추가하면 효과를 극대화할 수 있다.
- MCP 도구가 JSON REST API를 그대로 래핑해서 불필요한 필드가 많은 응답을 LLM에 통째로 넘기는 상황이라면, lowfat과 유사한 방식으로 응답에서 LLM이 실제로 필요한 필드만 추출하는 전처리 레이어를 파이프라인에 추가하는 것을 검토해볼 수 있다.
Code Example
# Claude Code 훅 설정 (.claude/settings.json)
{
"hooks": {
"PreToolUse": [
{
"matcher": "Bash",
"hooks": [{ "type": "command", "command": "lowfat hook" }]
}
]
}
}
# Shell 통합 (zsh 예시)
echo 'eval "$(lowfat shell-init zsh)"' >> ~/.zshrc
# OpenCode 통합
lowfat opencode install
# 직접 사용
lowfat git status
lowfat docker ps
lowfat ls -la
# 필터 강도 조절
lowfat level ultra # 최대 압축
LOWFAT_LEVEL=lite lowfat git log # 약한 필터링 (일회성)
# 현황 및 통계 확인
lowfat info # 상태 및 활성 필터
lowfat info git # git 명령어의 필터 파이프라인
lowfat stats # 누적 토큰 절약량
lowfat stats --audit # 최근 플러그인 실행 내역
lowfat history # 명령어별 절약 순위Terminology
Related Papers
Claude Code sends 33k tokens before reading the prompt; OpenCode sends 7k
동일한 모델과 작업 환경에서 Claude Code와 OpenCode의 실제 토큰 사용량을 API 레벨에서 측정한 결과, Claude Code가 시스템 프롬프트 오버헤드만으로 OpenCode 대비 4.7배 더 많은 토큰을 소비한다는 것을 확인했다.
Mesh LLM: distributed AI computing on iroh
사무실, 집, 클라우드에 흩어진 GPU들을 하나의 OpenAI 호환 API로 묶어주는 분산 LLM 실행 시스템으로, 비싼 API 비용 없이 큰 모델을 직접 운영할 수 있다.
Show HN: Frugon – Find which LLM calls a cheaper model could handle (local, MIT)
내 LLM API 비용이 어디서 새는지 로컬에서 분석해주는 오픈소스 CLI 도구로, 비싼 모델 대신 저렴한 모델로 전환 가능한 호출을 골라낸다.
Jamesob's guide to running SOTA LLMs locally
2천 달러짜리 RTX 3090 한 장부터 4만 달러짜리 RTX PRO 6000 4장 셋업까지, 로컬에서 최신 LLM을 직접 돌리는 방법을 하드웨어 선택·구성·실행 설정까지 통째로 정리한 실전 가이드다.
Faster embeddings: how we rebuilt the ONNX path in Manticore
Manticore Search가 기존 SentenceTransformers/Candle 백엔드를 ONNX Runtime으로 교체해 텍스트 임베딩 생성 속도를 평균 14배 향상시켰다. 별도 모델 서비스 없이 DB 내부에서 직접 임베딩을 처리하는 구조에서 INSERT 속도가 곧 임베딩 속도이기 때문에 이 개선은 실질적인 ingest 처리량 향상으로 직결된다.
Asymmetric Quantization: Near-Lossless Retrieval with 97% Storage Reduction
멀티벡터 검색 모델의 문서 벡터를 1비트 이진값으로 압축하고 쿼리 벡터만 int8로 유지하는 비대칭 양자화 기법으로, 스토리지를 97% 줄이면서 검색 품질 손실을 0.61점(NDCG@10 기준)에 그치게 만든 실제 프로덕션 적용 사례다.