<div align="center">
<a href="https://fatsearch.com"><img src="https://raw.githubusercontent.com/fatsearch/fatsearch/HEAD/docs/assets/banner.png" alt="FATSEARCH: the ripgrep of web searching for AI agents." width="800"></a>
에이전트의 내장 페치 기능으로는 읽을 수 없는 페이지(JS 페이지, PDF 등)를 사용자의 자체 제공자 키를 통해 읽어내며,<br> 아웃라인과 ID로 탐색 가능한 깨끗한 Markdown 형식으로 디스크에 저장합니다.
<br>
crates.io
npm
release
license
<br>
<img src="https://raw.githubusercontent.com/fatsearch/fatsearch/HEAD/docs/assets/race.svg" alt="Same question, same answer: FATSEARCH puts 1,384 tokens in the agent's context, Firecrawl puts the whole page, 112,517." width="900">
동일한 질문 · 동일한 답변 · 81배 적은 컨텍스트 크기<br>
이것이 핵심입니다.
</div
<br>
에이전트가 읽는 모든 페이지가 비용을 발생시킵니다.
<div align="center">
| <sub>위키피디아 · Rust · 모델 입력 비용 ($2/M 토큰 기준, Claude Sonnet 5.5, 2026-10-19)</sub> | 컨텍스트 내 토큰 수 | 페치 방식 | 모델 청구액 |
|---|
| Firecrawl | 112,517 | 1 크레딧 | $0.23 |
| ... | | | |
</div>
에이전트는 짧은 개요를 받습니다. 전체 페이지가 아닌 필요한 깊이를 가질 때 하나의 섹션만 읽어냅니다.<br> 메뉴, 쿠키 배너, 탐색(navigation), 푸터 링크, 추적 스크립트 등은 사라집니다.<br> 가격, 날짜, 숫자: 유지됩니다 <sub>(손실 방지 기능이 모든 것을 계산합니다)</sub>.
[!TIP]
$ fats setup decodo
= setup decodo · key를 http://127.0.0.1:59802/k/e0c8baba7a5b058947f4fdab97dabb05/decodo 에서 기다리는 중 · 30분 · $0
tell the user (채팅에서 키를 요청하지 마세요):
...
fats setup은 여전히 대기 중인 양식(! form_waiting decodo · 23 min left · <its URL>)을 표시하거나 시간이 만료된 양식(! form_expired decodo · 사용자가 받은 링크가 유효하지 않음 → fats setup decodo · 새 링크, 동일한 3단계)을 보여줍니다.
SSH 환경(SSH_CONNECTION 또는 SSH_TTY 설정)에서는 터미널에서 키를 붙여넣는 방법에 대한 추가 줄이 표시됩니다.
<br>
하드 페이지 처리 (On hard pages)
fats는 먼저 일반 HTTP(plain HTTP, 무료)를 시도합니다. 만약 해당 페이지가 JS 셸(JS shell), 캡차(captcha), 또는 방화벽 같은 장벽이라면, 가장 저렴한 순서로 제공업체들을 거쳐 비용 추적을 수행하며 접속합니다.
$ fats https://www.nytimes.com/ dry:true
nytimes.com/ fetch plain → oxy (캡차 후) → bd ∥ oxyjs after 5s → new u1 · 최대 $0.0040
...
<sub>fats stats`는 마케팅 자료입니다: 주장(claims)이 아닌 실제 수치입니다.</sub>
38개의 하드 페이지 <sub>소셜 · 뉴스 · 상점 · 여행 · 중고거래 · 검색 · 각 1회 실행</sub>
| 반환된 텍스트에서 답변을 찾는 시간 | 1초 | 10초 | 20초 | 60초 |
|---|
| FATSEARCH 0.2.0 <sub>2026-10-21</sub> | 12 | 19 | 19 | 35 <sub>/38</sub> |
| ... | | | | |
| <sub>FATSEARCH는 더 많은 하드 페이지를 읽습니다; Firecrawl과 Tavily는 실제로 읽은 페이지에서 더 빠릅니다 (동일한 페이지, 중앙값: 23.7초 대 4.9초, 23.7초 대 1.0초). 독자들은 다른 날에 실행되었습니다. 방법 및 모든 행 → · 위의 표: 한 페이지, 여섯 명의 독자 →</sub> | | | | |
에이전트 테스트 결과 <sub>FATSEARCH 0.1.3 · Claude Code 2.1.280, 각 1회 실행, 2026-10-19</sub>
- 51개 태스크, FATSEARCH MCP 대 Firecrawl MCP: 정답률 50/51 대 51/51 · 1k 태스크당 비용 $15.06 대 $53.48 · 중앙값 5.3초 대 6.7초 · 가장 느린 10분의 값 43.8초 대 21.5초. 세부 정보 →
- Claude Code의 WebFetch는 npm, Medium 및 G2에서 403 오류를 반환했지만, FATSEARCH는 세 곳 모두 읽었습니다. 세부 정보 →
- 위키피디아 페이지 하나, 오픈 소스 리더: FATSEARCH는 답변까지 1,384 토큰을 사용한 반면, mcp-server-fetch, Crawl4AI, mcp-searxng 및 자체 호스팅 Firecrawl은 전체 페이지에 대해 75k–117k를 사용했습니다. 세부 정보 →
- 전체 테이블, 손실 포함: docs/benchmarks.md
시작하기 (Get started)
<div align="center">
| <sub style="font-size: 1em">1 · 설치 (INSTALL)</sub> | <sub style="font-size: 1em">2 · 키 (KEYS) <i style="color: gray;">(선택 사항)</i></sub> | <sub style="font-size: 1em">3 · 플러그인 (PLUG IN)</sub> |
|---|
brew install fatsearch/tap/fatsearch | fats setup | claude mcp add --scope user fats -- fats mcp |
<sub style="font-size: 1em">또는 curl -fsSL https://fatsearch.com/install.sh | sh · Windows의 경우: npm i -g fatsearch · cargo install --locked fatsearch · 모든 호스트 →</sub>
</div>
[!NOTE]
패키지 이름은 fatsearch이고 명령어는 fats입니다 (예: ripgrep → rg). Homebrew, npm 및 설치 스크립트는 또한 두 번째 이름으로 fatsearch를 추가합니다. 반면, cargo install은 fats만 추가합니다.
계정 필요 없음. 제공업체 키가 없으면, fats는 일반 요청이 얻는 것을 읽습니다. 웹 검색에는 Oxylabs 또는 Bright Data 키가 필요합니다.
어떤 하나의 키(Oxylabs, Bright Data 또는 Decodo)를 사용하면 해당 제공업체를 통해 페이지를 렌더링하고 차단된 것을 해제할 수 있습니다.
<br>
설정 (Setup)
터미널에서 직접 사용할 경우: fats setup을 실행합니다. 이는 메뉴(↑↓ Enter)로 구성되어 있으며, free fetch와 각 제공업체의 상태가 표시되고, 그 다음 Settings (에이전트 연결, 캐시, 통계, 원격 측정)가 있습니다. 제공업체를 선택하고 키를 붙여넣으면 (예: • 및 개수로 표시됨), fats는 저장하기 전에 실시간으로 이를 확인합니다. fats setup oxy는 해당 제공업체로 바로 이동하며 (마찬가지로 bd, decodo, gh도 가능합니다).
에이전트가 사용하거나 터미널이 없는 경우: 에이전트는 fats setup oxy (또는 bd, decodo, gh)를 실행합니다. 그러면 제공업체의 대시보드 링크와 30분 동안 열리는 127.0.0.1의 일회성 양식이 출력됩니다. 에이전트가 URL을 제공하면, 사용자는 이 키를 채팅창에 절대 붙여넣지 않고(what it prints 참조), 브라우저의 해당 양식에 붙여넣습니다. 그런 다음 에이전트는 이를 확인하기 위해 fats setup을 실행합니다 ($0).
키는 키 디렉터리의 auth.json(모드 0600)에 저장되며 해당 제공업체에게만 전송됩니다. auth.json이 유일한 키 소스입니다: fats는 환경 변수에서 키를 절대 보내지 않기 때문에, 사용자가 저장한 키가 모든 호출에서 사용되는 키가 됩니다 (fats는 각 키의 마지막 4자리를 표시합니다: keys oxy …6XBR · bd none · decodo none · gh none · auth.json). 브라우저가 없는 장치(CI, SSH)에서는 파이프를 통해 키를 입력합니다: printf %s "$KEY" | fats setup oxy는 이를 확인하고 저장합니다. 이미 내보내진 키의 경우: fats setup import-env를 한 번 실행하면 됩니다. 이는 키들을 확인하고, 키가 저장되지 않은 곳에 복사하며, 저장된 키를 절대 덮어쓰지 않습니다. 키를 덮어쓸 경우 이전 파일은 auth.json.bak(0600)으로 유지됩니다.
| Provider | Key | Page, no JS | Page, rendered | Web search |
|---|
| free (plain HTTP, your IP) | none | $0 | — | — |
| ... | | | | |
<sub>페이지당 목록 가격이며, dry:true와 fats stats에서 사용되는 값입니다. Oxylabs 및 Bright Data의 지출액은 fats account로 확인할 수 있습니다. Decodo는 이 키에 대한 사용량 읽기가 없으므로, 해당 $ 표시는 조정되지 않은 목록 가격입니다.</sub> | | | | |
키를 잃지 않고 비활성화하기: fats setup oxy off로 끄고, 다시 fats setup oxy on으로 켤 수 있습니다.
무료 페치(The free fetch)는 자체 연결을 사용합니다: IP당 페이지 요청 1회, 사이트당 초당 시작은 최대 1회입니다. 페이지는 제공업체 호출을 구매하기보다는 순서를 기다립니다. 제공업체들은 자체 IP를 사용하며 속도 제한이 없습니다. fats setup free off는 대신 모든 페이지를 제공업체로 전송하므로, 모든 페이지에 비용이 발생합니다.**
MCP
하나의 도구. 하나의 문자열. 동일한 명령어.
fats setup mcp claude
claude mcp add --scope user fats -- fats mcp
codex mcp add fats -- fats mcp
...
<sub style="font-size: smaller;">이 도구는 fats(cmd)이며, 카드는 약 60 토큰입니다. fats u1#3을 아는 에이전트는 전체 도구를 이해합니다.<br>MCP 레지스트리: mcp-name: io.github.fatsearch/fats</sub>
<br>
명령어(Commands)
| 명령어 | 기능 |
|---|
fats <url> | fetch → clean → outline, u1로 캐시됨 |
| ... | |
<sub style="font-size: smaller;">mods <samp>limit:20 country:de js:true wait:30 fresh:true</samp> · 모든 것의 한 화면 보기: fats help · 잘 사용하는 방법: fats guide</sub> | |
<br>
에이전트용(For agents)
에이전트 스킬은 이 리포지토리(skills/fatsearch/SKILL.md)에서 버전 관리됩니다: 컨텍스트를 넘치게 하지 않으면서 페이지를 읽는 방법, 그리고 fats가 누락되었을 때 이를 설치하고 연결하며 검증하는 방법을 다룹니다.
npx skills add fatsearch/fatsearch
gh skill install fatsearch/fatsearch
CLI가 없는 에이전트는 릴리스에 고정된 내용을 읽습니다:
https://raw.githubusercontent.com/fatsearch/fatsearch/v0.2.5/skills/fatsearch/SKILL.md.
이렇게 하면 에이전트가 검토할 수 있는 버전 관리된 텍스트를 볼 수 있으며, 실행하는 내용 중 어느 것도 웹사이트에서 온 것이 아님을 보장합니다.
에이전트를 위한 일반 마크다운 문서: fatsearch.com/llms.txt.
<br>
텔레메트리(Telemetry)
FATSEARCH는 작동 오류를 수정할 수 있도록 익명 사용 통계를 공유합니다. 사용자가 읽거나 검색한 내용은 절대 공유하지 않습니다.
- 전송되지 않는 항목: URL, 검색어, 페이지 텍스트, 파일, API 키, IP 주소, 모든 ID.
- 전송되는 항목: fatsearch 버전, OS, 사용된 패키지(npm, Homebrew, cargo 등), 사용한 명령어, 오류 내용,
작동 여부가 확인된 제공업체 목록, 코드 충돌 기록.
fats telemetry show를 통해 정확히 무엇이 전송되는지 확인할 수 있습니다. 또한 fats setup → Settings → Telemetry에서 또는 fats setup telemetry off, FATS_TELEMETRY=0 또는 DO_NOT_TRACK=1을 사용하여 텔레메트리를 비활성화할 수 있습니다. 자세한 내용은 docs/telemetry.md를 참조하십시오.
<br>
<div align="center">
<kbd> 17–21 MB </kbd> 바이너리 <kbd> 4 ms </kbd> 시작 <kbd> 5 ms </kbd> 캐시 읽기 <kbd> $0 </kbd> 일반 페이지 수 <kbd> $0.001–0.0065 </kbd> 하드 페이지 (세 개의 키)
<sub style="font-size: 90%;">17 MB (macOS arm64)에서 21 MB (Linux x86_64)까지 · 네이티브 환경에서 4 ms; npm shim을 사용하면 Node의 약 40 ms가 추가됨<br>데몬 없음 · 브라우저 없음 · 익명 사용 통계(비활성화: fats setup telemetry off · FATS_TELEMETRY=0 · DO_NOT_TRACK=1) · 모든 실행 시 →
</sub>
</div>
<br>
<details>
<summary><b style="font-size: 1.2em;">아직 지원하지 않는 기능</b></summary>
<br>
match:near / match:topic: 로컬 모델이 필요함
- 스캔된 PDF에 대한 OCR →
! no_text (텍스트 없음)
- DOCX / XLSX →
! not_in_v1 zip (v1에서 지원하지 않는 압축 형식)
- OS 키체인: 키는
auth.json에 저장됨 (권한 모드 0600)
- 원격 MCP: stdio만 가능
- 로그인: 로그인 뒤에 있는 페이지는 접근할 수 없음
각 항목은 누락된 기능과 해결 방법을 설명하는 ! 행을 출력합니다. 절대 무시하지 마십시오.
</details>
<br>
<div align="center">
<a href="https://fatsearch.com"><b style="font-size: 1.5em;">fatsearch.com</b></a>
<br><br>
<sub style="font-size: 90%;">
<a href="docs/reference.md">참고 자료(reference)</a> ·
<a href="docs/benchmarks.md">벤치마크(benchmarks)</a> ·
<a href="CHANGELOG.md">변경 로그(changelog)</a> ·
<a href="SECURITY.md">보안(security)</a> ·
<a href="CONTRIBUTING.md">기여 방법(contributing)</a>
<br><br>
MIT 또는 Apache-2.0 라이선스 중 선택 가능.
</sub>
</div>