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
1-Bit Bonsai Image 4B Image Generation for Local Devices
4B 파라미터 이미지 생성 모델의 가중치를 1비트/3값으로 극단적으로 압축해서 iPhone에서도 돌아가게 만든 모델. 7.75GB짜리 diffusion transformer를 0.93GB까지 줄였다.
Show HN: Tiny-vLLM – high performance LLM inference engine in C++ and CUDA
vLLM의 핵심 기능을 C++와 CUDA로 직접 구현하며 배울 수 있는 교육용 LLM 추론 엔진 프로젝트로, 소스코드와 단계별 강의가 함께 제공된다.
Real-time LLM Inference on Standard GPUs: 3k tokens/s per request
Kog AI가 8× AMD MI300X에서 요청당 3,000 tokens/s를 달성하는 LLM 추론 엔진을 공개했고, 기존 소프트웨어 스택의 병목을 GPU 메모리 대역폭 최대화로 풀어냈다는 내용이다.
A sleep-like consolidation mechanism for LLMs
LLM이 긴 컨텍스트를 처리할 때 발생하는 Attention 비용 문제를 해결하기 위해, 사람의 수면처럼 주기적으로 컨텍스트를 fast weight에 압축·저장하는 새로운 메커니즘을 제안한 논문이다.
CODA: Rewriting Transformer Blocks as GEMM-Epilogue Programs
GPU에서 Transformer 학습 시 발생하는 메모리 병목을 해결하기 위해, 정규화·활성화 등 소규모 연산들을 GEMM 출력이 칩 위에 있는 동안 함께 실행하는 커널 추상화 CODA를 소개한다. LLM이 이 추상화를 활용해 고성능 커널을 자동 생성할 수 있다는 점이 특히 주목받고 있다.
KV-Fold: One-Step KV-Cache Recurrence for Long-Context Inference
모델 수정 없이 KV 캐시를 청크 간 누산기로 쓰면 128K 토큰까지 100% 정확도로 정보를 검색할 수 있다.