Free and open source

One door to all your devices

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.

Linux macOS Android Termux Docker
redoor.example.com

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.

01 / Files

Browse every device like it’s local

Every connected device shows up in the sidebar with its bookmarks. Jump between machines without opening a single SSH session by hand.

  • Fast file browser with sorting, filtering and selection
  • Bookmark the folders and files you visit most on each device
  • Copy, move, upload, download and trash
  • Transfers are streamed with minimal memory use and resume after a dropped connection
02 / Search

Find anything, on any device

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.

  • Path and content search with regex and case sensitivity toggles
  • Respects .gitignore, with hidden files on demand
  • Start from any directory or jump to the Git root
  • Matches shown with context lines, one click to open the file
03 / Editor

A text editor, right in the browser

Open any file on any device in a real code editor and save it straight back. No local copy, no sync step.

  • Syntax highlighting, code folding and in-file search
  • Git gutter shows what changed since the last commit
  • Optional Vim mode for muscle memory
  • Keep many files open at once, from different devices, and switch between them from the sidebar
04 / Terminal

Terminals that outlive your tab

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.

  • Available from every view in the bottom drawer, or full window
  • Persistent sessions you can reattach from any browser
  • Several sessions across devices, side by side as tabs
  • Powered by libghostty, so full-screen apps like btop and vim just work
05 / Git

Read your history, not just your files

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.

  • Changes, commits, branches, tags and worktrees
  • Diffs with word level highlights and expandable context
  • Browse any commit read-only, then jump back to the working tree
  • Previous and next commit navigation
06 / SSH keys & vault

SSH keys managed for you, locked by your passkey

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.

  • Manages the SSH keys of your devices, including rotation
  • Keys stored in a vault encrypted with passkey (WebAuthn PRF) based keys
  • Encrypt your own files too: anything ending in .redoorencrypted
  • Multiple passkeys, optional passphrase and vault key rotation
07 / Automation

Let your AI agents in, with scoped keys

A 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.

  • Stateless MCP support for your agents
  • redoor remote to copy, search and execute across devices
  • Fine grained permissions: read, write, delete, run, manage
  • Per-device scopes, expiry and one click rotation
$ 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

One server. Any network.

Run the server once, then attach devices in whichever way their network allows.

01

Over SSH

Point the server at an SSH target and it spawns the agent for you. Nothing to install by hand.

redoor server─ssh→Linux server
02

Agent dials in

Laptops, desktops and phones run redoor agent and connect out over WebSocket. Works from behind NAT.

macOS / Termux─ws→redoor server
03

Through a relay

Reach firewalled hosts the server can’t see: a relay starts the agent over SSH and routes it through your machine.

firewalled─relay→laptop→server
And more

Built for running on anything

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.

Trash, not oblivion

Deleted files go to a per-device trash first, so a slip of the finger can be restored from the UI.

Device to device

Copy and move files directly between your devices without downloading them to your browser first.

Flexible login

Static credentials, PAM system users, or OIDC single sign-on with Pocket ID, Keycloak and friends.

Single static binary

Server, UI, agent and relay ship as one redoor binary. Copy it anywhere and run.

One click updates

Hit Update in the web UI, or run redoor upgrade to replace the binary and restart its services in place.

Systemd & launchd

redoor server systemd install --start writes and enables the service for you, with or without root.

Get started

Up and running in a minute

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.