
Boop lets you open files in your codebase using natural language. Just describe what you're looking for — no need to remember exact file names or folder paths.
Powered by local embeddings (Xenova/all-MiniLM-L6-v2) running entirely offline via @xenova/transformers (~45 MB unpacked, ~22 MB for the ONNX model itself). No data leaves your machine.
[!NOTE] On first run, the embedding model (~22 MB) is downloaded automatically from Hugging Face Hub and cached locally.
Features
- Natural language file search — "auth middleware", "sidebar component", "database config"
- Semantic embeddings — finds files by meaning, not just keywords
- No code reading — only file names, paths, language, and optional header tags are embedded. Your source code is never read, sent, or stored.
- LLM-powered search — optional re-ranking via Gemini, OpenAI, or OpenRouter
- Rich filters —
@lang: py,@ext: .ts,@inFolder: src/,@symbol: getUser,@modified: today - Auto-generated file headers — add
@purpose,@category,@relatedtags to files - Symbol extraction — functions, classes, interfaces indexed from LSP
- Delta indexing & file watching — fast incremental updates on save/create/delete
How to Use
- Install the extension from the VS Code Marketplace.
- Open the sidebar — click the Boop icon in the activity bar.
- Describe what you need — type a natural language query in the search bar (e.g.,
user login handler). - Pick a search mode:
- Embeddings — fast, fully offline, no setup required
- LLM — smarter results; requires an API key (Gemini, OpenAI, or OpenRouter)
- Click a result to open the file, or use the command palette (
Ctrl+Shift+P) for:Boop: Open Files by Description— inline quick-pick searchBoop: Add File Purpose Header— add structured headers to the active fileBoop: Rebuild Metadata Index— full rescanBoop: Configure LLM Provider— set API keys and models
Requirements
- VS Code 1.85+
- Node.js 18+
- (Optional) An API key for Gemini, OpenAI, or OpenRouter if using LLM mode
Settings
| Setting | Description |
|---|---|
boop.searchMethod |
embeddings (default, offline) or llm |
boop.llmProvider |
gemini, openai, or openrouter |
boop.geminiApiKey |
Google Gemini API key |
boop.openaiApiKey |
OpenAI API key |
boop.openRouterApiKey |
OpenRouter API key |
boop.maxResultsShown |
Max files in results (1–20) |
boop.rootFolderPath |
Subdirectory to index (empty = whole workspace) |
boop.includePatterns |
Glob patterns to include |
boop.excludePatterns |
Glob patterns to exclude |
boop.autoSummarizeOnStartup |
Auto-generate @purpose headers on first run |
Screenshots
Built with @xenova/transformers and onnxruntime.