You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add MIT license, project README with install/usage docs, GitHub Actions
CI (fmt/clippy/test on macOS+Linux) and release workflows (cross-platform
binary builds). Fix clippy warnings and apply cargo fmt.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|`vault_path`| Path to Obsidian vault | None (must specify via CLI/config) |
53
+
|`top_n`| Number of search results to return |`5`|
54
+
|`exclude`| Glob patterns to exclude from indexing |`[".obsidian/*", ".trash/*"]`|
55
+
|`batch_size`| Files per embedding batch |`64`|
56
+
57
+
## How it works
58
+
59
+
engraph splits your vault's markdown files into heading-based chunks, generates embeddings locally using an ONNX runtime model (all-MiniLM-L6-v2), and stores them in an HNSW index for fast approximate nearest-neighbor search. Everything runs on your machine -- no API keys, no network calls after the initial one-time model download.
60
+
61
+
The indexing pipeline:
62
+
63
+
1. Walk the vault, respecting `.gitignore` and exclude patterns
64
+
2. Split each markdown file into chunks by heading boundaries
65
+
3. Sub-split oversized chunks to stay within the model's token limit
66
+
4. Embed chunks in batches via ONNX Runtime
67
+
5. Insert embeddings into an HNSW graph stored alongside a SQLite metadata database
68
+
69
+
Subsequent runs are incremental -- only new or modified files are re-processed.
70
+
71
+
## Contributing
72
+
73
+
Contributions are welcome. Please open an issue to discuss larger changes before submitting a PR.
0 commit comments