Search
Find text across the project, filter files by name, search inside a file, and let the agent search for you.
Embedr searches your project by exact text. There is no separate index to build or refresh: results always reflect the files on disk (or in the web project) at the moment you search. Datasheets are indexed separately when you import them; see Datasheets.
Where to search
| What you want | Use | Shortcut |
|---|---|---|
| Text in any project file | Search palette | Cmd+Shift+F (Windows/Linux: Ctrl+Shift+F), or Cmd/Ctrl+P |
| A file by name | Search files... box in the file explorer | Search icon (Toggle Search) in the explorer header |
| Text in the open file | Find in file | Cmd/Ctrl+F |
| Replace in the open file | Replace in file | Cmd+Option+F on macOS, Ctrl+H elsewhere |
| A line number | Go to line | Cmd/Ctrl+G |
| A chat thread | Filter threads... in the Threads sidebar | Search icon in the Threads header |
| A setting | Search settings... at the top of Settings | Cmd/Ctrl+, then type |
| A part on the board | The search box in the BOM panel ("Search parts, references, packages, or MPNs") |
Search palette
Open it with Cmd/Ctrl+Shift+F, Cmd/Ctrl+P, the magnifier in the editor toolbar (Search Codebase), or Search files on the empty editor.
- Type in Search codebase.... Results update as you type.
- Each result shows the file name, its folder, the line number and the matching line with the match highlighted.
- Use ↑ and ↓ to move, Enter to open the file at that line, Esc to close. Clicking a result also opens it.
How it matches:
- literal text, not regular expressions (
Serial.begin(finds exactly that), - case-insensitive (
wifi.beginfindsWiFi.begin), - up to 50 results; refine the query if the one you want is not shown.
Good queries are distinctive strings: a function name (readSensor), a macro (LED_PIN), an include (Adafruit_BME280.h), an error message, a net name in a .zen file (VBUS_5V0), a reference designator (U3).
What is searched
The palette searches text files in the project. It skips:
- hidden files and folders (names starting with
., such as.git,.pio,.embedr), - files your
.gitignoreexcludes.
In the desktop app, if ripgrep (rg) is not on your PATH, Embedr uses its own scanner, which also skips build, dist, out, target, node_modules, .pio and similar output folders, and files over 2 MB. In the browser, the search runs over the web project's files.
If the palette says No results found, check the spelling, try a shorter fragment, and remember that generated output in ignored folders is not searched.
Filter files by name
Click the search icon in the file explorer header (Toggle Search) and type in Search files.... The tree shrinks to files and folders whose names contain the text, with matching folders expanded. Esc or the x clears it. This matches names only, not contents.
Search inside a file
In the code editor, Cmd/Ctrl+F opens the find bar for the current file; replace is Cmd+Option+F on macOS and Ctrl+H on Windows and Linux. Cmd/Ctrl+G jumps to a line number.
Let the agent search
The agent searches the project itself when it needs to. You see a Search project row in the timeline ("Searching project files…"); expand it for the pattern and the matching lines. It can use regular expressions and narrow to folders or file types.
Ask in plain words:
Find every place we write to the display buffer outside the render task.
Where is the I2C address of the IMU set, and is it the same in the firmware and the Zener source?
List the GPIOs used in
src/and check them against the pin table inpcb/board.zen.
For component facts, the agent searches imported datasheets with Search datasheets instead. To point it at a specific file, type @ in the composer and pick the file.
