Technology Stack
Core Technologies
- Frontend: React 19 + TypeScript + Vite
- Desktop Framework: Tauri v2 (Rust)
- Styling: TailwindCSS with custom design system
- Markdown: react-markdown with syntax highlighting
Key Features
Global Shortcut Access
The app registers Alt+Space (Option+Space on macOS) as a global shortcut to instantly show/hide the window from anywhere on your system. This allows quick access to Asta without switching contexts.System Tray Integration
Tray Behavior
- Left click - Show and focus the app window
- Right click - Open context menu (Open/Quit)
- Close button - Hides to tray instead of quitting
Multi-User Authentication
The app supports both single-user and multi-user modes:- Single-user mode: No login required, direct access to the workspace
- Multi-user mode: JWT-based authentication with role management (admin/user)
- Automatic auth validation and token refresh
Setup Wizard
First-time users are guided through a setup wizard to configure:- AI provider selection (Claude, Gemini, OpenRouter, Ollama)
- API key configuration
- Backend connection settings
- Optional Tailscale integration for remote access
Application Structure
Directory Layout
The source code is located inMACWinApp/asta-app/ with the following structure:
Main Views
Chat View
The primary interface for conversing with AI agents. Supports streaming responses, markdown rendering, code syntax highlighting, and conversation history.
Sidebar
Shows conversation history, new chat button, agent picker, settings access, and online/offline status indicator.
Settings Sheet
Configure AI providers, API keys, backend URL, Tailscale integration, autostart preferences, and theme options.
Agents Sheet
Browse and enable specialized AI agents. Filter by category, toggle agent availability, and customize agent models.
Tauri Plugins
The app uses several Tauri v2 plugins for native functionality:tauri-plugin-global-shortcut- Register Alt+Space system-widetauri-plugin-autostart- Launch on system boottauri-plugin-http- Backend API communicationtauri-plugin-opener- Open URLs in default browser
Backend Communication
The desktop app connects to the Asta backend server (default:http://localhost:8010) via REST API:
Window Configuration
The main window is configured insrc-tauri/tauri.conf.json:
Platform Support
macOS
- macOS 11+ (Big Sur and later)
- Native Apple Silicon (aarch64) and Intel (x86_64) builds
- NSApplication activation for proper window focusing
Windows
- Windows 10/11
- Bundled WebView2 runtime
- MSI installer package
Next Steps
Build from Source
Learn how to build the desktop app for development and production
Release Process
Understand the automated release workflow and version management