Run programs, manage jobs, and transfer files across your devices.
Install · Quick start · User manual · Development
English · 简体中文
xrun is a tool for developers and AI agents working across their own macOS, Windows, and Linux devices. Use the same commands to build, test, run background jobs, transfer files, capture screenshots, and forward ports. The desktop app manages networks, permissions, background services, and activity, with English and Chinese interfaces and light and dark themes.
xrun ubuntu -C /home/user/demo -- cargo test # Run tests on Linux
xrun windows start -C 'D:\demo' -- cargo build # Start a background build on Windows
xrun windows pull 'D:\demo\target\debug\app.exe' ./app.exe
xrun windows screenshot ./screen.png
xrun ubuntu forward 8080:3000 # Open a remote dev server locally- Cross-platform execution: run programs or scripts on a target device and stream their output and exit codes back.
- Background jobs: check status, read logs, wait, or cancel after submission. Jobs keep running if you disconnect.
- Files and screenshots: transfer individual files with checksums, resume support, and overwrite protection; capture remote displays.
- Port forwarding: open a remote development service in your local browser.
- AI automation: defined exit codes, error codes, and JSON output.
xrun helpandxrun docwork offline.
PTY terminals, directory synchronization, and offline job queues are not supported.
This example uses a Mac named macbook to manage a Linux device named ubuntu. Install xrun on both devices first.
-
Download your platform's package from Releases, or use the command-line installer.
-
On the Mac, deploy a relay, then create a network using the complete address it returns. The Mac becomes the manager:
xrun relay deploy --provider cloudflare --name xrun-relay xrun connect '<returned relay address>' --name macbook -
Run
xrun inviteon the Mac to generate an access code. On Linux, join the network and allow the Mac to access this device:xrun connect <relay-address> <access-code> --name ubuntu --allow-manager
-
Back on the Mac, check the connection and run your first remote command:
xrun status xrun ubuntu -- uname -s
If the command prints
Linuxand exits with code 0, remote execution is working. See Status and troubleshooting if it fails.
The desktop app's New network flow can deploy a relay and create a network for you. You can also host a relay on Linux; see Relay deployment.
| Platform | Download |
|---|---|
| macOS 13+ · x86_64 / arm64 | App ZIP with CLI |
| Windows · x86_64 / arm64 | Installer EXE with app and CLI |
| Linux · x86_64 / arm64 | CLI archive |
Deploy a relay to Cloudflare (Worker + Durable Object) with one command from any supported system, or host it on Linux.
- End-to-end encryption: devices use mutual TLS inside the relay tunnel. The relay stores network ownership, the manager-signed roster (device names, key fingerprints, and revocations), and traffic counters. It cannot read commands, output, files, or screenshots.
- Membership does not grant access: each device decides who may access it. An allowed device has all the permissions of the current local user. Only allow devices you trust.
- Keep the manager online: it handles invitations, revocations, and roster lease renewal (15 minutes by default, configurable up to 24 hours). Once the lease expires while the manager is offline, new remote operations are rejected. Accepted jobs keep running.
- User manual: installation, networking, permissions, everyday use, and troubleshooting. Read it offline with
xrun doc, or usexrun doc --lang zhfor Chinese. AI agents and scripts can start withxrun doc automation. - Development and releases: builds, tests, release workflow, architecture, protocol, and compatibility rules.