A web based file browser, editor, Git viewer and terminal that puts your servers, laptops and phones behind a single interface.
$ bash -c "$(curl -fsSL https://raw.githubusercontent.com/esamattis/redoor/refs/heads/main/install.sh)"
The script only downloads the single static redoor binary, written in Rust, to ~/.local/bin (/usr/local/bin as root). Nothing else is installed.
Today you work on many devices: servers, laptops, phones. You need to manage files on all of them and move files between them. Redoor combines them behind one interface, reached over a direct SSH connection or by a small Redoor Agent that dials in to your Redoor Server.
Every connected device shows up in the sidebar with its bookmarks. Jump between machines without opening a single SSH session by hand.
Search a device by file path or by file contents. The search runs on the device itself using the same libraries as ripgrep, so even large trees answer quickly.
.gitignore, with hidden files on demandOpen any file on any device in a real code editor and save it straight back. No local copy, no sync step.
Open a shell on any device from anywhere in the app. Sessions keep running on the device when you close the browser, so you can pick up where you left off from your laptop or your phone.
Redoor understands Git repositories on every device. Step through commits, review diffs, and browse the whole tree as it was at any point in time.
Redoor manages the SSH keys of your devices and their rotation, and keeps them in a vault encrypted with your passkey. The same encryption protects any file you choose, so devices only ever store ciphertext.
.redoorencryptedA stateless MCP endpoint and a remote CLI give scripts and AI agents access to all your devices at once. Every token is limited to the permissions and devices you pick.
redoor remote to copy, search and execute across devices$ redoor remote devices devbox connected macbook connected pixel connected $ redoor remote cp devbox:/srv/report.csv macbook:/tmp/ ✓ copied directly between devices $ redoor remote exec devbox -- uptime
Run the server once, then attach devices in whichever way their network allows.
Point the server at an SSH target and it spawns the agent for you. Nothing to install by hand.
Laptops, desktops and phones run redoor agent and connect out over WebSocket. Works from behind NAT.
Reach firewalled hosts the server can’t see: a relay starts the agent over SSH and routes it through your machine.
Redoor is written in Rust. That means one static binary with no runtime to install, a small memory footprint, and async I/O that stays responsive during big transfers, from a beefy server to a phone in your pocket.
Deleted files go to a per-device trash first, so a slip of the finger can be restored from the UI.
Copy and move files directly between your devices without downloading them to your browser first.
Static credentials, PAM system users, or OIDC single sign-on with Pocket ID, Keycloak and friends.
Server, UI, agent and relay ship as one redoor binary. Copy it anywhere and run.
Hit Update in the web UI, or run redoor upgrade to replace the binary and restart its services in place.
redoor server systemd install --start writes and enables the service for you, with or without root.
For Linux, macOS and Termux on Android.
$ bash -c "$(curl -fsSL https://raw.githubusercontent.com/esamattis/redoor/refs/heads/main/install.sh)"
$ ~/.local/bin/redoor server
The script only puts the redoor binary in ~/.local/bin. Prefer doing it by hand? Grab it from releases.
$ docker run --rm --init --publish 127.0.0.1:7666:7666 ghcr.io/esamattis/redoor:latest
Open http://127.0.0.1:7666 and log in with redoor / redoor. These demo credentials are for local testing only, see Docker Compose deployment for a persistent setup.