Download Latest Version semlith-v0.51.1-x86_64-pc-windows-msvc.zip (24.5 MB)
Home / v0.5.0
Name Modified Size InfoDownloads / Week
Parent folder
semlith-v0.5.0-aarch64-apple-darwin.tar.gz 2026-07-30 13.6 MB
semlith-v0.5.0-aarch64-unknown-linux-gnu.tar.gz 2026-07-30 16.6 MB
semlith-v0.5.0-x86_64-pc-windows-msvc.zip 2026-07-30 12.1 MB
semlith-v0.5.0-x86_64-unknown-linux-gnu.tar.gz 2026-07-30 15.5 MB
SHA256SUMS 2026-07-30 444 Bytes
README.md 2026-07-30 3.1 kB
Semlith 0.5.0 source code.tar.gz 2026-07-30 140.5 kB
Semlith 0.5.0 source code.zip 2026-07-30 156.9 kB
Totals: 8 Items   58.1 MB 0

One query across several stores, so an agent working across repositories asks one question instead of one per repository.

Added

  • --store is repeatable on the read commands. search, stats, files and mcp cover every store named:

sh semlith search "how is the store lock taken" -s ../api/.semlith -s ../cli/.semlith

```

  1. 0.033 [api] src/lock.rs:14-31
  2. 0.032 [cli] src/main.rs:96-104 2 hits in 4.1ms across 2 stores: api 1, cli 1 ```

-k stays global — ten results over three stores is ten results. Filters apply to every store, and a filter matching files in only one of them returns that one's hits rather than reporting that nothing matched. Stores whose embedding models differ can be searched together: each embeds the query with its own model, and nothing downstream compares two models' numbers.

  • Every hit says which store it came from, in the text output, in --json as a store field, and over MCP. A store is named after the directory holding it, so ../api/.semlith is api; two stores that would collide get their paths instead.

  • SEMLITH_STORE accepts a list, split the way PATH is, so an MCP server definition can name several stores without a wrapper script.

  • One MCP server, several stores. semlith_search gained an optional store array that narrows a query, the tool description lists the stores that are open, an unknown name comes back as a tool error naming the real ones, and semlith_stats reports one line per store.

Adding a store is cheap: measured on three 300-file stores sharing a model, one query embed per search rather than one per store, a median 3.4ms for one store against 4.0ms for three, and a server holding 137 MB whether it was opened on one store or on three — one loaded model, not three.

Changed

  • A read command refuses a store path that is not already a store, instead of creating one. search, stats, files and mcp exit non-zero naming the path. Previously a mistyped --store became an empty store that answered every question with nothing — invisible in a multi-store query, where the other stores still return hits. index still creates the store it is given.
  • index, watch and forget take exactly one --store and exit non-zero if given more. They write, and a store has one writer.

Notes

No schema change and no index format change: a 0.4.0 store is searched by 0.5.0 with no re-index, and a store written by 0.5.0 is read by the 0.4.0 binary. A single-store invocation prints and serializes exactly what 0.4.0 did — the store label is absent when there is nothing to tell apart.

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.

Source: README.md, updated 2026-07-30