A modern, tabbed grep experience for Windows.
Search local drives, UNC shares, WSL distributions, and running Docker containers from one WinUI 3 application.
Install | Quick start | Documentation | Contributing | Security and privacy
Grex keeps the familiar precision of grep while adding the parts that are awkward to manage in a terminal:
- Independent search tabs with persistent column and filter preferences
- Plain-text and .NET Regex matching with case, culture, Unicode normalization, and diacritic controls
- Content-line and per-file result views
- Local, UNC, WSL, and Docker search targets
- Nested
.gitignore, filename, directory, size, hidden, system, binary, and symbolic-link filters - Context preview, result filtering, sorting, export, history, and named profiles
- Confirmed bulk replace for Windows, UNC, and WSL paths
- Visual Regex Builder with presets, live matches, and syntax breakdown
- Optional AI chat through a user-configured OpenAI-compatible endpoint
- A Windows command-line companion,
grex-cli
See the feature matrix for exact behavior and boundaries.
Published builds target Windows x64. Choose an asset from the latest release:
| Asset | Best for | What it does |
|---|---|---|
grex-<version>-setup.exe |
Most users | Per-user install under %LocalAppData%\Programs\Grex, Start menu entry, uninstaller, optional desktop shortcut, optional grex-cli PATH entry |
grex-<version>-win-x64.zip |
Portable GUI use | Extract anywhere and run Grex.exe; no installer or automatic updates |
grex-cli-<version>-win-x64.zip |
Scripts and terminals | Extract anywhere and run grex-cli.exe |
Requirements:
- Windows 10 version 1809, build 17763, or later
- x64 processor for published releases
- Windows App Runtime 1.8
Install the runtime with:
winget install --id Microsoft.WindowsAppRuntime.1.8 -e --source wingetRelease archives are self-contained for .NET, so the .NET SDK is not required to run them. The current installer is not code-signed, so Windows SmartScreen may ask you to confirm the download. Verify that the file came from this repository's Releases page before continuing.
Full install, update, portable, and uninstall instructions are in the Usage Guide.
- Open Grex.
- Browse to a directory or paste a Windows, UNC, or WSL path.
- Enter text or a Regex pattern.
- Pick Content or Files results and set any filters.
- Select Search or press Enter.
- Select a result to preview context, open the file, filter the current results, or export them.
For replacement, enable Replace, enter replacement text, review the confirmation, and select Replace.
Replace has no undo. Grex writes eligible files directly, and cancelling can leave files already processed changed. Commit, back up, or snapshot important data first.
Enable Docker search in Settings, choose a running container, and enter a path inside it such as /app. Grex tries in-container grep, then falls back to a temporary host mirror when needed. Docker replacement is disabled.
Use \\wsl$\Ubuntu\home\user\repo, \\wsl.localhost\Ubuntu\home\user\repo, or a Linux path such as /home/user/repo. Grex runs Linux-side search commands through wsl.exe. WSL replacement uses sed -i for eligible text files, treats replacement text literally, and is not reversible.
The positional order is <path> <term>:
grex-cli "C:\Projects" "TODO"
grex-cli "C:\src" "TODO|FIXME" --regex --gitignore --match-files "*.cs|*.xaml"
grex-cli "C:\logs" "error" --format jsonExit codes are grep-like: 0 for matches, 1 for no matches, and 2 for an error. See the complete CLI reference.
Grex can send a chat request to an OpenAI-compatible endpoint that you configure. It sends the current path, query, search/result modes, active filter suggestions, and chat history. It does not automatically send file contents or search results.
The API key is stored as plain text in %LocalAppData%\Grex\settings.json and is included in settings exports. Use HTTPS, protect backup files, and read Security and Privacy before enabling AI chat.
| Document | Audience and scope |
|---|---|
| Public documentation | Start here; map of every public guide |
| Usage Guide | Install, search, replace, Docker, WSL, AI, settings, and troubleshooting |
| Feature Matrix | Supported capabilities, fallbacks, limits, and target differences |
| Technical Reference | Shortcuts, patterns, settings schema, CLI flags, files, formats, and caps |
| Architecture | Runtime design, service boundaries, flows, persistence, and dependencies |
| Build and Test | Windows setup, build, tests, packaging, and release artifacts |
| Translation Guide | Resource catalogs, status tracking, scripts, review, and line endings |
| Contributing | Contribution workflow and repository rules |
| Security and Privacy | Reporting, local writes, credentials, network use, Docker, WSL, and logs |
| Third-party notices | Redistributed components and license texts |
The GUI, CLI, and .NET test projects build only on Windows because the solution depends on WinUI XAML, Windows App SDK, MSIX, and PRI tooling. Use a concrete platform:
git clone https://github.com/visorcraft/Grex.git
cd Grex
dotnet restore grex.sln
dotnet build grex.sln -p:Platform=x64
dotnet test grex.sln -p:Platform=x64 -p:WindowsAppSdkBootstrapInitialize=false
dotnet run --project Grex.csproj -p:Platform=x64The Python tools in Scripts/ are the only cross-platform build tooling. See Build and Test before contributing.
- Search existing issues before opening a new one.
- Include the Grex version, Windows build, target type, reproduction steps, and relevant
%Temp%\Grex.loglines. - Report vulnerabilities only through private vulnerability reporting.
Grex is licensed under GNU GPL v3.0. Third-party components retain their own licenses as listed in THIRD-PARTY-NOTICES.txt.



