Prerequisites
Running from source needs three things:Install and run
1
Clone and install
apps/*,
apps/sidecar/*, packages/*, and plugins/*.2
Start the desktop app
3
Just the frontend, in a browser
4
Configure a model
Open Settings → Models inside the app and add a provider API key. Credentials go
to the system keychain rather than to plaintext on disk. On macOS the service name
is
com.kova.assistant.Common commands
Smoke test
You can exercise the sidecar without booting the Rust host:Dev and release data stay separate
This one bites people, so it gets its own section.bun run tauri:dev layers apps/desktop/src-tauri/tauri.dev.conf.json on top, with the
identifier com.kova.assistant.dev and the display name “扣瓦 Dev”. The app data
directory therefore becomes:
- Installing or uninstalling the release build never touches dev data, and vice versa;
- The dev build keeps its master key in
master.dev.keyinside the data directory (this avoids spurious key rotation when the keychain ACL refuses to read after a rebuild), while release builds use the system keychain. The two ciphertexts are mutually unreadable; - Because the ciphertexts differ, you re-enter credentials once when crossing environments.
Common issues
A panel won't open, or the plugin artifact is missing
A panel won't open, or the plugin artifact is missing
Panel HTML files and built-in plugin zips are build artifacts and are not
committed. Run
bun run build:plugins to generate the HTML, then
cd apps/sidecar/pi-agent && bun run plugins:pack to repack the zips.
build:sidecar, test, and smoke all fill in missing artifacts automatically.Metro reports duplicate React instances on mobile
Metro reports duplicate React instances on mobile
This is expected. RN 0.86 can only pair with react 19.2.3, while desktop runs
Next with react 19.3 — each keeps its own copy. The repo relies on
install.hoistingLimits = "workspaces" to install mobile dependencies under
apps/mobile/node_modules, preventing hoisting from raising either version.I want my own branding
I want my own branding
This is a template repo, and rebranding is one command:Windows uses
scripts\rename.bat. It covers all three brand forms
(slug / Pascal / UPPER), the internal pi-desktop id, the Tauri display name and
bundle id, and .kova-plugin directory names — and backs everything up first.Next
See what these capabilities look like in use.
