RegexPilot
Public beta · v1.0 on the way

A regex should read like a sentence.

— not look like your fr.*ak/i\n/g password.

A Mac-native visual regex builder with AI. Drag blocks. Ask in English. Test against real engines.

Public beta · macOS 14+ · 30-day trial · 8 MB core app · ~87 MB with 11 bundled regex engines + offline voice STT · zero tracking
RegexPilot — watch the walkthrough
RegexPilot 7-minute walkthrough — click to play
Zero tracking
No telemetry, no analytics, no cloud by default.
Runs offline
Bring your own AI key, or never talk to the network.
Instant launch
Rust + Tauri native. No Electron, no startup tax.
Multi-flavor
JS · Python · Java · C# · Ruby · Go · PHP · Perl · Rust · PCRE…
Live demo

Try it right here.

The actual app, running in your browser. Drag blocks from the palette, or paste a regex into the field at the top. Click the frame to expand full-screen.

Tip · Drag any palette item onto the canvas, or hit ⌘ K to focus the pattern input.
Hand-drawn date-regex sketch on a sticky note: three boxed sub-patterns labelled YEAR (4 digits), MONTH (0[1-9] or 1[0-2]), and DAY (0[1-9] or [12] digit or 3[01]) joined by dashes.
The sketch that became RegexPilot.
Why this exists

The drawing, made live.

I found myself drawing the regex every time — on paper, on whiteboards, in the corner of a notebook. ^, a bubble for "any word character", an arrow into a group, with the English sentence scribbled underneath so I wouldn't lose what I meant.

RegexPilot is that drawing, made live. The bubbles you draw become the pattern, the arrows become the rail, and the natural-language caption you mumble to yourself sits right there in the Breakdown panel.

Built solo · Belgium · 6 months and counting
— Kristof

Visual builder

Stop decoding regex in your head.

Drag blocks from a categorised palette, connect them on a railroad track, and see a plain-English breakdown of the whole pattern while you work.

  • Drag-and-drop builder with palette categories for characters, anchors, groups, lookarounds.
  • Inspector panel for precise edits on any node without touching the source string.
  • Breakdown tree that explains every part in plain English, bidirectionally linked to the rail.
  • Undo / redo, copy / paste, drag-to-reorder — every affordance you already know.
Canvas
\b\w0 or more@
CLASSOne of:a-z1 or more
.
CLASSOne of:a-z2 or more
\b/g
Breakdown Tree
\bWord boundary.Position at the edge of a word.
\wWord.Letters, digits, underscore.
*Quantifier.Zero or more.
@Character.Matches “@”.
[Character set.One of:
a-zRange.“a” to “z”.
+Quantifier.One or more.
]
\.Escaped character.Matches “.”.
[Character set.One of:
a-zRange.“a” to “z”.
{2,}Quantifier.Two or more.
]
\bWord boundary.Position at the edge of a word.
AI + visual, together

AI drafts. You direct.

Describe a pattern in plain English and get a working draft in seconds. The visual editor is how you catch what the AI got almost right — before it ships to production.

AI is a good starting point — but it often needs tweaking. A misplaced anchor. A quantifier off by one. A character class that skips the edge case you mentioned. Without a visual editor, those are six debug loops away. With one, they're a one-drag fix.
  • Generate from a prompt — "match UK postcodes, optional space" → a draft, not a StackOverflow rabbit hole.
  • Explain any pattern — paste legacy regex, get a plain-English breakdown grouped by intent.
  • Spot the assumptions — every pill shows what it matches. If the AI assumed 4 digits when you meant 1–4, you see it immediately.
  • Authentic engines for Java, Ruby, C#, PHP — so "worked in ChatGPT" actually means "works in production".
  • Bring your own key for OpenAI, Claude, Gemini, DeepSeek, Qwen, Mistral, Groq, OpenRouter, xAI (Grok) — or any OpenAI-compatible endpoint.
  • Or run fully offline — any OpenAI-compatible local runtime works: LM Studio, Ollama, llama.cpp, or LocalAI. Point RegexPilot at the localhost port and go.
AI chat
> match UK postcodes, with or without space
Draft: ^[A-Z]{1,2}[0-9][A-Z0-9]? [0-9][A-Z]{2}$
Confidence: high
⚠ Caught on the canvas
AI used a literal space. Your test data has entries without it (M11AA). One drag: make the space optional with \s? — fixed.
Test engines
java — 18/18 matches · authentic JDK
python — 18/18 · pcre2 adapter
ruby — 18/18 · embedded CRuby
Languages

21 regex flavors. Authentic engines where they matter.

Every flavor routes to the real engine its production code uses — not a JavaScript polyfill pretending to be Python. Switch flavors from the toolbar; the same pattern tells you exactly what each engine does with it.

JavaScript / TypeScript

regress · ES2018

Python

CPython 3.13 (python-build-standalone)

Java

java.util.regex (GraalVM AOT)

Scala · Kotlin · Groovy · Clojure

JVM regex (shared)

C# / .NET

.NET 9 Regex (NativeAOT)

Ruby

CRuby 3.4 Onigmo

PHP

PCRE2 (static-php-cli)

Go / RE2

Go stdlib regexp (sidecar)

Rust

regex crate (in-process)

Perl

system /usr/bin/perl — ships with macOS

Swift

NSRegularExpression — compiled sidecar uses /usr/lib/swift

Shell (grep / sed / awk)

system POSIX tools — ships with macOS

Elixir

Erlang :re — same engine as in-process pcre2-rust

