Getting Started & Installation
Relevant source files
The following files were used as context for generating this wiki page:
Jarvis Desktop Glas is a modern, native Control Room application built with Electron, Bun, and React. It functions as a personal AI assistant framework, integrating local and cloud LLMs with a high-tech "Glasmorphism" HUD interface. The system architecture is split between an Electron-based desktop shell and a local-loopback TypeScript backend service that orchestrates voice, memory, and automated actions.
This guide covers the prerequisites and steps required to set up the development environment, build the application, and deploy the specialized installer components. For information on the core logic and agent behaviors, see the Agent Documentation.
Sources: instructions/CONTEXT.md:1-10, instructions/design-backend-prompt.txt:8-18
Development Environment Setup
To contribute to or run the Jarvis-Glas project from source, specific runtimes and build tools must be installed on the host machine. The project utilizes Bun workspaces to manage the shared packages and different application modules.
Prerequisites
| Tool | Requirement | Purpose |
|---|---|---|
| Node / Bun | bun.sh | Primary runtime, package manager, and bundler. |
| Rust + Tauri | tauri.app | Required for building the Bootstrap-Installer. |
| PowerShell | Version 5.0+ | Execution of installation and utility scripts. |
| Operating System | Windows | Primary target platform for HUD and native scripts. |
Sources: CONTRIBUTING.md:7-12, package.json:59-70
Local Repository Setup
Initial installation involves cloning the repository and linking the shared workspace packages.
# Clone the repository
git clone https://github.com/Icarus-B4/jarvis-desktop_glas.git
cd jarvis-desktop_glas
# Install dependencies and link workspaces
bun install
Sources: CONTRIBUTING.md:7-9, instructions/CONTEXT.md:29-30
Build and Execution
The build process is managed by a custom Bun script (scripts/build.ts) that handles multiple entry points for the Electron Main process, Preload bridge, and React Renderer.
Build Lifecycle Flow
The following diagram illustrates the build sequence required to prepare the desktop application and its associated backend service.
Sources: scripts/build.ts:9-62
Execution Commands
| Command | Action | Description |
|---|---|---|
bun run build | Bundle Application | Bundles Main, Preload, and Renderer into the dist/ folder. |
bun run start | Development Run | Executes the build script and launches the Electron app. |
bun run check | Verification | Runs TypeScript type-checks and the test suite. |
bun run dist:win | Production Build | Builds the application and packages it via electron-builder. |
Sources: package.json:11-17, instructions/CONTEXT.md:31-34
Installer & Bootstrap System
The project includes a specialized bootstrap installer built with Tauri and Rust. This installer is responsible for setting up the environment and deploying the unpacked Electron application.
Bootstrap Configuration
The installer is defined in apps/bootstrap-installer/src-tauri/tauri.conf.json. It packages external resources, specifically the Windows unpacked build and installation scripts.
"bundle": {
"active": true,
"resources": {
"resources/install.ps1": "install.ps1",
"resources/win-unpacked": "win-unpacked"
}
}
Sources: apps/bootstrap-installer/src-tauri/tauri.conf.json:34-38
Build Chain for Installer
To generate the final setup executable, the Electron build must be copied into the Tauri resource directory before the final Cargo build.
# 1. Build Electron App
bun run build
bunx electron-builder --win --config
# 2. Copy to Installer Resources
robocopy release/win-unpacked apps/bootstrap-installer/src-tauri/resources/win-unpacked /E /IS /IT
# 3. Build Setup Executable
cd apps/bootstrap-installer/src-tauri
cargo tauri build
Sources: CONTRIBUTING.md:16-22
Initial Configuration
Upon the first launch, the application requires several configuration steps to enable core AI and system functionalities.
API and Provider Setup
Configuration is handled via a dedicated HUD panel or environment variables. Users must provide keys for cloud services or configure local fallbacks.
- xAI Grok: Used for Cloud Chat, STT, and TTS. Configured via
XAI_API_KEY. - Ollama: Local LLM fallback (e.g.,
qwen3:8b). RequiresOllama Base URL(default:http://127.0.0.1:11434). - Tavily: Optional key for real-time web searches.
Sources: backend/src/handler.ts:553-575, instructions/design-backend-prompt.txt:80-87
LifeOS Initialization
Jarvis utilizes a "LifeOS" system for persistent user context. During the first launch, an onboarding modal prompts the user to define their Mission, Core Values, and Current State. These are stored as Markdown files in the user's Documents/Jarvis-Glas/lifeos directory to ensure they persist through application updates.
Conclusion
Setting up Jarvis-Glas requires a combination of Bun for the primary application logic and Rust for the bootstrap installer. Once the development environment is prepared and the dependencies are installed, the build script streamlines the packaging of the Electron shell and the local backend service. Final configuration through the LifeOS onboarding ensures the assistant is personalized to the user's local environment and goals.