Repository navigation
LLM Suite Development
RulZ LLM Suite is an Electron app written in TypeScript with a React interface. The source is on GitHub under the MIT License.
You need Windows, Node.js 22.12 or newer (the project is developed on Node 24) and git.
git clone https://github.com/speedyrulz/RulZ-AI-Tools-Suite
cd RulZ-AI-Tools-Suite\apps\rulz-llm-suite
npm install
node node_modules/electron/install.js # first time only: Electron downloads its binary lazily
npm run dev # run with hot reload
| Command | What it does |
|---|---|
npm run dev |
Start the app with hot reload |
npm run build |
Build the main, preload and renderer bundles into out/
|
npm start |
Preview the built bundles |
npm run typecheck |
Type-check the main-process and renderer code |
npm test |
Run the unit tests (Vitest) |
npm run build:win |
Build the NSIS installer into dist/
|
install.bat and run.bat in the app's folder wrap the common steps for people who don't use a terminal. run.bat dev starts hot reload; run.bat build rebuilds first.
You also need a llama-server.exe to run models; see Building the Engine.
src/main Electron main process
engine/ finding llama-server, starting one process per model, hardware meters, load arguments
models/ GGUF header reader, library scan and grouping, memory estimate
chat/ streaming chat, context fitting, chat storage
mcp/ MCP client: connections, tool calls
files/ the built-in file tools (list_directory, find_files, and write_file/read_file for clone sessions)
re/ Reverse Engineering: session recording and export, practice tasks, finding Python for calc
server/ the local OpenAI/Anthropic-compatible API server
settings/ settings, per-model defaults and presets (validated on load)
util/ safe JSON file reading and writing
src/preload the contextBridge API exposed to the UI
src/renderer the React UI: pages, components and zustand stores
src/shared types, the IPC contract, defaults and helpers used on both sides
resources calc_mcp.py, the calculator MCP server for Reverse Engineering sessions
tests unit tests
docs screenshots used by the README and this wiki
Key design points:
-
One
llama-serverper loaded model, each on its own localhost port with the full command line built from the model's load settings. This gives per-model settings and logs, crash detection and a clean unload. -
The UI never talks to
llama-serverdirectly. Chat streaming goes through the main process, which also does context fitting, tool-definition handling and token counting. The local API server sits in front of the same process manager. -
A typed IPC contract in
src/shared/ipc.tsis the single source of truth for requests and events between the UI and the main process. -
Security defaults: context isolation and the renderer sandbox are on, Node integration is off, production builds ship a strict Content-Security-Policy, and every
llama-serveris bound to127.0.0.1. - Pure logic is kept separate and unit-tested: the GGUF reader, model grouping, load-argument builder, memory estimate, SSE parser, context fitting, MCP config parsing, tool search and compaction, and the API server's model resolution.
npm run typecheck
npm test
In the suite repository, GitHub Actions (.github/workflows/apps.yml) runs the type-check, the tests and an installer build on every push to main and every pull request that changes apps/rulz-llm-suite.
-
Update
versioninpackage.json(and the lock file) and commit. -
Tag and push, with the
llm-suite-vprefix and the same version:git tag llm-suite-v0.15.0 git push origin llm-suite-v0.15.0 -
The same workflow type-checks, tests and builds the installer on a Windows runner, then attaches
RulZ-LLM-Suite-Setup-<version>.exeto a new GitHub Release in the suite repository, with notes listing the app's commits since its previous tag. The RulZ AI Tools Suite launcher installs and updates the app from these releases.
To build an installer locally, run npm run build:win. If it fails on symbolic links, see Troubleshooting.
Bug reports and feature requests are welcome on the issue tracker. Please include your app version, your GPUs, the model, and the relevant lines from the model's log, with any keys or tokens removed.
The source code is released under the MIT License. The RulZ name and logo are excluded from that license and all rights are reserved; if you fork or redistribute the project, remove or replace the RulZ branding. See LOGO-NOTICE.md.
RulZ AI Tools Suite
The apps
RulzTrainer
Rulz Training Captioner
Getting started
Using the app
Models and GPUs
Reference
RulZ LLM Suite
Using the app
- Getting Started
- Building the Engine
- Model Library
- Loading Models
- Chat
- MCP Tools
- Reverse Engineering
- Local API Server
Reference
Contributing
RulZ Coding Agent
Using the app
- Getting Started
- Projects and Tasks
- Approvals and Safety
- Model Settings
- Run and Share
- Notes and Instructions
- Extra Tools (MCP)
- Phone Access
Reference
Contributing
RulZ Image Organizer
Using RulZ
- Getting Started
- Library and Scanning
- People and Corrections
- Search and Filters
- Photo Viewer
- Appearance
More
RulZ Image Tournament
Using the app
- Getting Started
- How the Tournament Works
- Comparing Images
- Controls and Shortcuts
- Options and Settings
- Supported Formats
- Troubleshooting and FAQ
Developers
RulZ Image Crawler
Getting started
Using the app
Help
RulZ Image Preparer
Getting started
Using the app
Reference
RulZ Image Grid
Using the app
Help
RulZ Huggingface Manager
Using the app
Help
RulZ Simple Video Clip Extractor
Getting started
User guide
- Playback and Marks
- Fixed-Length Clips
- Exporting
- Crop, Rotate and Flip
- Colour Matching
- Distortion Repair
- Preferences and Themes
Help