xe-launcher Svelte Themes

Xe Launcher

v2 using svelte and with enhanced plugin management and mcp

Xe Launcher

A plugin-based desktop launcher built with Tauri. Part of the Xenon project. Compile exactly the tools you need with 0.9s incremental builds.

What is this?

A minimal desktop shell that hosts functionality through plugins. Instead of building monolithic apps, create focused plugins that compile into a custom launcher. Think of it as a bootloader for desktop tools.

Key features:

  • ⚔ 0.9s incremental builds
  • šŸ”Œ Plugin-based architecture (compile only what you need)
  • šŸ¤– Built-in MCP server for AI agent integration
  • šŸ“¦ Native tool support via sidecars
  • šŸŽÆ ~5MB base size, grows only with active plugins

About

Xe Launcher is part of the Xenon project ecosystem, developed by the Agent54 organization. It provides a modern, plugin-based approach to desktop tools and automation.

Repository: https://github.com/agent54/xe-launcher

Quick Start

# Prerequisites: Bun + Rust
bun install

# For fresh checkouts only: sync plugin binaries
bun manage-sidecars sync

# Run with specific plugins (fast builds)
bun dev:settings      # Just settings plugin
bun dev:none          # No plugins (minimal)
bun dev:tauri         # All plugins

# Create a new plugin (prompts for JS/TS)
bun create-plugin my-tool

Project Structure

ā”œā”€ā”€ apps/desktop/          # Tauri shell
ā”œā”€ā”€ plugins/               # Plugin modules
│   ā”œā”€ā”€ registry.json      # Plugin manifest (source of truth)
│   └── tauri-plugin-*/    # Individual plugins
└── docs/                  # Documentation

Core Concepts

  • Plugins are Cargo features - Conditional compilation, not dynamic loading
  • Registry drives everything - One JSON file controls the entire system
  • Three-tier control - Registry → Build → Runtime

Documentation

Available Plugins

Core Plugins

Plugin Description Default Enabled Sidecar
settings Manage application settings āœ“ -
system-info Display system information āœ“ -

Tool Plugins

Plugin Description Default Enabled Sidecar
šŸž bun JavaScript runtime integration with Bun support āœ“ āœ“
ā˜ļø cloudflare Manage Workers, KV, D1, R2, and DNS from the XE Launcher āœ“ āœ“
curl Make HTTP requests using curl āœ“ āœ“
šŸ¦• deno Run Deno scripts with comprehensive permission management and developer tools āœ“ āœ“
iwa-tools Generate keys, create, bundle, and verify Isolated Web Apps (IWAs) āœ“ āœ“
mouse-trap Monitor mouse enter/leave events in screen regions for creating invisible triggers and hot corners āœ“ āœ“
šŸ¦™ ollama Local LLM integration with Ollama - chat, generate text, and manage models āœ“ āœ“
podman Container management with Podman āœ“ āœ“
šŸ”Œ usb-info View connected USB devices with vendor ID, product ID, and connection status āœ“ āœ“
⚔ workerd Cloudflare Workers runtime integration for local edge computing development āœ“ āœ“

Experimental Plugins

Plugin Description Default Enabled Sidecar
chrome-manager Manage Chrome browser instances and Isolated Web Apps - -

Development

# Plugin management
bun plugin:list               # Show all plugins
bun plugin:enable my-tool     # Enable in registry
bun manage-sidecars sync      # Sync native binaries

# Building
bun run build:tauri           # Production build

Releases

Creating a Release

We use a release script to automate version bumping and tagging:

# Bump version and create tag
./release.sh 0.2.11

# This will:
# 1. Update version in all config files
# 2. Commit the changes
# 3. Create a git tag
# 4. Push to GitHub (triggers release workflow)

The GitHub Actions workflow automatically:

  • Builds for all platforms (macOS, Windows, Linux)
  • Creates a draft release with artifacts
  • Generates update manifests for auto-updates

Publishing a Release

After the workflow completes (~10-15 minutes):

# Publish the draft release
gh release edit v0.2.11 --draft=false --latest

Auto-Updates

The app checks for updates automatically. Users can:

  1. Check for updates in Settings → Updates
  2. Download and install with one click
  3. App restarts automatically (or prompts to restart)

Update endpoint: https://github.com/Agent54/xe-launcher/releases/latest/download/latest.json

Why This Approach?

Traditional plugin systems require choosing between dynamic loading (security risks, performance overhead) or static compilation (inflexible). We chose a third way: conditional compilation with runtime control.

Result: The security and performance of static compilation with the flexibility of dynamic systems.


Built with Tauri + SvelteKit + Bun

Top categories

Loading Svelte Themes