remote-file-manager GitHub

A two-pane file manager for the server you are SSH'd into.

Run rfm in any folder on a remote machine and get a browser UI for browsing, editing, moving and diffing files. No agent, no daemon, no account.

localhost:8000/file-explorer
/srv/app/config
  • ..
  • certsdir
  • nginx.conf2.1 KB
  • app.env412 B
  • reload.sh318 B
/srv/app/backup/2026-09-26
ViewEditCopy →Move →RenameDelete
main · 2 changedCopied 1 item
remote server
$ cd /srv/app
$ rfm
Remote File Manager v0.10.2
Listening on http://localhost:8000
serving /srv/app

Dual pane, keyboard first

Arrow keys, Space to select, Tab to switch panes, one command bar to copy or move between them.

Edit in place

Syntax highlighted editor with line numbers and auto indent. Ctrl+S writes the file back to disk.

Git built in

Branch and working tree status, commit log, and diffs inline or side by side. Compare any two commits.

Find anything

Ctrl+P opens a fuzzy search over every file below the served directory. Enter opens it, Shift+Enter reveals it in the explorer.

See it rendered

Markdown with tables, HTML, images, video, audio and PDF preview inline. Light and dark themes follow your system.

Worktrees

Every worktree of the repository is listed with its branch. Switch between them from the app bar and the server serves that checkout.

Paste to upload

Paste a screenshot from the clipboard or drop files into the upload dialog. Download single files or a zip of a selection.

Meant to sit behind SSH, not on the open internet.

rfm has no accounts or passwords of its own. Keep its port closed to the outside world and reach it through the port you forward, so the SSH key you already use is the whole login.

  1. Forward a portssh -L 8000:localhost:8000 user@server
  2. Start it where the files arecd /srv/app && rfm
  3. Open it locallyhttp://localhost:8000/file-explorer

Every path is resolved inside the folder you started in. Requests that try to climb out of it are rejected. Stop the process and the interface is gone.

Install

curl -fsSL sobanieca.github.io/remote-file-manager/install.sh | bash

A single binary for Linux and macOS (x64 and arm64), no runtime needed. Change the port with rfm -p 5432, update with rfm update.