v0.1.0
This is the first release. org-semantic indexes a directory tree of org-mode notes and searches it in two ways: by meaning, with embeddings, and by word, with BM25. It keeps the two rankings separate. It is one static binary. You do not need a database, Python or a service.
The command line is the release. The Emacs package is early. The commands below are in use and measured. The package searches, shows results and reindexes, but it is not complete. There is no minibuffer interface and no installer. Version 0.2.0 is the release that makes the package usable.
Added
- The commands
index,search,chunks,tokens,models,benchandserve. - Indexing is incremental for each passage, not for each file. If you add one meeting to a file of many meetings, the binary embeds one passage and not the full file.
servespeaks JSON-RPC 2.0 through stdio and keeps the embedding model in memory. A warm semantic query takes about 9 ms. A cold query takes about 309 ms. Indexing runs in a worker thread, so the server answers a search during a rebuild.- An Emacs package.
org-semantic-findshows the results in a buffer withnext-errornavigation.org-semantic-reindexshows the progress of a rebuild. The package does not need org-mode, consult or vertico. Put the binary in yourexec-path, or setorg-semantic-executable. ORG_SEMANTIC_CACHE_HOME, andorg-semantic-cache-homein Emacs, set the directory for the models. A model is between 128 MB and 2.24 GB.- The macOS binaries are signed and notarized. CI builds them from a version tag.
Known limitations
- On macOS the binary works only on Apple Silicon. ONNX Runtime has no prebuilt library for Intel macOS, so the Intel binary does not link. Rosetta does not help, because there is no Intel binary to translate.
- The Windows binary starts and answers
--versionandmodelsin CI. Nobody has indexed or searched with it. - You cannot interrupt the binary while it downloads a model.
- The Emacs package does not install or update the binary. It compares the versions and gives you a warning.