selvage
live · public
- your data×4
- normalise
- store
- rank (no LLM)×3
- fuse
- clients×3
how it works
Selvage is a thin, hybrid-searchable layer over the places team knowledge actually lives — Slack, wikis, code, and databases. Connectors normalize every source into one Postgres + pgvector table, so the same query serves a person at a CLI, an agent over MCP, or the web UI. Local-first and MIT-licensed, with embeddings running on your own CPU.
why three signals instead of one
| signal | exact token | paraphrase | rare term |
|---|---|---|---|
| full-text (GIN) | ● | ○ | ○ |
| vector (HNSW) | ○ | ● | ○ |
| rare-term (IDF) | ● | ○ | ● |
| all three, fused by RRF | ● | ● | ● |
Vector search alone misses an exact error code; full-text alone misses a paraphrase. RRF needs only ranks, so the three lists fuse without their scores having to be comparable.
source: selvage README