@rohansguliani/mux
v0.0.8
Published
Get started with Mux: run coding agents on your own machines from any browser.
Readme
@rohansguliani/mux
Run coding agents on machines you own, from any browser with Mux.
Get started
npx @rohansguliani/muxThe npm launcher and dashboard shell command both download a checksum-verified bootstrap and run the same Go installer. That installer owns machine identity, runtime and supervisor verification, user services, account enrollment, and browser handling. No account is required. Subsequent runs install the selected current release while preserving machine identity and user data. The bootstrap cache is checksum-verified; reinstalling still requires the release service. Download or verification failures leave the installed runtime running. Closing the browser does not stop the runtime.
Requires Node 22.12 or newer and Linux with systemd user services or macOS with LaunchAgents, on x64 or arm64. Windows users can run the Linux installation in WSL with systemd and browser integration configured.
Both commands replace runtime, supervisor, and bundled frontend software, repair services, and preserve the existing machine identity, databases, credential keys, and user configuration. Fresh installations default to ~/.muxrun/local. Discovery prefers the registered installation, then ~/.muxrun/local, ~/.muxrun, and legacy ~/.agentify. Multiple layouts do not block installation: the selected database is kept, other databases are not merged or deleted, and old Mux service names are retired. Set an absolute MUX_HOME for a custom location on the first install; later commands remember that location. Conflicting explicit homes and control-plane identities are still rejected.
The installer verifies all replacement artifacts before stopping existing services. Reinstallation interrupts active runs and terminal connections. Once writers stop, it backs up software and SQLite files, installs the replacement, and lets the new runtime apply database migrations. Runtime and supervisor health checks identify the newly started runtime; connected installations also restart their existing tunnel. Failed activation restores the prior software, database, and service definitions. An interrupted rollback resumes on the next install. Owner-only reinstall-backup-* directories retain recovery copies; they are not automatically pruned. --reset remains unsupported.
In Settings → Sign in with Google, connect to your Mux account. Running the dashboard's account install command over an existing local installation opens this same Google connection flow, without creating another machine. Provider API keys and AI preferences transfer to the account; local values win matching conflicts and cloud-only values remain. Once the account-managed runtime and remote connection are ready, the browser redirects to your machine on muxrun.com. Workspaces, chats, history, and files remain on your machine. Connecting installs the machine supervisor and remote-access tunnel. If the machine is already account-connected, either command reuses it and opens its dashboard without changing its account.
Headless servers
Run as your normal user, not with sudo:
npx @rohansguliani/mux --no-openSSH sessions and Linux sessions without a display automatically skip browser launch. A missing or failing browser does not make a successful runtime startup fail. Linux still requires working systemd user services; this does not add support for containers without a service manager.
Before account connection, the installer saves the authenticated browser URL to browser-url.txt in the selected installation directory with owner-only permissions. It prints the selected port and an SSH-forwarding command, never the bootstrap credential.
On your own computer, run the printed command, replacing user@server with your SSH destination. For example, if the runtime selected port 41987:
ssh -N -L 127.0.0.1:41987:127.0.0.1:41987 user@serverKeep that connection open. In a second terminal on your computer, securely retrieve the URL file to a new private directory:
access_dir=$(mktemp -d)
scp user@server:.muxrun/local/browser-url.txt "$access_dir/browser-url.txt"For a custom MUX_HOME, use that remote path instead. Open the copied file in a local text editor and paste its URL into your browser. The URL is a credential: do not share it or paste it into logs. Use 127.0.0.1 and the same forwarded port on both sides; a different host or port will fail local browser authentication. Keep the runtime bound to loopback—do not open its port publicly.
You can now use Mux locally through SSH, or connect Google from Settings. Once connected, headless launches print the hosted dashboard URL instead; remote access requires the machine and its tunnel to remain running.
Release availability
This workflow requires the matching local-first runtime, frontend, and control-plane release. The previously published version 0.0.1 only prints onboarding instructions.
npx @rohansguliani/mux --help
npx @rohansguliani/mux --version