Web-based frontend for RX (Regex Tracer) - a high-performance file search and analysis tool.
This is the unified web UI for RX, designed to work with multiple backend implementations:
- rx-tool - Python backend
- rx-tool-go - Go backend (coming soon)
The RX Viewer is a standalone frontend that:
- Gets built and published as GitHub Release artifacts
- Is automatically downloaded by backend servers on first run
- Cached locally at
~/.cache/rx/frontend/ - Automatically updates when new versions are released
- Svelte 4 - Component framework
- TypeScript - Type safety
- Tailwind CSS - Utility-first styling
- Vite - Build tool & dev server
- Bun - Package manager
- 📁 Multi-file tab interface with drag-and-drop
- 🔍 In-file search with match highlighting (Cmd/Ctrl+F)
- 🎨 Syntax highlighting with 20+ languages
- 🔧 Regex filter with hide/show/highlight modes
- 👁️ Invisible characters mode (spaces, tabs, newlines)
- 📊 Virtual scrolling for large files
- 🌲 File tree navigation
- 🎯 Go to line (Cmd/Ctrl+G)
- 🌓 Dark/light/system themes
- ⚡ URL state persistence
- Bun >= 1.0
# Install dependencies
bun install
# Start dev server
bun run dev
# Build for production
bun run buildThe dev server runs on http://localhost:5173 and proxies API requests to http://localhost:8080.
Start a backend server:
# Python backend
rx serve --port 8080
# Or Go backend
rx-go serve --port 8080Then start the frontend dev server:
bun run devbun run buildOutput: dist/ directory with:
index.html- Entry pointassets/*.js- Bundled JavaScriptassets/*.css- Compiled CSSfavicon.svg- Icon
The GitHub Actions workflow automatically builds and publishes releases:
- Update version in
package.json - Commit and push
- Create a git tag:
git tag v1.0.0 && git push --tags - GitHub Actions will:
- Build the frontend
- Create a release
- Upload
dist.tar.gzas release asset
Developer Push → GitHub Actions → Build → Create Release → Upload dist.tar.gz
↓
Backend Serve → Check Latest Release → Download if newer → Cache → Serve
Version is stored in package.json:
{
"version": "1.0.0"
}Build also creates dist/version.json:
{
"version": "1.0.0",
"buildDate": "2025-12-14T20:00:00Z",
"commit": "abc1234"
}The frontend expects these backend endpoints:
GET /health- Health checkGET /v1/trace- Search filesGET /v1/samples- Get file contentGET /v1/analyse- Analyze filesGET /v1/tree- Browse directory treeGET /v1/complexity- Check regex complexity
See API Documentation for details.
- Chrome/Edge 90+
- Firefox 88+
- Safari 14+
- Fork the repository
- Create a feature branch
- Make your changes
- Test with both Python and Go backends
- Submit a pull request
MIT