Skip to content

LLM Suite Development

speedyrulz edited this page Nov 9, 2026 · 3 revisions

Development

RulZ LLM Suite is an Electron app written in TypeScript with a React interface. The source is on GitHub under the MIT License.

Building from source

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.

How it is organised

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-server per 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-server directly. 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.ts is 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-server is bound to 127.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.

Tests and checks

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.

Releasing

  1. Update version in package.json (and the lock file) and commit.

  2. Tag and push, with the llm-suite-v prefix and the same version:

    git tag llm-suite-v0.15.0
    git push origin llm-suite-v0.15.0
    
  3. The same workflow type-checks, tests and builds the installer on a Windows runner, then attaches RulZ-LLM-Suite-Setup-<version>.exe to 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.

Reporting problems

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.

License and branding

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

README (full reference) Releases

Rulz Training Captioner

Getting started

Using the app

Models and GPUs

Reference

GitHub repository

RulZ LLM Suite

Using the app

Reference

Contributing


Releases · Issues · Source

RulZ Coding Agent

Using the app

Reference

Contributing


Releases · Issues · Source

RulZ Image Organizer

Using RulZ

More

RulZ Image Tournament

Using the app

Developers

RulZ Image Crawler

Getting started

Using the app

Help

README (full reference)

RulZ Image Preparer

Getting started

Using the app

Reference

README (full reference)

RulZ Image Grid

Using the app

Help

README (full reference)

RulZ Huggingface Manager

Using the app

Help

README (full reference)

RulZ Simple Video Clip Extractor

Getting started

User guide

Help

Clone this wiki locally