xe-launcher-v2

xe-launcher-v2は、Rustで開発されたアプリケーションランチャーです。ユーザーが簡単にアプリケーションを起動できるように設計されており、カスタマイズ可能なインターフェースを提供します。シンプルで直感的な操作が可能で、開発者向けの機能も充実しています。特に、プラグインのサポートにより、機能拡張が容易です。

GitHubスター

2

ユーザー評価

未評価

お気に入り

0

閲覧数

22

フォーク

0

イシュー

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