GitHub - SeanPedersen/vscode-semble: Semantic code search inside VS Code, powered by semble

GitHub

3 min read Original article ↗

Semantic code search inside VS Code, powered by semble.

Describe what code does — "where do we parse configuration", "retry failed uploads" — instead of guessing the identifier it was named after.

To install semble CLI yourself:

uv tool install semble    # or: pipx install semble

Usage

Open the Semble view in the Activity Bar and type in the search box, the way you would use the built-in Search view. Cmd+Alt+S (Ctrl+Alt+S on Windows/Linux) focuses it from anywhere, and Semble: Search in the Command Palette does the same.

  • Results appear below the box as you type, grouped by file. Click a file row to collapse it.
  • from the search box moves into the results; arrow keys preview each hit in the editor without taking focus out of the list. Enter opens it properly, Esc returns to the search box.
  • Clicking a result opens it and moves focus to the editor.
  • With text selected in the editor, Cmd+Alt+S seeds the search box with it.
  • The bar on the right of each row shows the result's score relative to the best hit for that query.

The first search against a folder builds the index and shows a cancellable progress notification. Subsequent searches hit the cache and return in well under a second.

Settings

Setting Default Description
semble.executablePath "" Absolute path to semble. Empty means auto-detect.
semble.autoInstall "prompt" prompt offers a managed install when no CLI is found; never only links to the docs.
semble.topK 10 Number of results per search.
semble.maxSnippetLines 10 Lines of source per result. 0 shows locations only.
semble.contentTypes ["code"] Content to index: code, docs, config, or all.

Requirements

The extension needs the semble CLI. If you already have it, nothing to do — it is found automatically. If you don't, the extension offers to install a private copy for you the first time you search.

Detection

The executable is looked for in order: PATH, the usual install locations (~/.local/bin, /opt/homebrew/bin, /usr/local/bin), your login shell's PATH, and finally the extension-managed install. The login-shell step matters because VS Code launched from Finder or the Dock does not inherit the PATH your .zshrc sets up — which is where uv and pipx put their shims.

If detection still fails, point semble.executablePath at the binary; which semble will tell you where it is.

Managed install

When no CLI is found, the error notification offers Install CLI. That creates a private environment under the extension's storage directory using uv (which fetches a Python interpreter too, if the machine has none), falling back to venv + pip when only Python 3.10+ is available. It does not touch your PATH or your own Python environments, and it goes away when you uninstall the extension. Progress is streamed to the Semble Install output channel.

Semble: Install or Update CLI in the Command Palette runs the same thing on demand and upgrades an existing managed copy to the latest release.

Note that the first search after installing also downloads the embedding model, so there are two waits on a cold machine.

To install the CLI yourself instead:

uv tool install semble    # or: pipx install semble

Development

pnpm install
pnpm run check     # typecheck
pnpm test          # unit tests
pnpm run build     # bundle to dist/
pnpm run package   # produce a .vsix

Press F5 to launch an Extension Development Host with the extension loaded.

License

MIT