Multi-machine file manager
Every machine. One tab.
SidecarX connects any number of remote servers to a single browser
tab. Copy files on machine A, paste them on machine B — no
SCP, no rsync, no terminal. Inside each machine, drag and drop
behaves like your desktop. All of it from one Rust binary.
$ curl -fsSL \
https://raw.githubusercontent.com/pgmi-builds/sidecarx/main/install.sh \
| bash
$ ./sidecar
→ SidecarX listening on http://localhost:3000
{
"machines": [
{ "name": "workstation", "url": "https://10.0.0.2:3000" },
{ "name": "gpu-box", "url": "https://10.0.0.7:3000" }
]
}
The panel
Files, editor, terminal — in one tab.
A single-page admin panel served by the binary itself. Browse the filesystem, preview images, edit code in Monaco, and drive a real PTY in xterm.js — on any connected machine.
Features
Built for the multi-machine day.
Traditional file browsers manage one machine. SidecarX manages all of them — the X stands for cross-machine file operations.
Cross-machine clipboard
Select files on machine A, paste them on machine B — no SCP, no rsync, no terminal. A transfer queue tracks progress. Drag-and-drop itself stays within one machine — the panel shows a single machine at a time, so it behaves exactly like your desktop.
Unified workspace
Editors and terminals from different machines share one tab dock. Monaco handles code with syntax highlighting; xterm.js drives resize-aware PTY sessions over WebSocket.
Tiny. Zero dependencies.
The backend is a single statically-linked Rust binary — musl on Linux. High performance with no runtime, no database, no Docker required. Run ./sidecar and it is serving.
Multi-machine config
Define every server once in admin_cfg.json — per-machine authentication and session management included. Switch machines with one click, across HTTP and HTTPS origins.
Full file operations
Browse, search, upload, download, rename, delete. Drag-and-drop folder uploads, thumbnail previews for images and video, Markdown and HTML viewers, batch downloads as ZIP.
Secure by default
JWT (HS256) auth with HttpOnly cookies, root-directory jailing via SIDECAR_ROOT_DIR, path-traversal protection, and configurable upload size limits.
Quickstart
Running before your coffee is.
One command installs the binary for your platform. One more starts the server. Everything else is a browser tab.
- 01 install.sh | bashPulls the right prebuilt binary — or grab it directly from Releases.
- 02 ./sidecarServes the API and the admin panel on port 3000. Set SIDECAR_SECRET in production.
- 03 localhost:3000Log in, add your other machines to admin_cfg.json, start moving files.
# server
SIDECAR_PORT=3000
SIDECAR_HOST=0.0.0.0
# required in production — signs the JWTs
SIDECAR_SECRET=change_me_in_production
# jail all file operations to this directory
SIDECAR_ROOT_DIR=/srv/files
# upload size limit, in MB
SIDECAR_UPLOAD_LIMIT=1024
Deploy with Docker or systemd · build from source with cargo · full reference in the README
Open source
Read the code. Ship a PR.
SidecarX is developed in the open under Apache-2.0 — Rust + Axum on the backend, a vanilla-JS SPA with Lit, Monaco, and xterm.js in the panel. Issues and pull requests welcome.