Skip to content

Promptly v1.1.0

Choose a tag to compare

@github-actions github-actions released this 18 Oct 20:59
· 9 commits to main since this release
512b4fc

Before you update: passwords and private keys saved by 1.0.0 or 1.0.1 aren't carried over, because they are now kept encrypted on your device. After updating, type the passwords again and re-import the keys. On Linux, Promptly now needs libsecret.

  • When a connection fails, Promptly now says what happened in plain words and what to try, such as "Nothing is answering on port 22: check the port number, and that the SSH server is running". The technical reason is still there under Details. A login the server refuses says which ways in it accepts, and an SSH agent that can't be used says why.
  • A host set to Password now also signs in to servers that only ask for the password through their own login prompt (PAM). The saved or typed password answers that one question; any further questions, such as a two-factor code, are shown to you as usual.
  • Setting a host's Keep-alive to 0 now really turns keep-alives off, as the host form says.
  • Groups can set a default port and jump host as well as a user and key. Hosts left on port 22 use the group's port, and hosts without a jump host use the group's. A group inside another group takes the outer group's defaults for whatever it leaves blank. SFTP sync now reaches its server the same way a terminal session does, through the group's defaults and any jump hosts.
  • Hosts have a Tags field, and the search box finds hosts by their tags and notes as well as their name and address.
  • The host form has a Test connection button that runs the real connection steps with the form as it stands, without saving, and hangs up again. It shows what the group fills in: the user, the port, the key and the jump host.
  • A host can be marked as production, with a label. Its sessions get a red bar across the top with the label in words, and on desktop its tabs carry the label too.
  • The dot on a session turns amber and pulses while it reconnects, and says "Reconnecting…", instead of showing grey "Not connected". It stays steady when the system asks for less motion.
  • Opening a group's settings no longer fails, and the hosts list header, host form and connection messages fit on a narrow phone with large text.
  • The terminal bell does something now: the screen flashes briefly, or with reduced motion a thin outline shows instead. In Settings, Terminal, Bell can vibrate a phone instead, or be turned off.
  • Settings, Terminal has Lines to keep for scrolling back: 1,000, 10,000 (as before), 50,000 or 100,000. It applies to sessions opened after the change.
  • The text size is remembered: new sessions open at the size you last zoomed to, and Text size in Settings, Terminal sets it too.
  • Curly, dotted, dashed and double underlines are drawn as such, in the colour the program asks for, so spell-check and error marks in editors look right.
  • A full-screen program that starts redrawing and never says it has finished can no longer freeze the screen: after a moment Promptly shows what it has drawn.
  • File paths and IP addresses in the output can be copied with Ctrl+click or from the right-click menu, as web links can be opened.
  • Pasting text with more than one line shows it first, with how many lines it has, and offers Paste, Paste without final newline and Cancel, since each line runs as a command. It can be turned off in Settings, Terminal. Pasted text also loses any control characters, so a copied snippet can no longer slip commands past a program's paste protection.
  • A server whose host key has changed now gets a full-page warning where Disconnect is the main button, and trusting the new key takes two deliberate steps. Once trusted, the new key replaces the old one everywhere, so the warning no longer comes back on every connect when the old key is still in ~/.ssh/known_hosts. A server offering a different kind of key than the one trusted counts as changed, not as a new server, and Promptly asks servers for the kind of key it already trusts first. Hashed and @revoked lines in ~/.ssh/known_hosts are understood, and one odd line no longer hides the rest of the file. Running snippets on many hosts and SFTP sync say plainly when a key has changed instead of suggesting you trust it.
  • The engine now wipes the passwords, private keys, passphrases and vault keys it holds from its memory once it's done with them, and they never show up in its logs. (Copies held by the app's screens and by the libraries Promptly uses aren't covered.) A host's startup command no longer gets typed again into a persistent tmux session every time it reconnects (it runs once, when the tmux session is made), and two sessions to the same host with Persistent session on each get their own tmux session instead of mirroring one screen. The command-line tool no longer takes the passphrase or recovery code as an argument, where other people on the computer could see it; it asks, or reads an environment variable.
  • Promptly can ask who's there. Before a key is used it asks for your fingerprint, face or device PIN (Windows Hello on Windows), and Lock Promptly in Settings, Security also asks when the app opens and when you come back to it. A check lasts 5 minutes by default, and that can be changed. On Linux, which has no such check for apps, you can set an app passcode instead.
  • Removing a device now really cuts it off from sync. Everything it changes after it was removed is ignored by your other devices, and the next time it syncs it stops and tells you it was removed, keeping everything on it. To sync it again, disconnect it and join the vault again. Its part of the vault is tidied away once another device has kept everything in it.
  • You can re-key the vault: it gets a new key, a new passphrase and a new recovery code, and a removed, lost or stolen device can read nothing written afterwards. Choose Remove and re-key when removing a device, or Re-key on the sync screen. Your other devices ask for the new passphrase once.
  • Hosts and keys have a Keep on this device only switch. Turned on, the host or key (and its saved password or private key) never goes into the vault, and one that was already synced is removed from your other devices but kept here. Keys sync by default.
  • When Promptly asks for a key's passphrase, Remember passphrase (on unless you turn it off) saves it with the key, encrypted like your other secrets. It syncs with the key, or stays on this device with a key kept on this device only. A saved passphrase is used for connecting, reconnecting, running snippets on many hosts and syncing with your own server. Importing a key can save its passphrase too, and Forget saved passphrase in the key's menu removes it.
  • A key's menu can show its public key as a QR code, install it on a saved host in one step (adding it to ~/.ssh/authorized_keys only if it isn't there, and making the folder and file if needed), and export the private key, after a warning, optionally locked with a new passphrase.
  • The Keys page no longer says private keys stay on this device. They are kept encrypted, and with sync on they go to your other devices in the vault unless you keep a key on this device only.
  • Setting up a vault now says plainly, on both the passphrase and the recovery code steps, that losing both means the data in the vault is gone for good.
  • The join code for adding a device is shown full screen over a dimmed background, counts down from 60 seconds and closes by itself, and closes at once if you switch apps. Copy it as text and paste it on the new device with Use a join code instead to join without typing the passphrase. Scanning it with a camera isn't available yet.
  • The command-line tool can list and remove devices (promptly devices list, promptly devices remove, with --rekey to re-key too) and re-key the vault (promptly rotate-dek). It also keeps anything marked "this device only" to itself.
  • Sync is sturdier. A file from another device that can't be read yet (still copying, not downloaded from iCloud, or damaged) no longer holds up everything after it: the rest applies, and that one is read again each time until it comes through, so nothing is lost. Promptly syncs when you come back to the app, and pulling the Hosts list or the sync screen down syncs straight away. After a failure it waits longer between tries, up to an hour, and Sync now starts over. If the vault's passphrase was changed on another device, its folder was deleted, or it was changed by a newer Promptly, sync pauses and the sync screen says what to do, including setting the vault up again from this device. A new vault file never overwrites one already in the folder.
  • Files on a phone: upload files from the phone (several at once) into the folder you have open, download a file to save it or send it on from the share sheet, and open a file in another app. Every transfer shows its progress and can be stopped, on computers too.
  • The keyboard bar is yours to arrange: Settings, Keyboard bar picks the keys and their order, with F1 to F12, Insert and more symbols to add. Tap Ctrl or Alt twice (or hold it) to lock it on. Hold an arrow key and slide to keep moving. Ctrl or Alt with an arrow, Home, End or the page keys now sends what programs expect, so Ctrl+Left jumps back a word.
  • A new user guide covers installing Promptly and every feature, step by step, and User guide in Help now opens it.
  • On Android, open sessions keep running while Promptly is in the background, with a notification saying how many are open ("Promptly: 2 sessions open"). It goes away when the last session ends.
  • On a phone, a session whose connection dropped while you were in another app reconnects as soon as you come back, instead of waiting for its next try, and lands back in its tmux session when Persistent session is on.
  • A host deleted on one device while another device was using it stays deleted after they sync. Before, it could come back as a blank record that emptied the whole hosts list on every device. If the app ever meets a host, group, key or snippet it can't read, it now leaves that one out and shows the rest.
  • On a computer, copying a file between the two panes asks before replacing a file with the same name, as the phone already did. A copy is written beside the target and only takes its place once it is complete, so stopping a copy or losing the connection part way leaves the original file as it was. Downloaded files keep their permissions on the server, so a private key stays private, and a server can no longer save a download outside the folder you picked by giving a file a name like ../../.bashrc.
  • While the app is locked, its keyboard shortcuts and the Mac menu bar do nothing, so a locked session can't be pasted into or closed. With the app lock on, the app switcher shows a blank picture instead of your terminal. Showing the join code, re-keying the vault and removing a device ask you to unlock first. A copied recovery code, join code or private key is cleared from the clipboard after a minute, or when you come back to Promptly if it was in the background then.
  • Ctrl+click (or a tap on a phone) only opens web and email links from the terminal. Other kinds of links, such as file: or links that start another app, are copied instead. When a link's text on screen doesn't match where it really goes, Promptly shows the real address and asks first.
  • Accepting a server's new key now always replaces the old one, even when the host's name is written with different capitals in different places ("Server" and "server"). Before, the old key could stay trusted, and a changed key on a host with capitals in its name could be shown as a brand-new server instead of a warning.
  • Snippets now update when another device changes or deletes them, so an old copy is no longer saved back over the newer one. Deleting a saved password removes it from the sync vault too, even while sync is off, so it doesn't come back when you join again. Joining sync or unlocking it no longer sends this device's older passwords over newer changes made on another device. And if the system keyring can't find Promptly's key for a database that already uses one, Promptly now says the keyring refused instead of making a new key, which set your data aside and started the app empty.
  • The app no longer freezes while a sync runs over a slow connection: lists and saves don't wait for vault files to download or upload. Turning sync off while a sync is running now waits for it to finish, so sync doesn't turn itself back on. A server that sends output faster than the terminal can show it is now held back instead of filling up memory.
  • Closing a local shell with exit now ends its tab even if a job started from it is still running, and on Windows a finished shell no longer leaves its tab open.
  • Port forwards set to start on their own now come back after a dropped connection reconnects, instead of failing with "port already in use".
  • The Files screen keeps working after its session reconnects: browsing, saving an open file and copying carry on over the new connection instead of failing.
  • On Android 9 to 11, Back on the first page of a tab now puts Promptly in the background instead of closing it, so open sessions stay open, as they already did on Android 12 and later. Promptly's data is also left out of Android backups and phone-to-phone transfers: it is locked to this phone, so a restored copy could not be opened. Use sync to move hosts and keys to a new phone.
  • Keyboards other than US English type properly. On a Mac or iPad, Option types the characters your layout puts on it, such as @ with Option+L on a German keyboard, as the Mac's own Terminal does; turn on Option works as Alt in Settings, Hardware keyboard for emacs-style Alt shortcuts. On a Mac, tabs are now Cmd+1 to Cmd+9, since Option+3 types # on a UK keyboard. On Windows, AltGr characters such as @, € and ą type as themselves instead of a control code. Alt+Backspace, Alt+Enter, Alt+Tab and Alt+Escape now send Alt as other keys do, so Alt+Backspace deletes a word.
  • The command-line tool is safe to run again after something goes wrong. promptly devices remove --rekey checks the new passphrase before removing anything, so a passphrase it can't use no longer leaves the device removed and the vault key unchanged, and running it again on a device that was already removed goes on to re-key. promptly ssh-config --keys-dir never overwrites a file that holds something else, such as your own ~/.ssh/id_ed25519: the key gets the next free name instead. Key files it writes are always readable only by you, and it no longer changes the permissions of a folder that was already there.
  • promptly ssh-config writes a file ssh always accepts: names with spaces, quotes or apostrophes are quoted so ssh reads them back exactly, IPv6 addresses in forwards are bracketed, and two hosts with the same name get separate entries. On Windows the command-line tool keeps its files in %APPDATA%\promptly-cli, and it can ask for a passphrase even when its input is piped in. The privacy notes now say that the list of trusted servers is encrypted, and iPhone and Mac say why Promptly asks to use the local network.
  • On a touch screen, a tap is a click in programs that use the mouse, such as vim, tmux and htop. Tapping a link, file path or IP address offers to open or copy it, a double tap selects a word to copy, pinching changes the text size (and it is remembered), and a two-finger swipe sideways goes to the next or previous session.
  • Saved passwords, private keys and the key to your sync vault are now encrypted on your device, with a key kept in the system's secure storage (Keychain, Android Keystore, Windows Credential Manager or the Linux keyring). On a Linux computer with no keyring they stay as owner-only files, and Settings says so. Linux builds now need libsecret. Passwords and keys saved by 1.0.0 or 1.0.1 aren't carried over: type the passwords again and re-import the keys.
  • Everything else Promptly keeps on your device (hosts, groups, keys, snippets, settings) is now encrypted too, with the same key. On a Linux computer with no keyring it stays unencrypted, and Settings says so; installing a keyring encrypts it the next time Promptly starts. The promptly command-line tool's own copy is encrypted as well, so it opens only with the vault's passphrase or recovery code.
  • The Remove device message and the privacy policy now say that removing a device or changing the passphrase does not lock out a device that has already joined. For a lost one, cut off its access to the vault's storage and change the passwords and keys it had.
  • Windows has an installer. It installs for you alone, with no administrator prompt, and adds Promptly to the Start menu and to Settings, Apps for uninstalling. The zip is still there for anyone who prefers it.
  • Promptly can tell you about new versions. Press Check on the About page, or turn on Check for updates automatically in Settings to have it look once a day (off by default). On Windows, when installed with the installer, Update and restart installs the new version and opens it again; elsewhere it opens the download page.
  • Search highlights the match it is on in solid yellow, with the other matches in a softer yellow, so the current one is easy to spot. Searching for text that repeats inside itself, such as "22" in "222", no longer shows "0 of 1" or a half-highlighted match.
  • Hosts have a None authentication option for servers that let you in without a password or key, such as Tailscale SSH. Ask each time now goes straight in on those servers too, instead of prompting.
  • The mouse works in full-screen programs that ask for it, such as vim with mouse=a, tmux and htop: clicks, drags and the wheel go to the program. Hold Shift to select text or scroll as before.
  • Sync no longer loses changes when a synced folder delivers files out of order, or when a device leaves the vault and joins again. Removing a device waits until all of its changes have arrived, and changing the vault passphrase can no longer leave the folder without its key file.
  • Cancelling an SSH connection really stops it. Checking a new server's fingerprint has no time limit, a reconnect is no longer undone by the old connection closing late, and Stop on automatic reconnect stays stopped.
  • The text editor keeps typing done while a save is in progress, and Android's Back button asks before throwing edits away.
  • A host with "remember password" off saves properly, and a host in a group can leave User blank to use the group's.
  • Imported PuTTY and PEM keys keep their passphrase. CSV passwords keep their spaces. Jump hosts from ~/.ssh/config that Promptly cannot follow are reported instead of being skipped silently.
  • On a phone keyboard, backspace erases a whole emoji and keeps working on a command recalled from history. A big paste no longer freezes the app while a program is busy.
  • File permissions keep their special bits, Windows paths rename and navigate in the right folder, port forward rows stay in place after one is removed, and exported keys with the same name no longer overwrite each other.
  • On desktop, the menu bar is slimmer and its menus open below it instead of over it, rows are more compact, and shortcuts no longer touch the menu's right edge. The nine Tab entries moved into a View, Go to tab submenu. The Help page's shortcut list no longer runs keys into their descriptions, and on a phone the host editor picks how to sign in from a list instead of buttons squeezed so tight their words broke. Session text has a small margin on the left instead of touching the edge.
  • Settings that make sense everywhere now sync: the app look, the terminal theme, the bell, the lines kept for scrolling back, the paste warning, letting programs copy to the clipboard, and showing which hosts are up. The text size, the keyboard bar, the security settings and the update check stay on each device.
  • Servers you trust in ~/.ssh/known_hosts now sync to your other devices too. Promptly adds them to the vault the first time it connects or syncs, and again when the file changes. Hashed, wildcard and @revoked lines stay in the file and count only on that computer.
  • Everything in the vault now remembers when it was made and when it last changed, the same on every device, ready for a history view.
  • The command-line tool works on a vault on your own server as well as in a folder: give it sftp://user@host/path. It logs in with --identity, a password from PROMPTLY_SSH_PASSWORD, or your SSH agent, and the server must already be in ~/.ssh/known_hosts.
  • The list of servers you trust, kept in Promptly's data folder, is now encrypted with the same device key as your saved passwords. On a Linux computer with no keyring it stays plain text, like OpenSSH's own.
  • On a phone, swipe a host to the right to connect or to the left to edit it. Press and hold a host to select it, then tap others to pick several, and delete them or move them to a group in one go. Select in a host's menu does the same on desktop.
  • Groups in the hosts list fold away with a tap on their name, and stay folded the next time you open Promptly. The add button offers a host, a group, or importing hosts.
  • The Sessions tab shows how many sessions are open, and on a phone you can swipe a session away to close it.
  • Choosing a sync passphrase shows how hard it is to guess, with advice in plain words, instead of asking for at least eight characters. Only passphrases that would be guessed quickly are refused, and Promptly says why. The command-line tool uses the same check.
  • Settings has a Hardware keyboard section: Caps Lock types Escape, handy in vim, and on iPad and Mac Cmd works as Ctrl in the terminal.
  • On a Mac, Promptly's menus are in the menu bar at the top of the screen, with the usual Promptly, Window and Help menus. Windows and Linux keep the menu bar in the window.
  • About, Licences now includes the notices for OpenSSL and SQLCipher, which the engine is built with.
  • On a narrow phone with large text, the session bar puts Snippets and Port forwards under a More button, and the sync set-up buttons and the card shown when a session ends no longer run off the screen. A host's last-connected time sits beside its name.
  • On a computer you can type with an input method: Chinese, Japanese and Korean input, and accents from dead keys or a compose key (ibus and fcitx on Linux, and the macOS and Windows input methods). What you're composing shows underlined at the cursor, with the list of choices beside it, and is typed once you pick it. Ordinary typing works as before.
  • On a phone or tablet, Keyboard suggestions and autocorrect in Settings, Terminal lets the keyboard suggest and correct words. It's off by default, as before.
  • Settings, Terminal, Font picks the terminal's font: the built-in JetBrains Mono, a monospaced font installed on your computer or Android phone, or a font file you add, which Promptly copies into its data folder.
  • Nerd Font icons in prompts and editors show up: from the font itself if it's a Nerd Font, or else from the symbols-only Nerd Font if it's installed, or from a Nerd Font you added.
  • Ligatures in Settings, Terminal draws pairs such as -> and != as one symbol in fonts that have them. It's off by default.
  • The terminal draws again only the lines that changed, instead of the whole screen each time, and a line that just moved up as the screen scrolled isn't laid out again. What you see is the same.

Installing. Linux: the .deb installs with your package manager, or unpack the tarball and run ./promptly. Windows: run the -setup.exe installer (later updates then install from inside the app, under Settings, About), or unzip the zip and run promptly.exe; the first run shows SmartScreen's "Windows protected your PC" because the build is not signed with a bought certificate, and More info, then Run anyway, gets past it. The zip carries the Microsoft C++ runtime it needs; if Windows still reports a missing .dll, install the Visual C++ Redistributable (x64) once. macOS: open the .dmg and drag Promptly to Applications; the first launch is blocked because the build is not signed with an Apple Developer ID, so open System Settings, then Privacy & Security, click Open Anyway next to the line about Promptly and confirm with your password (once). SHA256SUMS lets you check a download.