| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| install.ps1 | 2026-10-04 | 9.4 kB | |
| install.sh | 2026-10-04 | 8.7 kB | |
| semlith-v0.37.0-rc.1-aarch64-apple-darwin.tar.gz | 2026-10-04 | 25.0 MB | |
| semlith-v0.37.0-rc.1-aarch64-unknown-linux-gnu.tar.gz | 2026-10-04 | 24.5 MB | |
| semlith-v0.37.0-rc.1-x86_64-pc-windows-msvc.zip | 2026-10-04 | 22.6 MB | |
| semlith-v0.37.0-rc.1-x86_64-unknown-linux-gnu.tar.gz | 2026-10-04 | 25.7 MB | |
| SHA256SUMS | 2026-10-04 | 623 Bytes | |
| README.md | 2026-10-04 | 4.7 kB | |
| Semlith 0.37.0-rc.1 source code.tar.gz | 2026-10-04 | 4.4 MB | |
| Semlith 0.37.0-rc.1 source code.zip | 2026-10-04 | 4.7 MB | |
| Totals: 10 Items | 107.0 MB | 0 | |
Semlith Cloud, from this machine
Nothing changes for anybody who never signs in: with no ~/.semlith/cloud.json
the binary makes no outbound connection and starts no thread for the cloud.
semlith cloud login [<org>]signs in by a code approved in the browser (the device authorization grant), or with--tokenchecked against the host first. The token is kept owner-only in~/.semlith/cloud.json, one entry per host and org, and is sent to that host and no other.logoutforgets it;status [--json]prints the org, its stores with each source's revision and lag, and the month's usage.semlith cloud connect <org>adds the org's stores as remote stores named<org>/<store>, listed bystats,files,semlith_stats, the Stores page and Search's picker with aremote · <org>badge, and refused by every write path with a sentence saying why.disconnecttakes them off and leavesregistry.jsonbyte for byte as it was.- A search naming a remote store, or none, is one list: remote hits merged with
local ones by score under the same
kand budget, each with its badge, revision and lag. Other tools naming a remote store are forwarded to the org's MCP endpoint. An unreachable or refusing host costs one line naming the stores skipped; the local answer is whole. semlith cloud push <org>/<store> <dir> [--wait] [--prune]sends only the files whose hashes changed, after semlith's own refusals. A push that would remove files the store's uploads hold and the folder lacks is refused with their names unless it says--prune; the portal asks first.semlith cloud sync <store> on|off: per store, off by default, the ledger's rows (when, client, session, tool, tokens; never the query text) go to the org's ledger once a minute, at most 1,000 at a time. A newsynced_atcolumn records what was sent.semlith cloud reportandsemlith cloud replay.- Settings › Cloud draws both states; the Ledger page says what is syncing, the
Privacy page what leaves the machine and when, the daemon card
· cloud: <org>, andsemlith doctorhas a cloud line.
Added
Semlith::index_paths_under,Semlith::index_rest_underandSemlith::undo_run: a run under a control an embedder drives (pause, yield and continue fromIndexReport::pending, stop and undo every slice'swritten), each taking the store's lock asindex_pathsdoes.
Fixed
- An MCP client reached over HTTP is labelled by the
Semlith-Hostheader its stdio proxy sends, never by the ancestry of the daemon serving it. A daemon started from a terminal filed every HTTP client under that terminal's app ("flow-test (Claude Code)"); an embedder callingsemlith::mcp::answergets no host unless it setsSession::host. - A stopped run's undo no longer archives the run's own definitions as symbol
history. Undoing a 400-file run left 600 rows in
symbols_pastfor code the store never held;forgetand re-indexing keep their history as before. semlith searchanswers from connected remote stores too, not only the MCP tool and the portal.semlith cloud replaysays once, not twice, that session replay is off for the org.- The model cache is created private (0700) when it does not exist yet. Left to the download it took the umask, and on Ubuntu, whose default is 002, the first run downloaded the model and every later run refused the group-writable directory.
- Markdown heading names drop their inline emphasis, code spans and links: a
Confluence heading
## **Making purposeful content**was named with its asterisks in search and the graph. Existing stores keep the old names until those files are re-indexed. - A finished run's history row is written before anything can read the run as finished; a daemon stopped right after "done" could lose it.
- With the cloud unreachable, the search summary counts its stores as
skipped, not as 0 hits; a remote store the cloud no longer offers says so in
Settings › Cloud;
cloud statussizes caps in GB.
Install
macOS and Linux
:::sh
curl --proto '=https' --tlsv1.2 -fsSL https://raw.githubusercontent.com/semlith/semlith/main/install.sh | sh
Windows
:::powershell
irm https://raw.githubusercontent.com/semlith/semlith/main/install.ps1 | iex
Or download the archive for your platform below, unpack it, and put
semlith on your PATH. Intel macOS has no prebuilt binary: ONNX
Runtime no longer publishes x86_64 macOS builds.
Verify a download against SHA256SUMS before running it, and its
provenance with gh attestation verify <file> --repo semlith/semlith.