Skip to main content

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.

PlatformInstallerPortable Binary
macOS (Apple Silicon).dmg.app.tar.gz
macOS (Intel)Coming soonComing soon
Windows (x64)Coming soonComing 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

VariableDescription
BALEYBOTS_UI_REPOGitHub 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.