Desktop App (Tauri)
The Tauri desktop client is more than a GUI shell — it’s a true Agent OS with 23+ native system capabilities. All data stays on your machine, and three bundled sidecars (Python backend, Next.js frontend, Agent Runner) are packaged as standalone binaries with zero external dependencies.Download & Installation
The Myrm Desktop app features an intelligent cross-platform distribution system:- Smart Hardware Matching: WebGL sniffing bypasses browser limitations (like Safari spoofing Intel on M-series chips), ensuring the correct binary for your device with a single click.
- Race-Free Auto-Updates: Map-Reduce CI/CD pipeline ensures reliable, silent background updates across all platforms without manifest conflicts.
Native OS Capabilities
The desktop app provides deep system integration that no browser-based AI tool can match:Screen & Input
- Global Hotkeys — Dynamically register system-wide shortcuts to toggle the window or trigger Appshot
- Appshot — Capture the active window screenshot + extract text via Accessibility API, all from a single hotkey
- Clipboard Integration — Agent can write to your real OS clipboard (not a sandbox clipboard)
- Deep Link Protocol — Open conversations or trigger actions via
myrmagent://URLs (5 intent types: chat, agent, ask, oauth, install-skill)
Power & Security
- Smart Power Lock — Automatically prevents system sleep while agent tasks are executing (macOS IOKit, Linux systemd-inhibit, Windows SetThreadExecutionState)
- Screen Lock Management — Detect lock state, unlock for Computer Use sessions, and store credentials securely in the system Keychain
- Native Elevation — Request admin privileges when needed (e.g., quarantine removal on macOS)
- OTA Auto-Update — Tauri updater with public-key safety validation to prevent supply-chain attacks
Visual & Interaction
- System Tray — Dynamic tooltip status (idle/busy/error) + quick-access menu (New Chat, Settings, Workspace). Hover the tray icon to see today’s token usage and cost at a glance. Budget overruns trigger native OS notifications so you never miss a spending alert
- Taskbar Progress Bar — When agents or background tasks are running, the taskbar/dock icon shows an indeterminate progress indicator. When a task completes while the app is minimized, the dock icon bounces to grab your attention
- Full SubagentDashboard in Desktop — The Tauri WebView renders the complete Next.js frontend, so every sub-agent monitoring feature (cancel, steer, Gantt, sort/filter, staleness alerts) works identically on desktop — zero extra code needed
- Visual Approval Overlay — OS-level transparent red frame overlay on the target monitor for tool approval, visible even when chat is covered
- Desktop Pet Sprite — Transparent topmost window with Canvas 2D rendering for the companion pet system
- Close-to-Tray — Minimize to system tray instead of quitting, with macOS ActivationPolicy management
Startup Experience
- Window position/size auto-restore — Close and reopen — the window returns to its last position and size automatically, especially helpful for multi-monitor setups
- Zero white-flash cold start — Dark background pre-rendered so you never see a jarring white flash on startup
- Tab route memory across restarts — After a crash, update, or restart, the app automatically returns to the last page you were viewing (Chat/Work/Projects tabs remembered independently)
Infrastructure
- Python Sidecar — Managed FastAPI backend process with health checks
- Next.js Sidecar — Managed standalone frontend server for WebUI mode
- Agent Runner Sidecar — Bun-compiled standalone binary for CLI agent integration
- Port Conflict Detection — Pre-launch checks to prevent port collisions
- Out-of-the-box API alignment — In default Desktop mode the UI talks to backend on
127.0.0.1:8080automatically (no manual port hunting). Enable WebUI mode when you need remote access; the UI then reads your configured port (e.g.25808) from system config - Boot screen backend gate — On cold start, the boot animation waits until the Python backend
/healthsucceeds before entering the main UI, avoiding connection-error floods; Rust also polls health for up to 30s - Local dev browser parity — When developing with
bun run devon:3000, API rewrites authenticate correctly even when the proxy connects via IPv4-mapped loopback (::ffff:127.0.0.1on macOS); no ConfigSync 401 on first load - Sidecar build CLI — Maintainers run
./myrm desktop sidecarto build release binaries;./myrm desktop check-sidecarfails on empty placeholders - Public Ingress — Paste your own HTTPS tunnel URL (cpolar, NATAPP, frp, etc.); see Tunnel Guide
- macOS Quarantine Fix — Detect and auto-heal
com.apple.quarantineattributes
Global Screen AI (Appshot + FlowPad)
The desktop-exclusive Appshot feature lets you interact with AI without leaving your current application:- Global Hotkey Capture: Press a hotkey in any app — the system-level listener captures the active window
- Auto Text Extraction: Accessibility API automatically extracts text content from the captured window
- Selected Text Priority Context: Automatically captures your currently selected text (macOS via AXSelectedText, Windows via Ctrl+C clipboard) — the selection is injected as the highest-priority context for AI, displayed prominently as a Context Chip in FlowPad — AI precisely understands what you’re focused on
- FlowPad Floating Panel: An AI query panel appears after capture — type your question and send it to the conversation
- Quick Actions: One-click preset buttons (Reply / Summarize / Translate / Explain) appear after capture — zero typing required for common tasks
- Multi-Capture Stacking: Capture up to 10 windows in sequence and send them all to AI for analysis
- Image Preview & Management: Preview captured images in FlowPad, delete individual captures, or click to enlarge
- Privacy Blacklist: Protect sensitive apps (1Password, banking apps, etc.) — captures are blocked with a warning toast and optional “Capture Anyway” override
- Inline Input Mode (Option+I): A global shortcut triggers capture and enters Inline mode — AI results stream in real-time within FlowPad, then one-click Paste writes the result back to the original app and the window auto-hides — never leave your workflow
- Inline Agent Switcher + Profile Routing: In Inline mode, you can switch the target Agent profile per message (for example Writer/Coder) without changing the main chat session’s Agent configuration
Setup
- Install the application for your platform
- Launch Myrm from your applications menu
- Configure at least one LLM API key in Settings
macOS System Permissions (Computer Use)
Desktop automation (Computer Use) requires two macOS permissions: Accessibility and Screen Recording. Myrm automatically detects and guides you through the process:- Proactive Detection — When you enable
computer_usein an Agent’s tool settings, a status card instantly shows which permissions are granted (green) or missing (amber) - One-Click Deep Link — Click “Open System Settings” to jump directly to the correct macOS Privacy panel
- Recheck Button — After granting access in System Settings, click “Recheck” to verify instantly without restarting
- Runtime Banner — If permissions are revoked while using Desktop Inspector, a contextual banner appears with guidance
Desktop Inspector: Numbered Overlay (SOM)
When you refresh the Desktop Inspector panel, Myrm overlays numbered badges [N] on interactive controls in the live screenshot. The same indices appear in the accessibility tree and in approval cards — so you always know which element the agent is about to click.- Token-safe default — Agent tool calls keep
include_screenshot=falseunless you need a visual turn; SOM runs on Inspector refresh and explicit screenshot requests only - Semantic-first —
@drefreferences remain the primary control path; numbers are a human-readable translation layer, not a replacement - Filtered labels — Static text and non-interactive nodes are excluded so the overlay stays readable
Deploy-aware behavior: On local/Tauri/WebUI local, Computer Use controls your real Mac/PC/Linux desktop. On SaaS sandbox, it only mounts when the sandbox runs a Visual Desktop (noVNC) and your plan includes the VNC entitlement—headless sandboxes keep the toggle off so marketing matches reality.
Screen Recording permission may require an app restart to take effect. Accessibility permission typically works immediately after granting.
Permission System
The desktop app enforces a three-tier permission model for agent actions:Remote Access
Enable remote access with your own tunnel tool, then control running agents from your phone:- Go to Settings → System → Access
- Enable WebUI mode and password protection
- Start a tunnel (Cloudflare Tunnel, cpolar, NATAPP, frp, etc.) against port
3000 - Paste the HTTPS URL into Public Ingress and run Test connectivity
- Scan the Mobile Hub QR on your phone — pick an active session to open the Status Board (live progress, approvals, steer, stop with confirmation toast, Browser/Desktop Live Preview — real-time agent screen snapshots with Lightbox zoom and tab switching)
chat_id. See Tunnel Guide for detailed configuration.
Honest note: You bring the tunnel; Myrm does not host your traffic. End-to-end encrypted relay (G2) is on the roadmap — today, security relies on HTTPS + scoped pair tokens + session binding.