v0.2.2 — first PyPI release of the daemon-auto-spawn line
TL;DR — Same functional improvements as v0.2.1 (daemon auto-spawn finally works; vault and model guards prevent stale-daemon silent wrongness; PyPI metadata / README / llms.txt polish), but this one actually made it to PyPI. Use pip install seeklink==0.2.2 — seeklink==0.2.1 is not on PyPI.
Why v0.2.2 and not v0.2.1?
v0.2.1's pyproject.toml declared the license twice — once as the SPDX expression license = "MIT" and once as the legacy License :: OSI Approved :: MIT License classifier — which modern setuptools rejects under PEP 639. The tag and GitHub release shipped, but the PyPI build failed. v0.2.2 removes the duplicate classifier (re-fixing what commit c0d261a did historically) and carries an inline comment pinning the lesson.
No functional diff from v0.2.1 — same daemon-first dispatch, same vault/model guards, same CLI behavior. Only pyproject.toml and CHANGELOG.md changed.
All user-facing improvements since v0.2.0
(Copied from the v0.2.1 notes, which are now superseded by this release.)
- Daemon auto-spawn actually works.
seeklink search/seeklink indexwithout--vaultauto-spawn the resident daemon and serve subsequent calls in ~10ms. - Vault- and model-safe daemon reuse. A stale daemon bound to a different vault / embedder / reranker is rejected via a preflight
statusprobe, so switchingSEEKLINK_VAULTorSEEKLINK_EMBEDDER_MODELno longer silently returns results from the wrong DB. On non-Apple-Silicon wheremlx_lmcan't load, the daemon's self-disabled reranker is accepted so the daemon-first workflow still works there. seeklink statusstays cold-start. It never embeds or reranks, so routing it through the daemon was wasting up to a 700 MB MLX reranker download on first run just to print a few numbers. Now ~0.2s.- PyPI metadata. 21 keywords added, richer classifiers, Issues + Changelog URLs, description names Obsidian compatibility explicitly.
- README restructure. New "Ideal for" tagline, "When to use / When not to use" sections, compact "How it compares" table (vs Obsidian core, Obsidian semantic plugins, ripgrep, build-your-own RAG), "Support & limitations" matrix, and a CI tests badge.
llms.txtat the repo root per llmstxt.org.- CI honest.
|| truedropped fromVerify install; Python matrix now covers 3.11, 3.12, 3.13, 3.14. - Repo-wide improvements. New
CHANGELOG.md(Keep a Changelog format), 19 GitHub topics for discoverability.
Install
pip install --upgrade seeklink
# or
uv tool install seeklinkRecommended usage
export SEEKLINK_VAULT=/path/to/vault
seeklink search "machine learning"First call after a cold boot: ~2s (spawns the daemon, loads the embedder). Every call after that: ~10ms without reranker, ~0.5s with reranker.
Full changelog
See CHANGELOG.md.
Diff from v0.2.0: v0.2.0...v0.2.2