xe-launcher-v2

xe-launcher-v2 is an application launcher developed in Rust, designed to enable users to easily launch applications. It offers a customizable interface and is built for simplicity and intuitive operation. The tool is particularly beneficial for developers, featuring robust support for plugins that allow for easy functionality expansion.

GitHub Stars

2

User Rating

Not Rated

Favorites

0

Views

23

Forks

0

Issues

8

README
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