How to do common things in the app — one page, scannable. For installation, see the per-OS guides: Windows · macOS · Linux. For the architecture or build process, see ARCHITECTURE.md and BUILD.md.
- Your servers live as profiles in the sidebar; double-click one to open a tab.
- Tabs live in panes, and panes can be split any number of times (tmux-style).
- Workspaces snapshot your tabs + layout for one-click restore (and can auto-restore on launch).
- Credentials are encrypted at rest. Each profile can have an associated VPN that auto-connects before the session opens.
- Open the app. With no tabs open, the pane shows the Welcome placeholder.
- Add a profile. In the sidebar, create a new profile — pick SSH, fill in host + username, choose key or password auth, save.
- Connect. Double-click the profile → a terminal tab opens.
- Split the view. Click the split-right button on the tab bar to put a second pane next to the terminal; double-click another profile to fill it (or hit the + button for a local shell).
- (Optional) Save the layout. Sidebar → Workspaces → Save Current → toggle Default. The app will restore your layout on next launch.
- Use the sidebar's add control to create a New Profile, pick the protocol (SSH, SFTP, RDP, VNC, Web), fill in host, port, and auth, and save.
- Edit: double-click the row's name (or right-click → Edit).
- Delete or rename: right-click a profile or group for the menu.
- Drag profiles between groups; collapse a group with the chevron.
- The search box at the top of the sidebar filters by name, host, protocol, and tag.
- Add tags in the profile editor to filter by role/environment.
- SSH: password or key auth, optional jump host / bastion, optional VPN dependency.
- RDP: resolution / color depth / domain / cert mode (warn · auto-accept · reject).
- VNC: display number, port, encoding (tight / zrle / hextile / raw).
- Web: start URL, per-profile proxy (SOCKS/HTTP), bookmarks, "Ignore TLS cert errors" toggle.
- File menu → Export Profiles… — choose a password → get a
.rcprofilesfile (AES-256-GCM), credentials included. - File menu → Import Profiles… — paste the same password to bring them back.
- Double-click an SSH profile (or right-click an SSH row for Open SFTP Tab).
- Search inside the terminal: the search icon on the toolbar.
- Copy / paste: select text →
Ctrl+Shift+Cor right-click. Paste:Ctrl+Shift+Vor right-click on empty space. - Reconnect is automatic with backoff if the connection drops.
- Jump host is configured on the profile itself; the tunnel is set up behind the scenes.
- Opens with two panes: local on the left, remote on the right.
- Drag files between panes to upload/download. The transfer queue at the bottom shows speed, ETA, and a cancel button per transfer.
- Right-click a file for Copy path, Rename, Delete, Properties (visual chmod).
- Reuses an open SSH connection when one is available, so no second login.
- Double-click a file to open it in the editor (5 MB / text-only).
- Triggered by double-clicking any file in an SFTP pane (remote or local).
- Edits with CodeMirror syntax highlighting; unsaved changes show a
•in the tab title. - Save:
Ctrl+S— writes straight back over SFTP (or to disk for local files). - Closing a dirty editor tab prompts for confirmation.
- Renders inside the app when guacd is reachable on
127.0.0.1:4822. Falls back to an external FreeRDP window automatically when guacd isn't available. - Per-profile: resolution (1024×768 → 1920×1080 → custom → auto), color depth, domain, cert mode.
- Built-in noVNC over a local WebSocket↔TCP bridge — no separate
websockifyneeded. - Password prompt on first connect; saved to your OS keychain after.
- Open device or cloud management UIs (iDRAC/iLO/BMC, ESXi/Proxmox, switches, firewalls, cloud consoles) in a tab, via a sandboxed embedded browser.
- Address bar, back/forward/reload/stop, bookmarks dropdown, and a per-profile proxy
(e.g.
socks5://127.0.0.1:1080for an SSH tunnel to a bastion). - Self-signed / invalid cert? A browser-style "Your connection is not private" prompt appears with cert details. Choose Back to safety or Proceed anyway — the latter trusts the origin for this session only. For permanent per-profile trust, toggle Ignore TLS certificate errors in the profile editor.
- Built-in document viewer: PDFs render via Chromium's PDFium; JSON and Markdown files are formatted in a script-disabled sandbox iframe.
- The terminal
+button on any pane's tab bar opens a real local shell (PTY). - Click it again to open another independent shell.
- Drag to reorder within a pane.
- Drag onto another pane to move the tab there — works at any nesting depth.
- Double-click the title to rename inline.
- Right-click for the context menu: Rename, Pin, Move to Split Right/Down, Close.
Each pane's tab bar has three layout buttons:
| Button | What it does |
|---|---|
| ▥ Split right | Splits the pane horizontally; the new (empty) pane becomes active. |
| ▤ Split down | Splits the pane vertically. |
| ✕ Close pane | Drops the pane's non-pinned tabs and collapses it into its sibling. |
- Splits nest arbitrarily — split a pane that's already inside a split, and again, …
- Resize by dragging any divider; each divider is independent.
- An empty pane shows the Welcome placeholder. Closing the last tab of a pane auto-collapses it.
- Sidebar → Workspaces view lists saved layouts.
- Save Current snapshots the current tabs and pane tree as a workspace.
- Restore replaces your current tabs with the workspace's.
- Mark one as the Default (star) — it restores automatically when the app launches.
- Open the VPN tab from the sidebar's VPN section (or the VPN status badge in the title bar).
- Add an OpenVPN
.ovpnor WireGuard.conf; save your username and password for OpenVPN if needed. - Auto-connect before session: in a profile, pick a VPN and turn on auto-connect — the app brings the VPN up before opening the connection (or prompts you if it's down).
- The status badge shows assigned IP, current state, and the active VPN profile name.
The app shells out to system tools (
openvpn,wg-quick) and uses passwordlesssudo -n— see the per-OS install guides for setup.
- File / View menu → Connection History opens the audit tab.
- Filter by protocol, host, server name (profile), or a date range.
- CSV export for sharing or longer-term tracking.
- Every connect / disconnect is logged to a local SQLite database — separate from the sidebar's in-memory "History" view.
| Where | How to copy / paste |
|---|---|
| Inputs (profile editor, search boxes, address bar) | Ctrl/Cmd+C / V / X / A, or right-click for the menu |
| Plain text (sidebar labels, status bar, document viewer) | Select with mouse → right-click → Copy |
| Web console pages | Right-click — Cut / Copy / Paste / Select-All / Copy Link for hyperlinks |
| SSH and local terminal | Ctrl+Shift+C / Ctrl+Shift+V, or right-click (selection → copy, none → paste) |
| SFTP file rows | Right-click → Copy path |
| Action | Shortcut |
|---|---|
| Copy / Paste / Cut / Select All (inputs) | Ctrl/Cmd+C / V / X / A |
| Terminal copy / paste | Ctrl+Shift+C / Ctrl+Shift+V |
| Find in terminal | Ctrl+F |
| Save (editor) | Ctrl+S |
| New local terminal | The + button on a pane's tab bar |
| What | Location |
|---|---|
| Profiles, workspaces, history DB | Windows: %APPDATA%\remotecommander\ · macOS: ~/Library/Application Support/remotecommander/ · Linux: ~/.config/remotecommander/ |
| Credentials | OS keychain (keytar) → Electron safeStorage-encrypted file fallback |
| Connection-history audit log | SQLite database inside the folder above |
Updating the app preserves all of this — see the Updating section in each install guide.
- Terminal feels slow under
npm run dev? Use the production build —npm run build && RC_ENABLE_GPU=1 npm start(see BUILD.md). - Web tab won't load a self-signed cert? See the "Self-signed / invalid cert" note under Web console above — proceed via the on-screen interstitial, or toggle Ignore TLS certificate errors in the profile for permanent per-origin trust.
- VPN won't connect from the app? The app uses
sudo -n— set up passwordlesssudoforopenvpn/wg-quickper the install guide for your OS. - RDP shows the FreeRDP window instead of the in-tab view? That's the fallback — the app
couldn't reach guacd on
127.0.0.1:4822. Install guacd (Docker is easiest) and reconnect. - Lost everything after reinstalling? You shouldn't — installers update in place and your
data is in the user-data folder above. If it really is gone, restore from an exported
.rcprofilesbackup.
- Install / update: Windows · macOS · Linux
- Architecture & extension recipes: ARCHITECTURE.md
- Building from source & releasing: BUILD.md
- What changed in each release: CHANGELOG.md