From 22593da5d5164c290291cfbe42e4dfe0698bbc7e Mon Sep 17 00:00:00 2001 From: Pringled Date: Tue, 14 Apr 2026 17:40:27 +0200 Subject: [PATCH 1/3] Trim README to bare minimum --- README.md | 18 ------------------ 1 file changed, 18 deletions(-) diff --git a/README.md b/README.md index 28dfd5b..6341350 100644 --- a/README.md +++ b/README.md @@ -25,24 +25,6 @@ for r in results: results = index.search("JWT token", mode=SearchMode.BM25) ``` -## Search modes - -| Mode | Description | -|------|-------------| -| `hybrid` | Semantic + BM25, normalized and combined (default) | -| `semantic` | Embedding similarity only | -| `bm25` | Keyword search only | - -## Disk embedding cache - -Embeddings are cached to `~/.cache/semble` by default so re-indexing unchanged files is instant. When using a custom encoder, pass `model_name` to enable caching: - -```python -index = SembleIndex.from_path("./my-project", model=my_model, model_name="my-org/my-model") -``` - -Only embeddings are cached; BM25 and the ANNS index are always rebuilt fresh. - ## MCP server Semble can run as an MCP server so agents (Claude Code, Cursor, etc.) can search your codebase directly. From 9def45a2ed809d87fdf07ee8955f6f00a5f1019d Mon Sep 17 00:00:00 2001 From: Pringled Date: Tue, 14 Apr 2026 17:42:42 +0200 Subject: [PATCH 2/3] Remove search mode options from docs --- README.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/README.md b/README.md index 6341350..a29c01d 100644 --- a/README.md +++ b/README.md @@ -11,18 +11,14 @@ pip install semble ## Python API ```python -from semble import SearchMode, SembleIndex +from semble import SembleIndex index = SembleIndex.from_path("./my-project") -# Hybrid search (semantic + BM25, default) results = index.search("how does authentication work?", top_k=5) for r in results: print(r.chunk.location, f"score={r.score:.3f}") print(r.chunk.content[:200]) - -# Keyword-only -results = index.search("JWT token", mode=SearchMode.BM25) ``` ## MCP server @@ -45,5 +41,5 @@ This indexes the directory at startup and exposes two tools: | Tool | Description | |------|-------------| -| `search` | Search with a natural-language or code query. Supports `hybrid` (default), `semantic`, and `bm25` modes. | +| `search` | Search your codebase with a natural-language or code query. | | `find_related` | Given a file path and line number, return chunks semantically similar to the code at that location. | From 921611e433fdb393cd3c6f32737d671be9b01e24 Mon Sep 17 00:00:00 2001 From: Pringled Date: Tue, 14 Apr 2026 17:43:30 +0200 Subject: [PATCH 3/3] Use 'result' instead of 'r' in README example --- README.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index a29c01d..2e0c25e 100644 --- a/README.md +++ b/README.md @@ -16,9 +16,9 @@ from semble import SembleIndex index = SembleIndex.from_path("./my-project") results = index.search("how does authentication work?", top_k=5) -for r in results: - print(r.chunk.location, f"score={r.score:.3f}") - print(r.chunk.content[:200]) +for result in results: + print(result.chunk.location, f"score={result.score:.3f}") + print(result.chunk.content[:200]) ``` ## MCP server