R

gregexpr(perl=TRUE) — same engine as in-process pcre2-rust

Dart

V8 Irregexp — same spec as in-process regress (ES2018)

MySQL 8

ICU-equivalent (PCRE2+UCP) — bundled in-process

PostgreSQL

Spencer ARE — bundled in-process from postgres source
  • freeJavaScript & TypeScript via in-process regress. No license, no install.
  • bundledSidecar binary inside the .app, or the in-process engine is bit-identical to the language's own (PostgreSQL → Spencer ARE from postgres source; MySQL → PCRE2+UCP for ICU equivalence; Elixir/R → libpcre2; Dart → ES2018 via regress).
  • systemUses a CLI present on every macOS install — /usr/bin/perl, grep, sed, awk.
Don't just build

Test and trust.

Three ways RegexPilot catches the thing you would have shipped broken.

Live match testing

Paste sample text, see every match and capture group highlighted as you build. Multi-cursor selection maps one-to-one back to the AST.

Visual replace builder

Compose the replacement as draggable pill blocks ($1, literal text, case transforms). No guessing at back-reference syntax per flavor.

Authentic engines

Your Java regex tested against real java.util.regex, Ruby against embedded CRuby, C# against the .NET runtime. No polyfill surprises.

How it works

From idea to regex in three steps.

1

Drag or describe

Pick blocks from the palette and connect them, or type what you want in plain English and let AI generate a starting pattern.

2

Test and refine

Paste sample text, flip the flavor selector, watch every match light up. Tweak individual nodes in the inspector panel.

3

Export and integrate

Copy the regex, export a code snippet in your target language, send a railroad SVG to your team docs, or open it straight from VS Code.

Pattern library

A starter library, yours to extend.

50 hand-picked patterns out of the box — email, URL, IPv4/v6, ISO-8601 dates, credit cards, password rules, log parsing, stack trace lines, plus flavor-specific examples for Dart, MySQL, PostgreSQL, shell tools, Python, Java, Ruby, C#, PHP, Perl and Rust — and your own library grows alongside them.

Themeable

Light, dark, and every shade between.

Auto-follow macOS, pick a curated community theme, or import your own as JSON. Semantic pill colors stay intact — the theme recolors the app chrome, not the regex-kind palette.

email-validator.rxp — RegexPilot
/^\w+@[a-z]+\.[a-z]{2,}$/
gim
Start
Word1+
"@"
[a-z]1+
"."
[a-z]2+
End
Start of line, one or more word characters, literal @, one or more letters, a dot, at least two more letters, end of line.
LightDark

Drag to compare.

Default
Dracula
Catppuccin
Tokyo Night
Gruvbox
Solarized
Nord
Rosé Pine
GitHub
Works where you work

Integrations that don't make you switch apps.

VS Code extension Planned for v1.1

Right-click any regex, hit Visualize, see the railroad in a side panel. CodeLens hover shows the plain-English summary inline.

Raycast plugin Planned for v1.1

Test any pattern against a blob of text without leaving your launcher. Quick-copy the result straight to clipboard.

PNG / SVG export

One-click export the railroad diagram for documentation. Vector SVG for crisp docs, raster PNG for pull-request comments.

Built in public

Roadmap.

What's shipped and what's queued. No secrets, no "coming soon" never-arrives.

Shipped in v1.0 beta

  • Visual AST builder — drag-and-drop, railroad diagram, inspector panel
  • Breakdown tree — plain-English explanation, bidirectional hover with the rail
  • Authentic engines as native sidecars: Java (GraalVM AOT), Ruby (CRuby 3.4), C# (.NET 9 NativeAOT), PHP (static-php-cli), Python (python-build-standalone), Perl (system perl), Swift (NSRegularExpression), Go (Go stdlib), PostgreSQL (system psql, Spencer ARE), MySQL (system mysql, ICU), Dart (system dart, V8 Irregexp), Elixir (system elixir, Erlang :re), R (system Rscript, gregexpr perl=TRUE), Shell (system grep / sed)
  • In-process engines: regress (ES2018 JS/TS), regex crate (Rust / Go / RE2), pcre2-rust (fallback when a system tool is missing)
  • 21 flavor dispatch with per-flavor syntax support — see the list below
  • Match + replace testing with live highlighting, multi-cursor, visual replace builder
  • AI chat: OpenAI, Claude, Gemini, DeepSeek, Qwen, Mistral, Groq, OpenRouter, xAI (Grok) — BYO key; plus LM Studio / Ollama / llama.cpp server / LocalAI for offline
  • Voice dictation via Whisper Tiny (offline ggml, multilingual)
  • Pattern library: 50 curated patterns across 12 flavors, folders, tags, import/export JSON
  • Code export for 21 languages (JS, TS, Python, Java, C#, PHP, Ruby, Go, Perl, Rust, Swift, Scala, Kotlin, Groovy, Clojure, Elixir, R, Dart, MySQL, PostgreSQL, Shell)
  • PNG / SVG railroad export
  • Themes: 9 community palettes + import JSON + system-follow
  • Deep links (regexpilot://), share menu, iCloud Drive-ready file format
  • AI API keys secured in macOS Keychain — persist across reinstalls, tamper-resistant
Join the beta

Regex you can see — early.

Free during the beta. €19 when v1.0 ships — one purchase, no subscription, all 21 flavors. Free updates throughout v1.x; v2 owners get a 50% upgrade discount. Real feedback shapes v1.0, and early testers who send thoughtful bugs get launch-week perks.