# smgrep > Semantic code search using natural language queries. Use when users ask "where is X implemented", "how does Y work", "find the logic for Z", or need to locate code by concept rather than exact text. Returns file paths with line numbers and code snippets. - Author: Can Bölük - Repository: can1357/smgrep - Version: 20251201231146 - Stars: 58 - Forks: 0 - Last Updated: 2026-02-08 - Source: https://github.com/can1357/smgrep - Web: https://mule.run/skillshub/@@can1357/smgrep~smgrep:20251201231146 --- --- name: smgrep description: Semantic code search using natural language queries. Use when users ask "where is X implemented", "how does Y work", "find the logic for Z", or need to locate code by concept rather than exact text. Returns file paths with line numbers and code snippets. allowed-tools: "Bash(smgrep:*), Read" license: Apache-2.0 --- ## When to Use Use this to find code by **concept** or **behavior** (e.g., "where is auth validated", "how are plugins loaded"). *Note: This tool prioritizes finding the right files and locations in the code. Snippets are truncated (max 16 lines) and are often just previews.* Example: ```bash smgrep "how are plugins loaded" smgrep "how are plugins loaded" packages/transformers.js/src ``` ## Strategy for Different Query Types ### For **Architectural/System-Level Questions** (auth, LSP integration, file watching) 1. **Search Broadly First:** Use a conceptual query to map the landscape. * `smgrep "authentication authorization checks"` 2. **Survey the Results:** Look for patterns across multiple files: * Are checks in middleware? Decorators? Multiple services? * Do file paths suggest different layers (gateway, handlers, utils)? 3. **Read Strategically:** Pick 2-4 files that represent different aspects: * Read the main entry point * Read representative middleware/util files * Follow imports if architecture is unclear 4. **Refine with Specific Searches:** If one aspect is unclear: * `smgrep "session validation logic"` * `smgrep "API authentication middleware"` ### For **Targeted Implementation Details** (specific function, algorithm) 1. **Search Specifically:** Ask about the precise logic. * `smgrep "logic for merging user and default configuration"` 2. **Evaluate the Semantic Match:** * Does the snippet look relevant? * **Crucial:** If it ends in `...` or cuts off mid-logic, **read the file**. 3. **One Search, One Read:** Use smgrep to pinpoint the best file, then read it fully. ## Output Format Returns: `path/to/file:line [Tags] Code Snippet` - `[Definition]`: Semantic search detected a class/function here. High relevance. - `...`: **Truncation Marker**. Snippet is incomplete—use `read_file` for full context. ## Tips - **Trust the Semantics:** You don't need exact names. `smgrep "how does the server start"` works better than guessing `smgrep "server.init"`. - **Watch for Distributed Patterns:** If results span 5+ files in different directories, the feature is likely architectural—survey before diving deep. - **Scope When Possible:** Use path constraints to focus: `smgrep "auth" src/server/` - **Don't Over-Rely on Snippets:** For architectural questions, snippets are signposts, not answers. Read the key files. - **"Still Indexing...":** If you see this, please stop, alert the user that the index is ongoing and ask them if they wish to proceed. Results will be partial until the index is complete.