Large codebases
Progressive project maps, streaming indexes, language coverage, and honest limits on repository understanding.
Lamied explores large projects progressively: first the directory structure, then relevant modules, definitions, callers and tests. It does not send the entire repository to a model or assume an index proves that every dependency is understood.
Start with a project map
Map this monorepo, identify the packages involved in authentication, then trace the login flow. Report any areas you could not inspect.The assistant can call repository_map before indexing finishes. This local tool lists directories, file types and example paths without reading file contents. It reports partial coverage and supports a subtree path and one to four directory levels. The assistant can drill into the relevant directories and use definitions, callers, impact analysis and text search for evidence.
Bounded indexing
| Operation | Behavior |
|---|---|
| Initial scan | Streams files instead of retaining all source text. Optional embedding work consumes at most eight files per batch. |
| Reopening | Restores cached graph data in batches of 32 files, waiting for the background worker between batches. |
| Changes | Content hashes avoid unchanged parsing and embeddings. Newer saves and deletions take priority over an older scan. |
| Live updates | Deduplicates queued paths and limits reconciliation to eight files, including waiting for embeddings. |
| Interrupted scans | Do not prune unseen files as though they had been deleted. Re-index to finish reconciliation. |
Progress shows processed file counts while the total is still unknown. The scan is limited to 100,000 readable files, one million directory entries and 64 nested levels. Each file must be a regular, non-binary file no larger than 500,000 bytes. These are safety limits, not a performance guarantee.
Language coverage
Discovery includes native parser languages plus Java, Dart, Kotlin, Swift, Ruby, shell scripts, Markdown, YAML, TOML and SQL. Structural extraction depends on the native parser; languages without structural support use text search and optional text-chunk embeddings. The symbols-only graph currently covers TypeScript, JavaScript, Python and C/C++. Installing an LSP adds editor intelligence, not a new native graph parser. See Extensions and language servers.
Control the scope
Use .lmignore to exclude generated source and confidential paths, then re-index to reconcile cached entries. The same admission rules apply to initial indexing, watcher updates and editor saves. Known credential filenames, hidden directories, dependency folders and build output are excluded.
Limits of whole-project understanding
Dynamic dispatch, generated code, runtime configuration and external services can hide dependencies. The graph remains in memory, and some SQLite operations still run in the desktop main process. For very large monorepos, open a focused workspace, exclude generated trees, and ask the assistant to report evidence and gaps before making a cross-package change.