# 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) - **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+W`, `Ctrl+K` and `Ctrl+T` still reach the terminal, so editors like nano work as usual. ## 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`.