Codebase indexing
How the assistant finds relevant code, and excluding files with .lmignore.
The assistant doesn't read your whole project for every request; that would be slow and costly. Instead it searches for the code that matters, using up to three indexes.
| Index | Finds | Setup | Leaves your computer? |
|---|---|---|---|
| Symbol graph | Definitions, callers, and what a change affects | Automatic when you open a folder | No |
| Text search | Exact names and strings | None | No |
| Embeddings (optional) | Code by meaning (“where do we retry failed payments?”) | A Voyage AI key | Yes, to Voyage AI |
The symbol graph (automatic)
When you open a folder, Lamied parses your code in the background with its native engine and builds a map of functions, classes and how they call each other. You can keep working while it runs. Nothing is sent anywhere and no key is needed.
Embeddings (optional)
Embeddings let the assistant find code by what it does, even when your words don't match the code's names. They're made by Voyage AI, so this sends chunks of your code to Voyage.
- Get an API key from Voyage AI. It's separate from your chat provider's key.
- Open AI settings (⚙) → Codebase Indexing, paste it into Voyage AI Key.
- Click Index Workspace. A progress bar shows how far it has got, and the chat says when it's done.
Re-indexing reads files to compare content hashes, but avoids parsing and embedding unchanged content. The scan streams small batches instead of retaining the whole project's source text. See Large codebases for limits and project-map navigation.
Exclude files with .lmignore
Create a .lmignore file in your workspace root to keep files out of Lamied's analysis. It uses the same syntax as .gitignore.
# Generated code
generated/
*.pb.go
# Fixtures and data dumps
tests/fixtures/
*.sqlFiles it matches are left out of:
- the symbol graph and embeddings the assistant searches;
- the Complexity Dashboard.
They still appear in Explorer, Go to File and Search, and you can open and edit them as usual. Folders such as node_modules, virtual environments, vendor and hidden folders are skipped automatically.
Re-index after changing exclusions to reconcile cached entries. Incremental saves re-check exclusions before indexing. These rules govern indexing and retrieved context, not explicit agent file reads, terminal commands or MCP access; they are not an operating-system privacy boundary.