Skip to content

Repository files navigation

Osprey application icon: a stylized osprey bird

A fast, powerful, cross-platform desktop GUI for searching and replacing text across large codebases.

Latest Osprey release on GitHub Requires Python 3.12 or newer Supported platforms: Windows, macOS, Linux Dual license: free for non-commercial use, paid license for commercial use GitHub stars for petercai/osprey

Why Osprey

Modern IDEs bundle a "find in files" panel, and terminal tools like ripgrep are blazing fast — but neither is a great fit when you need to search and edit across an entire project:

  • IDE search panels are slow to start, tied to one project window, and offer a single engine with limited filtering.
  • Terminal search tools are fast but text-only: no result preview, no safe multi-file replace workflow, no way to save or revisit a search.
  • Bulk find-and-replace across dozens of files is risky without a diff preview and an undo path.

Osprey wraps industry-standard search engines (ripgrep, grep) in a purpose-built GUI so you get terminal-grade speed with an editor-grade workflow:

  • Search multiple folders at once with glob or regex include/exclude filters, refined instantly with a fuzzy result filter.
  • Preview every match — file or line — in a live preview pane, and open it directly in your own editor.
  • Replace at line, file, or project level with an inline diff preview before anything is written to disk.
  • Save, reload, and revisit search queries, results, and filter rule sets instead of retyping them every time.

Features

Multi-folder search with instant filtering

Search across several folders in one pass. Include/exclude filters support both glob (*.py, src/**) and regex patterns, and a fuzzy filter box narrows the visible result set as you type — no re-running the search.

Osprey search panel showing multi-folder search, glob/regex include and exclude filters, and an instant result filter box

File and line results with live preview

Results are grouped by file and expand to matched lines with line numbers. Selecting any file or line opens it in the built-in preview pane with the match highlighted in context.

Open matches in your own editor

Right-click a result or a preview line to open the file — at the matched line, when available — in an external editor. Editors (VS Code, Notepad++, or any command-line tool) are configured once in Preferences and then appear as one-click context menu entries.

Osprey preview panel context menu offering to open the matched file in VS Code or Notepad++

Line, file, and project-wide replace with diff preview

Preview replacements as an inline diff — added and removed text is color-coded per match — before committing anything. Apply a single change, an entire file, or all matches at once, with an optional pre-replace backup.

Osprey replace preview showing an inline diff with per-file Preview, Replace, and Backup controls

Save and reload search queries, results, and filter rules

Search options (.opq), full result snapshots (.opr), and include/exclude rule sets can each be saved to disk and reloaded later — useful for recurring audits or handing a prepared search off to a teammate.

Osprey File menu with Save/Load Search Options, Save/Load Results, and Export/Import Rules

Recent queries and results

The Recent menu keeps the last 20 search query profiles and the last 20 saved result snapshots, so you can jump back into a prior investigation in one click.

Osprey Recent menu listing recent .opq search queries and .opr saved results

Search history

The search field keeps a dropdown of your last 20 search terms, letting you re-run or tweak a recent pattern without retyping it.

Osprey search history dropdown listing recently used search patterns

Choice of search engine

Osprey drives your search through ripgrep or grep, auto-detecting what is available on the system and letting you switch engines from a dropdown.

Osprey engine selector dropdown listing ripgrep and grep

Installation

Option A — Portable executable (recommended)

Download the single-file executable for your platform from the Releases page and run it — no Python, no installer, no admin rights required.

# Windows example
osprey.exe .

Option B — Run from source

Requires Python 3.12+ and uv.

uv sync
uv pip install .
osprey

Quick Start

osprey                                   # launch GUI, search dir defaults to the current directory
osprey /path/to/project                  # launch GUI, pre-fill the search directory
osprey search.opq                        # launch GUI, load a saved search query profile
osprey results.opr                       # launch GUI, load a saved result snapshot
osprey --pattern "TODO" --path .         # pre-fill pattern and path
osprey --pattern "TODO" --headless       # headless mode: print results to stdout, no GUI
osprey --pattern "TODO" --headless --json  # headless mode with JSON output

Run osprey --help for the full list of options.

License

Osprey follows a dual-license model:

If you need commercial usage guidance for your deployment scenario, contact the maintainer at petercaica@hotmail.com.

Support

If Osprey saves you time, consider supporting its development:

Contributing

Bug reports and feature requests are welcome via GitHub Issues.

See CHANGELOG.md for release history.

About

Search, Replace, Everywhere - A powerful, cross-platform desktop GUI for searching and replacing text across large codebases.

Resources

Stars

Watchers

Forks

Releases

Sponsor this project

Packages

Contributors

Languages