Tauri Desktop Application
Relevant source files
The following files were used as context for generating this wiki page:
The colibrì desktop application provides a native shell for the colibrì inference engine's web interface. It uses Tauri v2 to wrap the shared React frontend located in the web/ directory into a cross-platform desktop window. The application allows users to interact with large language models like GLM-5.2 through a graphical interface while the heavy inference tasks remain external to the desktop package.
Sources: desktop/README.md:1-5, README.md:468-472
Architecture and Integration
The desktop application functions as a thin wrapper around the existing web UI. During development, Tauri connects to a Vite development server; for production, it packages the static assets from the web/dist directory. The application does not bundle the inference engine or model files, as these resources are managed externally by the user.
System Components
The diagram shows the relationship between the Tauri shell, the React frontend, and the external inference engine.
Sources: desktop/README.md:1-20, desktop/src-tauri/tauri.conf.json:6-11
Configuration and Security
The application is configured through tauri.conf.json, defining window properties, build commands, and security policies. It enforces a Content Security Policy (CSP) to restrict connections and resource loading.
Window Properties
The application initializes with a single main window.
| Property | Value | Description |
|---|---|---|
productName | colibrì | The name of the desktop application. |
identifier | org.colibri.desktop | Unique application identifier. |
width | 1280 | Default window width in pixels. |
height | 820 | Default window height in pixels. |
minWidth | 860 | Minimum allowed window width. |
minHeight | 600 | Minimum allowed window height. |
resizable | true | User ability to resize the window. |
Sources: desktop/src-tauri/tauri.conf.json:3-23
Security Policy
The application limits connectivity to safe origins via CSP.
"security": {
"csp": "default-src 'self'; style-src 'self' 'unsafe-inline'; img-src 'self' asset: http://asset.localhost; connect-src 'self' ipc: http://ipc.localhost http://127.0.0.1:* http://localhost:*"
}
Sources: desktop/src-tauri/tauri.conf.json:25-27
Development and Build Process
The project uses Rust for the native core and Node.js for the frontend. The Tauri CLI manages the build lifecycle, ensuring the frontend is prepared before the native binary is compiled.
Dependencies
The native side is built using Rust 1.85+.
| Crate | Version | Role |
|---|---|---|
tauri | 2.11.5 | Core desktop framework. |
tauri-build | 2.6.3 | Build-time script support. |
Sources: desktop/src-tauri/Cargo.toml:7-17
Build Workflow
The sequence diagram illustrates the steps taken by the Tauri CLI to start the application in development mode.
Sources: desktop/README.md:14-20, desktop/src-tauri/tauri.conf.json:6-11
Functional Limitations
The desktop increment focuses exclusively on packaging the UI. It maintains several intentional design constraints to keep the application lightweight:
- No inference bundling: The model (hundreds of gigabytes) remains an external resource.
- No process management: The desktop app does not start or stop the inference engine.
- Minimal permissions: The application does not request native filesystem or process execution permissions in this version.
- Shared UI: The application uses the exact same interface as the web-based
./coli webdashboard.
Sources: desktop/README.md:22-30
Conclusion
The Tauri Desktop Application provides a native entry point for colibrì users, wrapping a complex React dashboard into a stable desktop environment. By decoupling the interface from the heavy inference engine, the application remains highly portable while offering the benefits of a dedicated desktop window.
Sources: desktop/README.md:22-30, desktop/src-tauri/tauri.conf.json:30-33