# MrTerm A modern SSH, SFTP and RDP client for Windows and Arch Linux / CachyOS. All your servers live in one place and open in tabs: terminals, file transfers and remote desktops. MrTerm is available in **English** and **German**. It follows your system language by default, and you can change it under **Settings → Language**. ## Download & installation Get the latest version from the [releases page](https://git.mrblake.cc/MrBlake/MrTerm/releases). **Windows** - `MrTerm-Setup-.exe`: installer (recommended) - `MrTerm--portable.exe`: portable, runs without installation **Arch Linux / CachyOS** - `MrTerm-.pacman`: install with ```sh sudo pacman -U MrTerm-.pacman ``` - `MrTerm-.AppImage`: make it executable (`chmod +x`) and run it Optional packages on Linux: ```sh sudo pacman -S freerdp gnome-keyring # use kwallet instead of gnome-keyring on KDE ``` `freerdp` is needed for RDP connections. `gnome-keyring` or `kwallet` lets MrTerm encrypt your saved passwords and keys. ## Features - **Hosts**: nested groups, tags, colors, search and Quick Connect (`user@host:port`, `rdp://host`) - **SSH terminal in tabs**: password, key, SSH agent, keyboard-interactive/2FA, jump hosts (ProxyJump chains), startup command, environment variables, search, zoom and several color schemes - **SFTP**: two-pane file browser (local ↔ remote), drag & drop, recursive folders, rename, delete, chmod and progress display - **RDP in a tab** right inside MrTerm (Windows: `mstsc`, Linux: FreeRDP), or in a separate window if you prefer - **Keychain**: generate Ed25519/ECDSA/RSA keys, import existing ones and copy the public key - **Port forwarding**: local (-L), remote (-R) and dynamic/SOCKS5 (-D) - **Snippets**: save frequently used commands and send them to a terminal with one click - **Known hosts**: MrTerm warns you if a server's host key changes - **History** of recent connections - **Import** from `~/.ssh/config` and from **Devolutions Remote Desktop Manager** (`.rdm`/XML, JSON or CSV) - **Backup** export and import - **7 app themes** (Midnight, Navy, Nord, Dracula, Catppuccin, Forest, Light) plus a custom accent color - **Encrypted vault** using your operating system's keyring (Windows DPAPI, Linux libsecret/KWallet) - **App lock** with a password and/or a FIDO2 security key such as a YubiKey. The vault is then additionally encrypted, and it can lock automatically when you're inactive - **Automatic updates**: MrTerm checks for new versions on startup and can install them for you ## Getting started 1. Click **New host**, enter the address, username and password or key, and click **Save**. 2. Double-click the host to connect. SSH hosts open a terminal, RDP hosts open a remote desktop tab. 3. Right-click a host for more options, such as opening SFTP, duplicating it or copying its address. For a quick one-off connection, press `Ctrl+Shift+K` and type `user@host` (or `rdp://host`). ## Keyboard shortcuts | Shortcut | Action | |---|---| | `Ctrl+Shift+K` / `Ctrl+Shift+T` | Quick Connect / command palette (outside the terminal also `Ctrl+K`) | | `Ctrl+Shift+W` | Close tab | | `Ctrl+Tab` | Next tab | | `Ctrl+1..9` | Switch to tab | | `Ctrl+Shift+C` / `Ctrl+Shift+V` | Copy / paste in the terminal | | `Ctrl+Shift+F` | Search in the terminal | | `Ctrl` + `+` / `-` / `0` | Font size | | `Ctrl+Shift+L` | Lock MrTerm | `Ctrl+W`, `Ctrl+K` and `Ctrl+T` still reach the terminal, so editors like nano work as usual. ## App lock Under **Settings → App lock** you can protect MrTerm with a password, one or more FIDO2 security keys (e.g. YubiKey), or both. Once a method is set up: - MrTerm starts locked, and your hosts, keys and passwords stay encrypted until you unlock it. - Lock it any time with the lock icon in the title bar or `Ctrl+Shift+L`, or let it lock automatically after a period of inactivity. - Open sessions keep running in the background while MrTerm is locked. Security keys need to support the *hmac-secret* (PRF) extension, which YubiKey 5 and most current FIDO2 keys do. Touching the key is enough, no PIN is needed. On Linux, the key must be accessible to your user. This is the default on Arch/CachyOS. **Keep in mind:** if you forget the password and lose all registered security keys, your vault cannot be recovered. Setting up a second unlock method is a good idea. ## Updates MrTerm looks for updates on startup. You can also check manually under **Settings → Updates**. When a new version is available, click **Install now** and MrTerm will download the right package for your system and restart. ## Troubleshooting - **"Vault not encrypted"** (Linux): install `gnome-keyring` or `kwallet` and restart MrTerm. - **RDP doesn't work** (Linux): install FreeRDP with `sudo pacman -S freerdp`. Under **Settings → RDP** you can see which client MrTerm uses and choose another one. - **RDP tab stays empty**: turn off *Show RDP connections as tabs* under **Settings → RDP** to use a separate window instead. --- ## For developers ```bash npm install npm start ``` In VS Code terminals, unset `ELECTRON_RUN_AS_NODE` first. **Building packages** - Windows: `npm run dist:win` (on Linux, this needs `wine`) - Arch/CachyOS: `npm run dist:linux` If the build fails with `EACCES: permission denied`, some files in `node_modules` belong to root. Run `sudo chown -R $USER: node_modules` and don't run npm with `sudo`. **Publishing a release**: `./scripts/release-all.sh` asks for the version and release notes, commits and pushes the version, builds Windows + Arch/CachyOS and uploads everything to Gitea. It reads the token from `GITEA_TOKEN` or from `.gitea-token`, which is not committed. **Translations** live in [`src/i18n.js`](src/i18n.js). The English text in the code is the key. To add a language, add a dictionary and list it in `LANGUAGES`. To regenerate the icons after changing the logo, run `npx electron scripts/make-icons.js`.