- Rust 59.6%
- Svelte 33%
- TypeScript 6.5%
- CSS 0.5%
- JavaScript 0.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
Convert the frontend into a pnpm workspace, dropping the postinstall delegation hack in favor of a single root `pnpm install`. Update Tauri before-commands, scripts, .gitignore, and the README accordingly. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> |
||
| frontend | ||
| src-tauri | ||
| .gitignore | ||
| package.json | ||
| pnpm-lock.yaml | ||
| pnpm-workspace.yaml | ||
| README.md | ||
Catalyst Guard
A native desktop AI harness with a Rust backend (Tauri v2) and a Svelte 5 + Tailwind frontend. Catalyst Guard provides an integrated workspace for running AI agents, managing tasks, taking notes, chatting with multiple providers, and transcribing audio — all from a single offline-capable application.
Features
| Screen | Description |
|---|---|
| Home | Dashboard and quick navigation |
| Todos | Kanban board for task tracking with native HTML5 drag-and-drop |
| Agents | Define and configure AI agents with per-agent tool access and artifact directories |
| Notes | Markdown vault with wiki-link support, file tree, and server-rendered preview |
| Chat | Multi-provider streaming chat with native function-calling, branching history, and image attachments |
| File Explorer | 3-pane Finder-style explorer scoped to agent artifact directories |
| Transcriptions | Audio recording and transcription via cloud APIs or on-device whisper.cpp |
| Settings | Provider credentials, model selection, and transcription configuration |
Supported AI Providers
- Anthropic (Claude)
- OpenAI (GPT / Whisper)
- Lemonade (local LLM server)
- Ollama (local model runner)
Agent Tools
Agents can be granted access to:
Filesystem— sandboxed read/write within the agent's artifact directoryFilesystemBroad— broader filesystem access (with deny-list sandbox)OfficeFiles— generate.xlsxand.docxfiles from markdownWebSearch,CodeExecution,Terminal— planned
Building & Running
Requirements
- Rust toolchain (stable, 1.75+)
- Node.js 18+ and pnpm (
corepack enablewill provide it) - Tauri v2 system dependencies for your platform — see tauri.app/start/prerequisites. On Debian/Ubuntu these are
libwebkit2gtk-4.1-dev,libgtk-3-dev,libayatana-appindicator3-dev,librsvg2-dev, plusbuild-essentialandpkg-config. - C++ compiler and
cmake(required only for thelocal-whisperfeature)
First-time setup
From the repository root:
pnpm install
This installs every workspace package, including the frontend's dependencies (the Tauri CLI lives in frontend/node_modules).
Run the app (development, hot reload)
pnpm dev
Wraps tauri dev: Vite serves the Svelte frontend on http://localhost:5173, Cargo builds the Rust backend, and the desktop window opens. Frontend edits hot-reload; Rust edits trigger a rebuild and a window restart.
Build a release bundle
pnpm build
Wraps tauri build. Produces a release binary plus .deb and .AppImage packages under src-tauri/target/release/bundle/ (configurable in src-tauri/tauri.conf.json).
On-device transcription (whisper.cpp)
Enable the local-whisper Cargo feature by forwarding flags to cargo through the Tauri CLI:
# Development
frontend/node_modules/.bin/tauri dev -- --features local-whisper
# Release
frontend/node_modules/.bin/tauri build -- --features local-whisper
Everything after -- is passed to cargo for the Rust build.
GPU acceleration
Add to the same feature list:
| Backend | Feature flag | Requires |
|---|---|---|
| NVIDIA CUDA | local-whisper,cuda |
CUDA toolkit |
| Vulkan | local-whisper,vulkan |
Vulkan SDK + compatible driver |
| Apple Metal | local-whisper (automatic on Apple Silicon) |
macOS |
Example:
frontend/node_modules/.bin/tauri build -- --features local-whisper,cuda
Faster iteration helpers
- Frontend only (no desktop window):
pnpm -C frontend dev. The page loads atlocalhost:5173butinvokecalls fail since there is no Tauri runtime — useful for pure CSS / layout tweaks. - Type-check the frontend:
pnpm frontend:check(wrapssvelte-check). - Rust-only check:
cargo check --manifest-path src-tauri/Cargo.toml(add--features local-whisperto also check that path).
Data Locations
| Platform | Config | Database |
|---|---|---|
| Linux / macOS | ~/.config/catalyst-guard/config.toml |
~/.local/share/catalyst-guard/db/app.db |
| Windows | %APPDATA%\catalyst-guard\config.toml |
%LOCALAPPDATA%\catalyst-guard\db\app.db |
The config file is created automatically on first run with sensible defaults. Existing data from previous versions is read in place — no migration step is required.
Whisper Models
When using on-device transcription, models are downloaded through Settings → Transcription. Models are stored in the application data directory and are not bundled with the binary.