Ronin is a comprehensive AI agent master controller that unifies multiple LLM providers and automatically switches between them based on project needs and token availability. Available as both a modern web application and a native Windows desktop application.
Name: From the Japanese term for exiled samurai - a skilled warrior that masters many disciplines.
- π€ Multi-LLM Management - Switch between free LLMs automatically when tokens run out
- π Project Management - Create and manage AI-assisted projects
- βοΈ Ranking System - Kyokushin belt-style ranking (kyu/dan) based on completed projects
- π§ͺ Automated Testing - Test project completion and correctness automatically
- π User Authentication - Secure JWT-based authentication
- π° Free Token Management - Track and optimize LLM token usage
- π Web Application - Access from any browser (responsive design)
- π₯οΈ Windows Desktop App - Native desktop experience with installer
- βοΈ Cloud Hosting - Deployed on Heroku with auto-scaling
# One-click setup (installs everything)
setup.bat
# Start all services
npm run dev
# Open in browser: http://localhost:5173See QUICKSTART_WINDOWS.md for step-by-step guide.
# Install dependencies
npm run setup
# Start development environment
npm run dev
# Or run individual services
npm run dev:backend # Backend API
npm run dev:web # Web app
npm run dev:desktop # Desktop app- Project Structure
- Technology Stack
- Installation
- Development
- Building
- Deployment
- Contributing
- License
ronin/
βββ backend/ # Java/Spring Boot REST API
β βββ src/main/ # Source code
β βββ src/test/ # Unit tests
β βββ pom.xml # Maven configuration
β βββ README.md
β
βββ frontend/ # React/TypeScript web application
β βββ src/ # React components and pages
β βββ vite.config.ts # Vite configuration
β βββ package.json # npm dependencies
β βββ README.md
β
βββ desktop/ # Electron Windows desktop application
β βββ electron/ # Main process code
β βββ build/ # App assets and icons
β βββ installers/ # NSIS installer config
β βββ package.json # Electron configuration
β βββ README.md
β
βββ vscode-extension/ # VS Code extension for Ronin
β βββ src/ # Extension source code
β βββ package.json # Extension manifest and scripts
β βββ README.md
β
βββ test-runner/ # Automated test execution
β βββ README.md
β
βββ MULTI_PLATFORM.md # Architecture overview (WEB + DESKTOP)
βββ DEVELOPMENT.md # Development workflow guide
βββ QUICKSTART_WINDOWS.md # Windows quick start
βββ ARCHITECTURE.md # System architecture diagrams
βββ DESKTOP_BUILD_CHECKLIST.md # Release checklist
- Framework: Spring Boot 3.x
- Language: Java 11+
- Database: MySQL / PostgreSQL
- Build: Maven
- Authentication: JWT
- ORM: Hibernate/JPA
- Framework: React 19
- Language: TypeScript
- Build: Vite
- Styling: Tailwind CSS
- Testing: Vitest + React Testing Library
- Router: React Router v7
- Framework: Electron 33
- Packaging: electron-builder
- Installer: NSIS (Windows)
- IPC: Electron IPC bridge
- Web Hosting: Heroku
- Container: Docker
- CI/CD: GitHub Actions (ready to integrate)
- Database Migrations: Flyway
-
Clone Repository
git clone https://github.com/your-org/ronin.git cd ronin -
Run Setup Script
# Windows setup.bat # macOS/Linux npm run setup
-
Start Development
npm run dev
-
Access Applications
- Web App: http://localhost:5173
- Backend API: http://localhost:8080
- Desktop App: Electron window (if enabled)
See DEVELOPMENT.md for detailed setup.
# Start all services together
npm run dev
# Start individual services
npm run dev:backend # Java/Spring Boot only
npm run dev:web # React dev server only
npm run dev:desktop # Electron desktop app
# Build all components
npm run build
# Run all tests
npm run test
# Create desktop installers
npm run desktop:distBackend:
backend/src/main/java/com/ronin/
βββ auth/ # Authentication logic
βββ code/ # Code generation
βββ common/ # Shared utilities
βββ config/ # Spring configuration
βββ llm/ # LLM provider integration
βββ projects/ # Project management
βββ ranking/ # Ranking system (kyu/dan)
βββ tests/ # Test execution
βββ users/ # User management
Frontend:
frontend/src/
βββ pages/
β βββ Dashboard.tsx # Project overview
β βββ Login.tsx # User login
β βββ Signup.tsx # User registration
β βββ ...
βββ components/
β βββ Header.tsx # Navigation
β βββ Sidebar.tsx # Side menu
β βββ ProjectCard.tsx # Project display
β βββ ...
βββ api.ts # HTTP client
βββ main.tsx # Entry point
Desktop:
desktop/
βββ electron/
β βββ main.ts # Main process
β βββ window.ts # Window management
β βββ preload.ts # IPC bridge
β βββ utils.ts # Utilities
βββ build/ # App icons and assets
- Backend Changes β Auto-reload via Spring Boot Dev Tools
- Frontend Changes β Hot reload via Vite
- Desktop Changes β Manually reload Electron (Ctrl+R)
See DEVELOPMENT.md for workflow details.
npm run buildThis creates:
backend/target/backend-0.0.1-SNAPSHOT.jarfrontend/dist/(static files)desktop/dist/(Electron app)
cd desktop
# Create Windows installers
npm run dist:win
# Create only portable executable
npm run dist:portableOutput Files:
desktop/dist/Ronin-{version}-Setup.exe- Full installerdesktop/dist/Ronin-{version}.exe- Portable version
See DESKTOP_BUILD_CHECKLIST.md for release checklist.
# Deploy to Heroku
git push heroku main
# View logs
heroku logs --tailSee HEROKU_DEPLOYMENT.md for detailed setup.
- Build installers:
npm run desktop:dist - Upload to GitHub Releases or distribution server
- Users download
Ronin-{version}-Setup.exe - Run installer or portable exe
βββββββββββββββββββββββββββββββββββββββ
β Web Browser / Desktop App β
β (React + Tailwind CSS) β
ββββββββββββββββββββ¬βββββββββββββββββββ
β
HTTP/REST β
βΌ
βββββββββββββββββββββββββββββββββββββββ
β Backend API (Spring Boot) β
β β’ Authentication β
β β’ Project Management β
β β’ LLM Integration β
β β’ Test Execution β
ββββββββββββββββββββ¬βββββββββββββββββββ
β
SQL β
βΌ
βββββββββββββββββββββββββββββββββββββββ
β Database (MySQL / PostgreSQL) β
β β’ Users & Ranks β
β β’ Projects & Tests β
β β’ LLM Usage Tracking β
βββββββββββββββββββββββββββββββββββββββ
See ARCHITECTURE.md for detailed system architecture.
npm run testnpm run test:backend # Maven/JUnit tests
npm run test:web # Vitest/React tests
npm run test:desktop # Electron build test- JWT token-based authentication
- Password hashing with bcrypt
- SQL injection protection via parameterized queries
- CORS properly configured
- Input validation on frontend and backend
- Secure IPC in desktop app
- QUICKSTART_WINDOWS.md - Windows quick start guide
- DEVELOPMENT.md - Complete development workflow
- MULTI_PLATFORM.md - Multi-platform architecture
- ARCHITECTURE.md - Detailed system design
- DESKTOP_BUILD_CHECKLIST.md - Release checklist
- backend/README.md - Backend documentation
- frontend/README.md - Frontend documentation
- desktop/README.md - Desktop documentation
- Create a feature branch:
git checkout -b feature/my-feature - Make changes and test:
npm run test - Commit changes:
git commit -m "Add feature" - Push to branch:
git push origin feature/my-feature - Create a Pull Request
- Check Java is installed:
java -version - Check Maven:
mvn -version - View logs:
backend/target/spring.log
- Clear cache:
cd frontend && rm -rf node_modules dist && npm install - Check Node.js:
node -v - Try:
npm run build
- Ensure backend is running:
npm run dev:backend - Check port 5173 is free
- Clear desktop cache:
cd desktop && rm -rf dist node_modules && npm install
See DEVELOPMENT.md troubleshooting section for more.
- β Multi-LLM support with auto-switching
- β Project management
- β Automated testing
- β Web application
- β Windows desktop application
- β Ranking system (kyu/dan)
- Auto-update mechanism for desktop app
- Offline functionality
- System tray integration
- Desktop notifications
- Advanced analytics
- Mobile application
- Code signing for releases
- macOS and Linux desktop versions
- GitHub Issues: Report bugs or request features
- Documentation: See linked README files above
- Development Team: Contact your team lead
MIT License - See LICENSE file for details
- Backend Lead: [Name]
- Frontend Lead: [Name]
- Desktop/DevOps: [Name]
- QA Lead: [Name]
- Spring Boot community
- React community
- Electron community
- Tailwind CSS team
- All contributors
| Command | Purpose |
|---|---|
npm run setup |
Install all dependencies |
npm run dev |
Start all services |
npm run build |
Build all components |
npm run test |
Run all tests |
npm run desktop:dist |
Create Windows installers |
Ready to get started? See QUICKSTART_WINDOWS.md or DEVELOPMENT.md.
Made with βοΈ by Ronin Development Team