Find & Replace
Open Find & Replace with Ctrl+F (or Cmd+F on Mac) while focused in a panel.
Two search modes
Find & Replace operates in two modes depending on your current view:
Text mode (Text View)
Searches the raw JSON text using regex pattern matching. This is a synchronous, fast search over the formatted JSON string.
- Matches appear as highlighted regions in the text
- Navigation moves the cursor to the next/previous match
- Replace operates on the raw text (you replace the exact matched string)
Tree mode (Tree View)
Searches keys and values in the parsed JSON structure using a web worker for performance.
- Matches appear as highlighted nodes in the tree
- Searches across all keys and values, including nested ones
- Replace can target keys or values independently
- Supports expression-based replacements
Search options
| Option | Description |
|---|---|
| Case sensitive | Toggle case-sensitive matching (checkbox) |
| Replace mode (Tree only) | Choose whether to replace values or keys |
Navigation
| Shortcut | Action |
|---|---|
| Enter | Jump to next match |
| Shift+Enter | Jump to previous match |
| F3 | Jump to next match |
| Shift+F3 | Jump to previous match |
| Escape | Close Find & Replace |
The match counter shows your position: e.g., “3 of 12 matches”.
Replace
Simple replacement
Type a plain string in the Replace field and click “Replace” (single match) or “Replace All”.
Search: old-api
Replace: new-apiExpression-based replacement
Use {{...}} expressions for dynamic replacements. The old variable refers to the current matched value.
Search: hello
Replace: {{old.toUpperCase()}}
Result: HELLOSearch: user
Replace: {{old + "_v2"}}
Result: user_v2See the Expressions section for full documentation on available functions, operators, and string methods.
Replace modes (Tree View)
In tree mode, you can choose what to replace:
- Value — replaces the matched value, keeping the key unchanged
- Key — renames the matched key, keeping the value unchanged
How tree search works
Tree search runs in a web worker to avoid blocking the UI on large documents. The search:
- Walks the entire JSON tree depth-first
- Matches the search text against every key name and string value
- Also matches against number and boolean values (converted to strings)
- Returns a list of matches with their paths
Results are compiled into a MatchMap — an O(1) lookup table indexed by JSON path — so highlighting individual nodes is instant regardless of document size.
Tree search debounces by 300ms. If you’re typing quickly, results update after you pause.