Desktop App (Baleybots UI)
Baleybots UI is a native desktop application built with Tauri that wraps the Baleybots chat interface in a standalone window. It runs a local Express server as a sidecar to handle API requests, model configuration, and tool execution.
Installation
Via npm (macOS & Windows)
bun install -g @baleybots/ui
baleybots-ui
The launcher automatically downloads the correct native binary for your platform on first run and caches it at ~/.baleybots/ui/<version>/. Subsequent launches are instant.
Direct Download
The links below always point at the latest published ui-v* release — no GitHub account or login required.
| Platform | Installer | Portable Binary |
|---|---|---|
| macOS (Apple Silicon) | .dmg | .app.tar.gz |
| macOS (Intel) | Coming soon | Coming soon |
| Windows (x64) | Coming soon | Coming soon |
Features
- Native window with system menu bar, keyboard shortcuts, and window management
- Local Express sidecar server for API proxying and tool execution on an ephemeral port
- Crew orchestration with coordinator strip and crew board views
- Multiple provider support — Anthropic, OpenAI, Google Gemini, Ollama, and more
- Model management — configure API keys, models, and provider settings
- Chat history persisted locally
- Markdown rendering with tool call displays and structured output views
Configuration
Settings are stored in the browser's local storage (or the Express server's settings endpoint). Configure your API keys and model preferences through the Settings page in the app.
Environment Variables
| Variable | Description |
|---|---|
BALEYBOTS_UI_REPO | GitHub repo for binary downloads (default: baleybots/baleybots) |
Development
# From typescript/apps/ui:
bun run dev # Starts both Vite dev server and Express sidecar
bun run tauri:dev # Starts Tauri dev mode with hot reload
bun run tauri:build # Builds the production Tauri app
Architecture
┌─────────────────────────────────────────────┐
│ Tauri Window │
│ ┌───────────────────────────────────────┐ │
│ │ React (Vite) Frontend │ │
│ │ ┌─────────┐ ┌──────────┐ │ │
│ │ │ Chat UI │ │ Settings │ ... │ │
│ │ └─────────┘ └──────────┘ │ │
│ └────────────┬──────────────────────────┘ │
│ │ apiFetch │
│ ┌────────────▼──────────────────────────┐ │
│ │ Express Sidecar (local server) │ │
│ │ ┌────────┐ ┌──────┐ ┌───────────┐ │ │
│ │ │ Chat │ │ MCP │ │ Tools │ │ │
│ │ └────────┘ └──────┘ └───────────┘ │ │
│ └───────────────────────────────────────┘ │
└─────────────────────────────────────────────┘
The frontend communicates with the Express sidecar via fetch on a dynamic localhost port. The sidecar handles all LLM API calls, tool execution, and MCP server connections.