A desktop application for working with RIA graph data, built as a pnpm monorepo with TypeScript.
Main repository: github.com/cntSafety/RiaCore
You do not need to build anything to try RiaCore. Prebuilt applications are published in the Releases section of the main repository:
.dmg.AppImageGrab the package for your platform, start the app, and continue with Getting Started with Sample Data.


No tool qualification is provided with RiaCore. Before using it in any project, the qualification has to be performed according to that project’s specific requirements and the applicable safety standards — for example ISO 26262, IEC 61508, or others relevant to your domain. Deciding on the required qualification measures, performing them, and documenting the evidence remains the responsibility of the using project.
The fastest way to get something on screen is the reference project: github.com/cntSafety/ref-project.
It ships a ready-to-use workspace — importer configs, sample source data (ARXML, SysML, and more), and
persisted ria-data — so you can open it directly in RiaCore instead of assembling a workspace and
import configuration by hand.
git clone https://github.com/cntSafety/ref-project.git
Then point RiaCore at the cloned directory as its working directory and load the data from there.
For a given working directory:
db/ — the embedded KuzuDB graph database, created automatically on first useria-config/ — importer configurationria-data/ — git-friendly JSON export of the graph, written when you store the databaselogs/ — log output⚠️ Keep the database and logs out of git.
ria-data/is the versioned artifact — the full graph state lives in those JSON files and can be restored into a fresh database at any time. Thedb/directory is a regenerable binary cache, and logs are runtime noise; committing either bloats the repository and produces meaningless diffs. Add this to the.gitignoreof your workspace repository:# Logs *.log logs/ # Database files db db.wal *.db *.db.wal
Only needed if you want to develop RiaCore or build your own packages. For normal use, take a prebuilt application from the Releases section instead.
cd RiaCoreDev
pnpm install
pnpm build
⚠️ Git binary for packaging: The
pnpm installstep downloads a bundled git binary via thedugitepackage (used by@riacore/git-service). If the download fails (e.g. due to a corporate proxy or TLS certificate issue with errorUNABLE_TO_GET_ISSUER_CERT_LOCALLY), the app will not work — both in packaged builds and during local development. To fix this, either setNODE_EXTRA_CA_CERTSto your corporate CA certificate before runningpnpm install, or manually download the dugite-native release from GitHub and extract it intonode_modules/.pnpm/dugite@2.7.1/node_modules/dugite/git/.
From the repo root, a single command starts both the Vite dev server and Electron:
cd RiaCoreDev
pnpm dev
This works on Windows, macOS, and Linux. It starts the renderer dev server, waits until it’s ready on http://localhost:5173, then launches Electron automatically. Closing either process shuts both down.
If you see ERR_CONNECTION_REFUSED, the dev server hasn’t finished starting yet — it will retry automatically.
Native desktop packages are built on each target OS separately. Do not try to package macOS or Linux artifacts on Windows.
Current release target matrix:
The packaged desktop app bundles a platform-specific Node sidecar because the Kuzu-backed worker must run under standard Node.js rather than Electron’s ABI-modified runtime.
Build from the repo root:
pnpm package:desktop:win
pnpm package:desktop:mac
pnpm package:desktop:linux
Generated paths:
apps/desktop-host/.release/apps/desktop-host/dist-electron/apps/desktop-host/dist-electron/win-unpacked/Distribution artifacts are written to apps/desktop-host/dist-electron/ by electron-builder, for example:
.dmg.AppImageasar is currently disabled for packaged builds because the external Node worker cannot reliably load its runtime modules from app.asar.