| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| semlith-v0.1.0-aarch64-apple-darwin.tar.gz | 2026-07-26 | 12.7 MB | |
| semlith-v0.1.0-aarch64-unknown-linux-gnu.tar.gz | 2026-07-26 | 15.4 MB | |
| semlith-v0.1.0-x86_64-pc-windows-msvc.zip | 2026-07-26 | 11.4 MB | |
| semlith-v0.1.0-x86_64-unknown-linux-gnu.tar.gz | 2026-07-26 | 14.1 MB | |
| SHA256SUMS | 2026-07-26 | 444 Bytes | |
| README.md | 2026-07-26 | 2.3 kB | |
| Semlith 0.1.0 source code.tar.gz | 2026-07-26 | 60.9 kB | |
| Semlith 0.1.0 source code.zip | 2026-07-26 | 71.2 kB | |
| Totals: 8 Items | 53.7 MB | 0 | |
First release.
Added
- Local semantic search over files.
semlith indexwalks paths, extracts text, chunks it, embeds it locally, and stores the result.semlith searchreturns the best-matching excerpts with their file path and line range. - turbovec-backed vector index. Vectors are quantized to 4 bits per coordinate and searched with SIMD. No training step, no rebuild as the corpus grows.
- SQLite for everything else. Chunk text, file paths, line spans and content
hashes live in
store.db; the vector index holds only vectors keyed by chunk id. - Incremental indexing. Files are content-hashed with BLAKE3, so re-running
indexonly re-embeds what changed and prunes what disappeared from disk. A file's hash is committed only after the vector index is durable, so an interrupted run re-indexes rather than leaving chunks that can never match. - MCP server.
semlith mcpspeaks JSON-RPC over stdio and exposessemlith_searchandsemlith_stats, so any MCP-capable agent can query the store as a tool. The embedding model is loaded at startup so the first call is as fast as the rest. - PDF support. PDFs are extracted to text automatically. Parser panics are caught so one malformed file cannot abort an indexing run.
- Sensible skipping. Honours
.gitignore(including outside git repos), skips hidden files, binaries, and files over 8 MiB. - Commands for inspecting and maintaining a store:
stats,files,forget,models. - Model selection.
--modelpicks the embedding model when a store is created; the choice is then pinned, since vectors from two models are not comparable.
Performance
Measured on an 8-core Apple Silicon laptop with 8 GB of RAM over 79 Rust source files (1.5 MB, 2375 chunks):
- Warm query: ~6 ms
- Cold CLI start: ~250 ms, almost all of it loading the ONNX model
- Indexing: ~13 chunks/sec, ~1.7 GB peak RSS
- Re-index with nothing changed: 17 ms
Install
Download the archive for your platform, unpack it, and put semlith on
your PATH. Linux builds need OpenBLAS at runtime
(apt-get install libopenblas-dev or your distribution's equivalent).
Intel macOS has no prebuilt binary: ONNX Runtime no longer publishes
x86_64 macOS builds.
Verify a download against SHA256SUMS before running it.