rgx-cli 0.1.9

A terminal regex debugger with real-time matching, capture group highlighting, and plain-English explanations
Documentation

rgx

regex101, but in your terminal

CI Crates.io Downloads License

A terminal regex debugger with real-time matching, capture group highlighting, and plain-English explanations. Written in Rust.

demo


Features

  • Real-time matching — matches update on every keystroke
  • 3 regex engines — Rust regex (default), fancy-regex (lookaround/backrefs), PCRE2 (full features)
  • Capture group highlighting — distinct colors per group, nested group support
  • Plain-English explanations — walks the regex AST to generate human-readable breakdowns
  • Engine selector — switch engines with Ctrl+E, see where behavior differs
  • Regex flags — toggle case-insensitive, multiline, dotall, unicode, extended
  • Stdin pipe supportecho "test string" | rgx '\d+'
  • Cross-platform — Linux, macOS, Windows

Installation

From crates.io

cargo install rgx-cli

From prebuilt binaries

Download from GitHub Releases.

Shell installer

curl --proto '=https' --tlsv1.2 -LsSf https://github.com/brevity1swos/rgx/releases/latest/download/rgx-installer.sh | sh

Homebrew

brew install brevity1swos/tap/rgx

From source

git clone https://github.com/brevity1swos/rgx.git
cd rgx
cargo install --path .

Without PCRE2 (zero C dependencies)

cargo install rgx-cli --no-default-features

Usage

# Interactive mode
rgx

# Start with a pattern
rgx '\d{3}-\d{3}-\d{4}'

# Pipe text from stdin
echo "Call 555-123-4567 or 555-987-6543" | rgx '\d{3}-\d{3}-\d{4}'

# Use a specific engine
rgx --engine fancy '\w+(?=@)'

# With flags
rgx -i 'hello'

Keyboard Shortcuts

Key Action
Tab Switch between pattern / test string
Ctrl+E Cycle regex engine
Alt+i Toggle case-insensitive
Alt+m Toggle multi-line
Alt+s Toggle dot-matches-newline
Alt+u Toggle unicode mode
Alt+x Toggle extended mode
? Show help
Esc Quit

Engines

Engine Features Dependencies
Rust regex (default) Fast, linear time, Unicode Pure Rust
fancy-regex + lookaround, backreferences Pure Rust
PCRE2 + possessive quantifiers, recursion, conditionals Requires libpcre2

Comparison

Feature rgx regex-tui rexi regex101.com
Real-time matching Yes Yes Yes Yes
Multiple engines 3 2 1 8
Capture group highlighting Yes No No Yes
Plain-English explanations Yes No No Yes
Regex flags toggle Yes Yes No Yes
Stdin pipe support Yes Yes Yes No
Offline / no browser Yes Yes Yes No
Cross-platform binary Yes Yes No N/A

Configuration

rgx looks for a config file at ~/.config/rgx/config.toml:

default_engine = "rust"  # "rust", "fancy", or "pcre2"

Contributing

See CONTRIBUTING.md for details.

License

Licensed under either of

at your option.