A beautiful GUI application for Jujutsu VCS built with Tauri, React, and TypeScript.
- 🔍 Repository Selection: Browse and select JJ repositories with an intuitive file dialog
- 📋 Change Visualization: View repository changes with descriptions, commit IDs, and metadata
- 🎨 Modern UI: Beautiful gradient design with glassmorphism effects
- 🔒 Secure: Robust path validation and sanitization for security
- ⚡ Fast: Native Rust backend for efficient JJ operations
- Jujutsu VCS installed and available in PATH
- Node.js (v16 or later)
- Rust (latest stable)
-
Clone the repository
git clone <repository-url> cd jj-studio
-
Install dependencies
npm install
-
Run in development mode
npm run tauri dev
To build the application for production:
npm run tauri build- Modern React with hooks
- TypeScript for type safety
- Lucide React for beautiful icons
- CSS with modern features (backdrop-filter, gradients)
- Secure path validation and sanitization
- Async command execution with proper error handling
- Structured data parsing from JJ commands
- Cross-platform file system operations
- Path sanitization to prevent directory traversal attacks
- Input validation for suspicious patterns
- Canonical path resolution
- Proper error handling with specific exit codes
- Timeout protection for long-running commands
The application features a modern glass-morphism design with:
- Gradient backgrounds
- Blur effects and transparency
- Responsive layout
- Intuitive navigation
- Clean typography
- Smooth animations
The application integrates with Jujutsu VCS by:
- Validating repository structure (
.jjdirectory presence) - Running
jj statusfor verification - Executing
jj logwith custom templates for change data - Parsing structured output for display
MIT License - see LICENSE file for details.