Local-only multimodal file search. Point it at your directories and search text, images, PDFs, spreadsheets, presentations, and code with natural language. Everything runs on-device.
Requires Python 3.12+. A CUDA-capable GPU is strongly recommended; CPU works but is slow.
pip install ferret-search # CPU
pip install ferret-search[gpu] # GPU (requires CUDA 12)
ferret index ~/Documents ~/Pictures ~/dev # index paths
ferret search "notes on quantum computing" # search from terminal
ferret serve # launch web UI at http://localhost:8765
ferret watch # watch for changes + keep models warm
Run ferret watch in the background to eliminate model load time from ferret search. The daemon holds the ONNX sessions in memory and serves queries over a Unix socket; without it, each search cold-loads the models (~1-3 s overhead).
Config file at ~/.config/ferret/ferret.toml (respects $XDG_CONFIG_HOME):
roots = ["~/Documents", "~/Pictures", "~/dev"]
batch_size = 256 # text chunks per GPU batch
image_batch_size = 32 # images per GPU batch
top_k = 10
rrf_k = 60 # RRF rank-fusion constant
Data is stored under standard XDG directories:
| Path | Contents |
|---|---|
~/.local/share/ferret/ferret.db | SQLite index (files, chunks, BM25) |
~/.local/share/ferret/vectors/ | LanceDB vector tables |
~/.cache/ferret/models/ | Downloaded model weights |
git clone https://github.com/burntcarrot/ferret && cd ferret
uv sync
cd src/ferret/frontend && pnpm install && pnpm build && cd ../../..
uv run ferret index ~/Documents
uv run ferret serve
uv run pytest
See the internals docs for pipeline, retrieval design, and data model details.
1 commits
Python
83.7%
TypeScript
8.9%
CSS
6.6%
Local-only multimodal file search. Point it at your directories and search text, images, PDFs, spreadsheets, presentations, and code with natural language. Everything runs on-device.
Requires Python 3.12+. A CUDA-capable GPU is strongly recommended; CPU works but is slow.
pip install ferret-search # CPU
pip install ferret-search[gpu] # GPU (requires CUDA 12)
ferret index ~/Documents ~/Pictures ~/dev # index paths
ferret search "notes on quantum computing" # search from terminal
ferret serve # launch web UI at http://localhost:8765
ferret watch # watch for changes + keep models warm
Run ferret watch in the background to eliminate model load time from ferret search. The daemon holds the ONNX sessions in memory and serves queries over a Unix socket; without it, each search cold-loads the models (~1-3 s overhead).
Config file at ~/.config/ferret/ferret.toml (respects $XDG_CONFIG_HOME):
roots = ["~/Documents", "~/Pictures", "~/dev"]
batch_size = 256 # text chunks per GPU batch
image_batch_size = 32 # images per GPU batch
top_k = 10
rrf_k = 60 # RRF rank-fusion constant
Data is stored under standard XDG directories:
| Path | Contents |
|---|---|
~/.local/share/ferret/ferret.db | SQLite index (files, chunks, BM25) |
~/.local/share/ferret/vectors/ | LanceDB vector tables |
~/.cache/ferret/models/ | Downloaded model weights |
git clone https://github.com/burntcarrot/ferret && cd ferret
uv sync
cd src/ferret/frontend && pnpm install && pnpm build && cd ../../..
uv run ferret index ~/Documents
uv run ferret serve
uv run pytest
See the internals docs for pipeline, retrieval design, and data model details.
1 commits
Python
83.7%
TypeScript
8.9%
CSS
6.6%