Her er 85 versioner af Voltius, fra 12. juni 2026 til den aktuelle 0.63.1. Hver version linker til udgiverens egne installationsfiler.
| Version | Dato | Størrelse | Filer |
|---|---|---|---|
| 0.63.1Nyeste | 24. oktober 2026 | — | 64-bit EXE (NSIS)ARM64 EXE (NSIS) UdgivelsesnoterChanged
- On Android, every search field (Snippets, Keychain, Known Hosts, Logs, Port Forwarding, the host and snippet pickers, Processes) now uses the same rounded search bar as Hosts (#710)
- The Android app is now built with R8, which shrinks and optimizes its code (#712)
Fixed
- On Android, unlocking no longer fails with "Keychain read error" after reinstalling the app, for example when moving from the GitHub APK to the Google Play build. Android restored the old keychain file, which the new install can't decrypt; Voltius now sets it aside and opens a fresh one, and the keychain is no longer included in Android backups or device transfers (#713)
- The session type badge no longer overflows the pane header and the drag preview |
| 0.63.0 | 23. oktober 2026 | — | 64-bit EXE (NSIS)ARM64 EXE (NSIS) UdgivelsesnoterAdded
- You can delete your Voltius account from the app: Settings → Account on desktop, and the Account page on Android. You confirm by typing your email. Your cloud account, encrypted vault and sync data are deleted, any subscription is cancelled, and this device is signed out. If you are the billing owner of a team that has another Owner, they take the team over; if you are its only Owner and it still has members, you are asked to make someone else an Owner first. You can also request deletion at voltius.app/delete-account (#705)
- Portuguese, in three variants: Portuguese, Brazilian Portuguese and European Portuguese. Thanks to @heliopereira (#706, #707)
Changed
- The macOS app is now signed with an Apple Developer ID and notarized by Apple, so it opens without a security warning. After updating, macOS asks once for access to the keychain (#704) |
| 0.62.0 | 22. oktober 2026 | — | 64-bit EXE (NSIS)ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Sessions running on your other devices now appear on Android as the same cards as on desktop, with the device, how long ago it was active, and the working directory. Long-press a card to join the session or kill it. Killing waits 5 seconds and can be undone (#702)
- On Android, opening or leaving a folder in Hosts, Snippets, Keychain, Port Forwarding and SFTP now slides the new level in from the side, instead of switching instantly (#703) |
| 0.61.1 | 22. oktober 2026 | — | 64-bit EXE (NSIS)ARM64 EXE (NSIS) UdgivelsesnoterAdded
- The Android app now feels like a native app. It draws edge to edge around the status bar, notch and navigation bar, and the layout makes room for the keyboard. The system bar icons follow the Voltius theme, and launch shows a navy splash with the bolt instead of a white flash. Text follows the system font size, and the page no longer zooms, overscrolls or flashes on tap like a website (#666–#669, #673)
- Back on Android no longer quits the app. One Back gesture works across pages, settings and sheets, with predictive back previews. Back on the home screen sends Voltius to the background, and SSH sessions stay connected there (#670–#672)
- Material motion and touch feedback on Android: page push and pop transitions, a Material 3 navigation bar that fades between tabs, ripples and pressed states, haptic feedback, and bottom sheets you can drag from anywhere and fling to dismiss (#675, #676, #679–#682, #697)
- Redesigned Android screens. Hosts has a large title, a pill-shaped search field, long-press actions and an extended + button. All tap targets are at least 48 dp. Settings use Material lists, and notifications open in a bottom sheet (#684, #687, #689, #690)
- The Android terminal has 48 dp extra keys with swipe-up alternates. Swipe to switch sessions, and pick a host or local shell for a new session (#685)
- Android SFTP uses a single pane with a selection mode and pull to refresh. Errors appear as snackbars with Retry (#683, #686)
- On Android, Host, Key, Identity and port-forwarding forms save as you type, with no Save button. Back asks before discarding a form that can't be saved yet (#688)
- A Vault settings page on Android lets you rename a vault and manage sharing, members, roles and security from the phone (#701)
- Material You colors from your wallpaper, a themed app icon and launcher shortcuts to recent hosts on Android (#691–#693)
- Share SFTP files, public keys and snippets through the Android share sheet. The tunnel notification lists active forwards and has a Stop tunnels action (#694, #695)
Fixed
- Selection, link hover and mouse reports landed on the wrong cell in the terminal when UI scale wasn't 100% (#677)
- Turning on the MCP server on desktop synced the setting to Android, which then opened an MCP socket that no client could use. The MCP server is now off on Android, and the Integrations settings are hidden there (#699)
- Refined Czech translations (#696)
- The Docker, Gist Sync, Monitoring, Process Manager and Proxmox plugins are rebuilt with the updated bundler and move to new patch versions. They work the same. 0.61.0 was never published because of this |
| 0.60.0 | 19. oktober 2026 | — | 64-bit EXE (NSIS)ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Teams can have several owners. Owners can grant or remove the Owner role in a member's roles, after a confirmation, and a co-owner can be removed or leave on their own. The team's creator is the primary owner, the account billing sits on, and must hand that over with Make primary owner on another Owner before leaving. On the cloud only the primary owner can hand it over, and the new primary owner's own subscription pays from then on; on a self-hosted server any Owner can. Servers without multi-owner support keep a single owner (#652)
- Native text selection in the Android terminal. Long-press text for the system's handles, magnifier and Copy menu, including across scrollback and with the keyboard up. Soft-wrapped lines copy without a line break, and a long-press on blank space still offers Paste (#656)
- Closing the last terminal returns you to the page you were on, instead of always Hosts. Hosts, Snippets, Keychain and Port Forwarding also reopen the folder you left open (#654)
Fixed
- Switching between saved accounts no longer changes the interface language. The language now stays on the device by default, like the preferred shell and the proxy. This means it no longer reaches your other devices either, so a new install now starts in your system language when Voltius supports it, and in English otherwise. To sync it again, turn on sync for Language in Settings → Appearance (#653)
- A host kept its old OS logo after its OS changed. The OS is now detected again on every SSH connect, an icon you picked yourself stays, and Windows and MikroTik RouterOS hosts are recognised with their own icons (#655)
- Shell integration and session persistence sent POSIX shell commands to MikroTik RouterOS hosts, which typed them into the RouterOS CLI. They are now skipped there, as on Windows |
| 0.59.0 | 18. oktober 2026 | — | 64-bit EXE (NSIS)ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Hold Volume Down as Ctrl in the Android terminal. Turn on Use Volume Down as Ctrl in Settings → Terminal (off by default): while the terminal has the keyboard, Volume Down + C sends Ctrl+C and the volume doesn't change. It combines with the on-screen Alt key. Outside the terminal the button changes the volume as usual (#648)
Fixed
- On self-hosted servers, the invite panel read "1 used · 2 available · 3 total" for an owner with no seat cap and offered Buy seats. Without billing it now reads "1 used · unlimited", and a cap the operator set is still shown and enforced. Buy seats, Manage billing, View all plans and the subscription status are hidden, and reaching the seat limit asks you to contact the server administrator (#649) |
| 0.58.0 | 16. oktober 2026 | — | 64-bit EXE (NSIS)ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Import hosts and keys from ~/.ssh/config through the new OpenSSH source in Import/Export. It follows Include lines, wildcards included, as long as the paths are inside ~/.ssh, and brings in the keys named by IdentityFile. A preview lets you pick the vault and lists what can't be imported: patterns, Match blocks and ProxyCommand hosts. Keys start unchecked when the destination is a team vault. On first run on desktop, the notification centre offers a one-time import
- Keep hosts in step with ~/.ssh/config. This is opt-in and desktop only: turn it on in Settings → Hosts → ~/.ssh/config after a preview of every alias. The sync owns only the fields the config sets (address, port, user, key and jump hosts), and a host's name, notes and everything else stay yours. Synced hosts carry a badge, and their editor shows a "Managed by ~/.ssh/config" banner with Detach. A host is deleted only when no device still has its alias
- Host pickers open with the five most recently used hosts at the top. This covers the SFTP host picker, the key's "Add to host", and snippet targets and remote paths (#643)
Changed
- "Specific connections" in a port forwarding rule now uses the shared host picker, with a filter, folders and recent hosts. Selected hosts show as chips (#644)
Removed
- The SSH Config Sync plugin, which renamed hand-edited hosts back on every sync. Its hosts lose the ssh-config tag and are otherwise unchanged. If you had its sync on, a notice links to the new built-in sync
Fixed
- A host's status dot turned red after a single failed probe, for example right after waking from sleep. A host now shows as down only after probes have failed for 15 seconds, and turns green again on the first success (#646)
- Import/Export menu rows were squashed to 23 px, and the submenu closed as you moved onto it. On mobile, Import/Export now opens from More, where it had no entry point before |
| 0.57.0 | 14. oktober 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Change the master password on a signed-in device without typing the current one. "Forgot it? Confirm with …" in the change-password dialog lets the system confirm it's you (Windows Hello, Touch ID, polkit, or the Android unlock prompt). The server still checks your second factor (#629)
- The sync server emails you when your master password changes (VoltiusApp/server#112)
- Paste an image into an SSH session. When the clipboard holds an image and no text, pasting (Ctrl+V, Ctrl+Shift+V, right-click, or Cmd+V on macOS) uploads it to the host under ~/.cache/voltius/pastes and types its path, so tools on the host such as Claude Code can attach a screenshot. Pasted files are owner-only and removed after 7 days. A toast shows progress with Cancel, Retry on failure, and "Delete from host" once done. Turn it off in Settings → Terminal (#630, by @ghecko)
- Images opened from the SFTP panel or page now show in the editor tab instead of "Binary file — can't edit": PNG, JPEG, GIF, WebP, BMP, ICO, AVIF and SVG, with Fit/100%, zoom, pan, copy and download. Files over 25 MB ask before loading (#634)
- Port forwarding on Android. The Port Forwarding screen lists the session's active forwards, auto-detected ones included, and the terminal's panel row opens it. Tunnels keep running while Voltius is in the background, with a "N ports forwarded" notification that opens the screen (#637)
Changed
- A single click opens a vault folder card; Ctrl/Cmd/Shift-click selects it. SFTP folders still open with a double click
Fixed
- Accounts linked from a local vault, or migrated, had a different team identity on each device, and a master password change could cut a device off from its team vaults. The identity is now stored with the account and survives password changes and linked devices. A device left on the old password after a change made elsewhere opens again at sign-in, and biometric unlock picks up the new password
- In a Proxmox LXC tab opened with pct exec, the Docker panel, process manager, metrics and system info showed, and acted on, the Proxmox host instead of the container. They now run inside the LXC (#642)
- Stopping an auto-forwarded port lasted only until the host's last terminal closed or the app restarted. Stopped ports are now remembered per connection on this device (#632)
- Under tmux with mouse tracking (for example, a pane running Claude Code), the next mouse move cleared a fresh selection, so copy-on-select, Ctrl+Shift+C and search prefill got nothing (#631)
- Ctrl+S in an SFTP editor tab with no loaded text (a binary file, or one still loading) saved an empty file over the original (#634)
- Opening a voltius:// link crashed the Android app (#637)
- The app's own notifications carried a "[Voltius]" tag. Only plugin notifications show a tag now (#635) |
| 0.56.0 | 12. oktober 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Keyword highlighting in the terminal. Words such as error, warning and ok are coloured in command output, in the theme's ANSI colours. It applies to output marked by shell integration. Rules are editable in Settings → Terminal and sync across devices (#317)
- A server that cannot be reached shows as its own state: a grey cloud labelled "Can't reach server", with the reason in the sync menu, the tooltip and Settings → Sync, instead of a red sync error. Background syncs wait and run when the server is back (#619)
- Pause and resume sync from the sync menu, next to "Sync now" (#619)
- On Android, the header sync icon opens a sheet with each provider's status, the reason for a failure, "Sync now" and pause/resume. The icon stays visible while sync is paused, and the cloud sync row on the account page opens the same sheet (#619)
- Removing a saved account asks for confirmation. Signing out asks when this device holds the only copy of the account's data or may be ahead of the server (#622)
Fixed
- Switching accounts deleted the outgoing account's local data and relied on the sync server to bring it back, so an account with no server copy lost its hosts. Each saved account's data now stays on the device across a switch, and switching works without the server (#622) |
| 0.55.0 | 11. oktober 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Passkeys as a second factor for cloud accounts, free on every plan. An account can hold an authenticator app, passkeys, or both, managed in Settings → Account. Voltius opens your browser to create or use a passkey (fingerprint, face, device PIN or a security key) and picks up from there. Sign-in and the master password change offer "Use a passkey" beside the code field. The master password is still required: a passkey replaces the six-digit code, not the password. Self-hosted servers offer passkeys once updated (ghcr.io/voltiusapp/voltius-server:sha-e87034d or newer) and given a WEBAUTHN_RP_ID (VoltiusApp/server#106)
- "Pause sync on this device" in Settings → Sync. A paused device stops background sync with the server until you resume; "Sync now" still works. Team vaults stop updating and do not load at launch while paused (#619)
Changed
- Two-factor settings list each factor separately. Adding a second factor or removing one asks for the master password and proof of a factor you already hold, and removing the last one says it turns two-factor off (VoltiusApp/server#106)
Fixed
- With the server out of reach, Voltius retried every 5 seconds forever and the sync status flipped between syncing and error. It now waits longer between attempts, up to 5 minutes, and tries again at once when the network returns or the app comes back to the foreground (#619) |
| 0.54.0 | 11. oktober 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Two-factor sign-in for cloud accounts, optional and free on every plan. Turn it on in Settings → Account: scan the QR code with an authenticator app, confirm a code, and save the ten recovery codes. Signing in on a new device then asks for a code after the master password; unlocking does not. Self-hosted servers offer it once updated and given a TOTP_ENC_KEY (#615)
- Themes can set the colour of selected text. The theme creator has a "Selected Text" row under Terminal Base; themes that leave it unset look as before (#317)
Changed
- When the server ends this device's session (password changed on another device, two-factor turned on), Voltius says so and offers to sign in again, instead of silently no longer syncing (#615)
- Unlocking a cloud vault no longer signs in to the server again while its session is still valid (#615) |
| 0.53.1 | 11. oktober 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterChanged
- Port Forwarding: the "Active session forwards" header folds the host cards away, so a host with many detected ports no longer pushes saved rules off the page. The header keeps the host count, tunnel total and an error count when a forward failed (#610)
Fixed
- Team vaults: a secret the server refused is no longer shown as saved. The editor goes back to what the server holds (#608)
- Team vaults: a secret that could not reach the server (offline, timeout, server error) stays usable and is sent again until it lands, instead of vanishing at the next vault load (#611)
- Team vaults: saving a port-knock sequence against a server too old to store it now says the server needs an update, and the knock panel explains why instead of offering ports (#608)
- A secret that fails to save during a connect prompt, import, paste, duplicate, copy to vault, undo or plugin key creation shows an error instead of failing silently (#611)
- Creating a host, key or identity whose secret fails to save no longer creates the object again on every autosave (#613)
- A card's "more options" menu stays whole near the bottom of the window, and the terminal status bar menu in the top pane of a split (#610) |
| 0.53.0 | 10. oktober 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Local forwards and SOCKS proxies can be shared with other devices. A rule's new Who can connect choice listens on this computer only, on the whole network, or on one address such as 192.168.1.2 (#607)
- The rule editor shows one line saying where a rule's traffic goes, with the matching ssh command to copy
Changed
- The port forwarding rule editor is laid out as the route traffic takes: your computer, the SSH server, the service. "Apply to" now sits in the SSH server box
- PuTTY imports keep the address each tunnel listens on
Fixed
- A port forwarding rule that cannot start says why on its row, in the rules page, the terminal's Ports panel and on mobile, instead of failing silently |
| 0.52.1 | 9. oktober 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterFixed
- Windows: the app no longer freezes when WSL stops responding. WSL detection now gives up after a few seconds, and the rest of the app (vaults, SSH, SFTP) keeps working without the WSL shell (#605) |
| 0.52.0 | 9. oktober 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Press F2 to rename the selected folder, host, key, identity, snippet, port-forwarding rule or SFTP file in place. The shortcut can be remapped (#600)
Changed
- Edit uses the pencil icon everywhere, and Rename has its own text-cursor icon in the SFTP, folder, session, split-tab and vault menus (#599)
Fixed
- New folders get a default name in the app's language (#602)
- Corrected Czech wording and terminology (#601)
- Long plugin names in the settings sidebar wrap onto a second line instead of being cut off (#604) |
| 0.51.1 | 9. oktober 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterFixed
- App lock now applies at launch: force-closing the app and reopening it after the auto-lock time (or any launch with Immediately) locks instead of signing straight back in. A local account with no saved secrets can no longer be unlocked with any password (#593)
- Typing exit in a PowerShell, cmd or WSL tab on Windows now closes the tab (#594)
- Cancelling an SFTP upload also removes leftover partial files from earlier versions of the same file (#596)
- When a transfer fails after a lost connection, the queue says Retry will resume where it stopped only for destinations that support it (local, SFTP, Docker, and WebDAV/FTP once resume is confirmed) (#597) |
| 0.51.0 | 9. oktober 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Org-enforced lock policy: Business team admins can set a maximum auto-lock time and require Lock vault for every member, owner and admins included. Set it from Members → Security or "Security policy…" in the vault menu (#581)
- On Android, unlocking with system authentication binds the vault key to the device hardware, so the keychain holds only a blob the OS releases after a live fingerprint or screen-lock check (#591)
- Port forwarding: choose Local tunnel, Remote tunnel or Dynamic SOCKS proxy straight from the New Rule menu, the right-click menu or the mobile Add sheet (#589)
Changed
- Terminal output streams as raw bytes over one IPC channel per session instead of JSON events per listener (#580)
- Hidden terminals stop working in the background: only visible terminals refit on window resize, hidden status bars stop their uptime timers and System Metrics streams, and a tab switch re-renders only the two tabs involved (#582, #583, #590)
- Smaller, faster startup: devicon icons are subset at build time, and non-English locales, CodeMirror and the mobile UI load on demand (#584)
- The app ships one crypto backend: aws-lc-rs is gone, and ring handles SSH ciphers and HTTPS (#585)
Fixed
- SSH tabs on hosts without tmux or screen reconnect after a dropped connection instead of closing (#586)
- Old terminal tabs no longer go blank: live WebGL contexts are capped, at up to 14 on desktop and 8 on Android (#576, #578)
- SFTP and FTP list symlinks to folders as folders. Deleting a link to a folder over FTP no longer deletes the files inside the folder it points to (#577, #579)
- App lock fails closed when its marker can't be written or read. With auto-lock set to Immediately, Android no longer shows the unlocked terminal in recents. On Android, logging out now wipes the old account's connections and lock marker (#570)
- Signing out drops the previous account's team lock policy, and the Security panel is hidden for teams you can't manage (#587)
Security
- rustls bumped to 0.23.45 for GHSA-2mjx-qc3c-rqvc (unencrypted TLS 1.3 handshake messages were accepted) (#575) |
| 0.50.1 | 7. oktober 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Port knocking: a host can send a TCP/UDP knock sequence, through its proxy if it has one, before every SSH connect. Set it up in the host's Port Knocking panel; the sequence is stored as a secret and syncs with the connection (#550)
- App lock: lock Voltius by hand, after an idle timeout, or immediately on leaving the app, and unlock with system authentication (Touch ID or login password on macOS, Windows Hello, polkit on Linux, biometrics on Android). The lock survives a restart, and MCP tool calls are refused while locked (#510)
- Invite-link shared terminals are end-to-end encrypted: the host wraps the session key for each admitted guest instead of uploading it to the server (#521)
- docker exec, FTP and WebDAV transfers resume after a dropped connection, like SFTP ones, and FTP and WebDAV panes can copy to and from SFTP panes (#552)
- Czech localization, machine-drafted and awaiting native-speaker review (#346)
- MCP agents can rename the panes and split tabs they opened (pane_rename, tab_rename) (#542)
Changed
- Deciding whether to send a folder as one tar stream takes one listing per directory instead of one request per file (#494)
Fixed
- SSH Config Sync asks each account before importing ~/.ssh/config, instead of importing into whichever account is signed in. Accounts that already sync hosts keep syncing (#557)
- One public key the vault refuses (such as a -> in its comment) no longer stops SSH Config Sync: that host is skipped and an error toast says why (#532)
- exit closes the tab instead of reconnecting on RouterOS, and on persistent sessions to Windows or dropbear hosts (#538)
- Overwriting a file over FTP or WebDAV keeps its permissions, and on Nextcloud/ownCloud its id, shares and versions (#562)
- A folder transfer stuck on a half-open link resumes file by file instead of hanging (#495)
- SFTP in docker exec, nsenter and Proxmox pct exec sessions runs tar, compress/extract and chmod/chown inside the container instead of on the host, and verifies resumed files (#492)
- A folder upload containing a symlink to a parent folder no longer copies the tree over and over (#543)
- Folder uploads report entries whose metadata can't be read, such as dangling symlinks, instead of silently leaving them out (#541)
- A file from a server that reports no modification time is no longer dated 1970 (#556)
- A folder copy whose link dropped while creating folders resumes instead of failing (#548)
- An upload no longer keeps failing after a dropped link left a hidden .voltius-old copy next to the file (#547)
- Resumed transfers check the sha256 of paths containing a backslash or newline (#546)
- Reopening an SFTP channel after a drop can no longer hang, or move a terminal onto another connection (#497, #496)
- Folder cards count items in nested subfolders (#551)
- The local shell list shows each shell once and includes PowerShell (pwsh) and Homebrew shells (#545)
- A submenu that opens to the left no longer covers its parent menu (#540)
- The vault header shows your actual command palette shortcut instead of ⌘K (#536)
- A session that just connected no longer shows a negative uptime (#534)
- The SFTP Size column is wide enough for KB sizes by default (#530)
- The Permissions dialog title shows the whole filename (#527)
- Every settings section uses the full panel width (#525)
- The Import/Export header buttons stay on one line (#523) |
| 0.49.1 | 6. oktober 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterFixed
- The Proxmox panel shows each LXC's memory instead of 0M (#519)
- The Proxmox panel's Restart button restarts an LXC (pct reboot) instead of failing with an unknown-command error (#508)
- The Processes panel's kill buttons and memory column fit inside the side panel instead of needing a sideways scroll (#509)
- A shared-terminal guest's keystrokes, and fast typing on a busy machine, reach the shell in the order they were typed (#518)
- A shared-terminal guest holding control reads "You have control" instead of "Watching" (#516)
- No control toasts on top of the shared-terminal bar's own Grant / Deny or "You have control"; they still show when that terminal is not on screen (#515)
- Snippet choice variables and plugin dropdown settings use the app's themed dropdown instead of a white system list on Linux (#517)
- The SFTP queue's "Resumed at" badge is an icon with a hover card, so it no longer overlaps the transfer status (#504)
- On mobile, the terminal's left margin uses the theme's background color (#502) |
| 0.49.0 | 5. oktober 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- SFTP uploads, downloads and remote-to-remote copies, for both files and folders, survive a dropped connection. They wait up to 5 minutes for the session to come back and continue from where they stopped. A cut-off copy never replaces the real file, and a resumed file is checked end to end before it lands. The queue shows "Waiting for connection…" and where a transfer resumed (#487)
Fixed
- Retrying an SFTP transfer after the session reconnects resumes it instead of failing with "session not found" (#487)
- A folder transfer no longer falls back to file by file for the rest of the connection just because the first tar check got no answer (refused channel, timeout or reconnect). The host is asked again (#478)
- The custom color popover in the folder and role appearance pickers no longer closes the picker when you click inside it (#484)
- The SFTP tab in the right panel no longer scrolls sideways or shows a white square in its corner (#486) |
| 0.48.0 | 4. oktober 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Folders can have an icon and a color. They show on folder cards, in the terminal Snippets panel and in the SFTP host pickers, sync between devices, and carry through export and import (#471)
- Change file permissions and owner in local panes on Linux and macOS, and in WSL folders on Windows. The Permissions column shows there too (#467)
- ZOC Terminal import can auto-extract hosts from the installed app, including from a data folder moved to a custom location (#458, #460)
- Every grid and list card has a ⋯ button that opens its menu, so edit and delete no longer depend on hover (#473)
- Member cards show an edit button, and a member's name saves as you type (#466)
Changed
- Folder transfers stream over SSH instead of building a temporary archive, so copying a large folder no longer fails on a host with a small /tmp. Hosts that cannot stream tar copy file by file, and the transfer says why (#468)
- One click model on every vault tab: a click selects (and follows in the open side panel), double-click or Enter opens or connects, E edits. Pinned hosts and snippets appear once, under Pinned. Snippet and member list rows fit on one line (#475)
- Pinned snippets show the pin icon, like hosts and folders (#473)
- Card grids share one size scale, section headers and empty states across tabs, and snippet folders follow the grid/list toggle (#474, #466)
- Self-hosted: update the server together with the app (ghcr.io/voltiusapp/voltius-server:sha-3501f2a or newer)
Fixed
- macOS: after an update, the keychain asks once instead of once per item. This release asks one last time per item while it merges them into one; choose "Always Allow" (#469)
- When your email address cannot receive mail, the verification banner says so and offers to change it instead of resending (#463)
- Rule names show in full in the port forwarding grid (#472)
- An empty vault shows its empty state and add button on Hosts and Snippets (#472)
- The Logs table columns line up with their headers (#472)
- Dragging files between SFTP panes no longer selects text (#464)
- A member name edit is no longer lost when the panel closes from a click on empty space (#466)
Security
- In a shared terminal, the host now ignores input from guests who don't hold control. Before, a guest without control could type into the host's session (#465) |
| 0.47.0 | 3. oktober 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Import hosts from PuTTY, ZOC Terminal and SecureCRT (#453, #15, #456)
- WebDAV hosts in the file browser (Nextcloud, ownCloud, Synology, TrueNAS, Apache, nginx, rclone): browse, upload, download, rename, delete and edit files. Self-signed certificates are pinned the way SSH host keys are, and a changed certificate asks before connecting (#442)
- Change a remote file's permissions and owner from the SFTP right-click menu, or from the long-press sheet on mobile (#439)
- Team admins can give members a name that every teammate sees in the member list and the audit log. The audit CSV export gains a trailing actor_member_name column (#403)
- On a self-hosted server with HANDLES_FROM_EMAIL on, Account settings say your handle is managed by your organization (#403)
Changed
- Plugins: PluginConnection.connection_type can now be "webdav", and snippet SFTP steps run against FTP and WebDAV hosts (#442)
- Self-hosted: update the server together with the app (ghcr.io/voltiusapp/voltius-server:sha-3897686 or newer)
Fixed
- Termius import works with large databases and with newer Termius versions that keep their data in SQLite (#400, #449)
- The keychain accepts PuTTY .ppk private keys (#455)
- SSH shells open on hosts without base64, such as OpenWrt and other busybox systems (#418)
- System Metrics keep running when you switch between tabs of the same host (#452)
- A member re-invited to a team vault no longer finds it empty. A key rotation racing their join could leave them with a key that decrypted nothing (#438)
- Your other devices now see your team-vault edits right away
- Refreshing a team vault reports failures even when a background refresh was already queued (#412)
- A snippet folder's panel shows the same cloud-sync state as its card (#413) |
| 0.46.0 | 2. oktober 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Connect to a shared team host with your own identity, chosen per host ("Connect as") or as a default for the whole vault. Your pick is stored outside the host, so other members and the shared credential are unchanged. Devices on an older app keep using the host's credential until they update (#387)
- The host picker (SFTP panes, jump hosts, snippet remote path, key export) groups hosts by vault and folder, with an "All vaults" filter; the mobile SFTP sheet gets the same tree with vault chips (#398)
- Clear messages when a self-hosted server has registration or team invites switched off (#401)
Changed
- Persistent sessions on tmux 3.2 and newer now run tmux in control mode: scrollback, drag selection with auto-scroll, Ctrl+F over history, the mouse wheel and mouse apps behave exactly like a plain SSH session. Older tmux keeps the legacy attach, with copy-mode using the theme selection colour (#379)
- Context menus and their submenus stay inside the window
- Plugins: backend commands that now carry error codes (SFTP and others) reject with an Error (BackendError) instead of a string (#395)
- Self-hosted: update the server together with the app (ghcr.io/voltiusapp/voltius-server:sha-b3a7e9d or newer)
Fixed
- Backend errors (vault, secrets, SSH connect and auth, port forwarding, SFTP) are shown in your language instead of English (#395)
- Fast multi-megabyte output bursts no longer lose output on SSH sessions (#379)
- Inside tmux, terminal colour queries report the real theme, so apps such as OpenCode pick the right light or dark palette on tmux 3.2+ (#280)
- Team-vault hosts now appear in the desktop host pickers, and key export for a team key no longer shows an empty list (#398)
- Object editors in a team vault list that vault's folders, not only personal ones (#404)
- A new object created in a folder gets that folder's permission rules (#409)
- Two people editing the same object's permissions no longer overwrite each other's changes (#407)
- Moving an object now warns when the move changes per-member rules, not only role rules (#408)
- Cancelling a move's permission warning puts the saved folder back in the editor (#411)
- On mobile, cancelling a folder move's permission warning no longer shows an error (#410)
Security
- Updated the bundled SSH library (russh) to 0.63.3, picking up fixes for a malicious server opening channels the client never asked for, a memory-exhaustion flood during rekeying, and a crash on a cipher negotiated without a MAC
- Updated pageant to 0.2.3, fixing an out-of-bounds read when talking to a malicious Pageant agent on Windows |
| 0.45.0 | 1. oktober 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Leave a team vault from the vault menu
- Updates are now checked even with auto-download off, so What's New shows a new version; the setting only decides whether it is downloaded (#417)
Changed
- Custom roles, per-member permissions and per-object permissions now need the team owner's Business plan. Below Business, custom roles and permission grants stop working; restrictions stay in place and can be removed. Upgrading restores everything (#419)
- Self-hosted: update the server together with the app (ghcr.io/voltiusapp/voltius-server:sha-b522ae8 or newer, VoltiusApp/server#66)
Fixed
- The owner can delete a team vault from the vault menu
- The vault menu no longer treats the owner as a member while roles are loading, so Delete and Make private show and Leave is not offered
- Every Android screen now shows only the vault on screen (#416)
- Losing edit or View secrets access while an object is open now makes its editor read-only and hides its secrets immediately
- The Logs view shows a converted team vault's full audit trail
- Clicking Invite in vault share search results works again
- The sync, share, notification and account menus and the new-session popover now close and fade the same way; clicking the sync button while its menu is open closes it
- Settings search lists terminal toggles under Terminal instead of Appearance
- System proxy detection and bypass rules: macOS proxy exceptions and simple hostnames, bypass entries with a port, and NO_PROXY now match consistently; the global proxy password survives sign-in and account switches (#396)
- Esc no longer restores a maximized pane, so vim and tmux receive it |
| 0.44.1 | 30. september 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterChanged
- A team vault's name is now the team's name on the server: renaming a team vault renames the team, and the name is no longer saved or synced locally (#415)
- The team list, and commands, snippet variables and workspace tabs for team hosts, now stay in memory only instead of being written to disk (#415)
Fixed
- Team hosts without the Connect permission no longer resolve credentials, and Connect is disabled on their host cards and menus; View and Copy secrets now require Connect, as on the server (#415) |
| 0.44.0 | 29. september 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Per-object permissions for team vaults: allow, inherit or deny access on each host, key, identity, snippet and folder, with new View and Administrator permissions (#405)
- HTTPS proxies for SSH, SFTP and reachability checks, in Settings → Hosts and the host form (#397)
- Translated the first-party plugin panels into all five languages; the plugin i18n API gains plural forms and relative time (#370)
Changed
- Team vault secrets now stay in memory only. Local copies of team passwords are removed on upgrade, since team vaults are online only (#402)
- HTTPS_PROXY/ALL_PROXY and Windows proxy values with an https:// scheme are now used as HTTPS proxies instead of being ignored. A plain proxy set as https:// now fails the TLS handshake instead of connecting directly (#397)
- FTPS on Android now also trusts the bundled webpki root certificates (#397)
- Once a team sets its first per-object rule, members on 0.43.0 or older must update before they can open that team's vault (#405)
Fixed
- Closed localization gaps in the host UI: plural forms, date, number and sort order follow the app language, and search handles the Turkish İ (#385)
- Passed IPv6 destinations to SOCKS5 forwarding correctly (#384)
- Showed the real host-key error behind a jump host and stopped auto-reconnect on it (#384)
- Fixed local copy for links, overwrites and copying a folder into itself (#384) |
| 0.43.0 | 27. september 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Proxy support for SSH, SFTP and reachability checks (#361)
- Relinked imported hosts to keys and identities already in the vault (#375)
Fixed
- Stopped sync from losing or reverting local changes (#367)
- Kept the vault openable after a password change, and refused tampered team rows (#368)
- Fixed legacy terminal encodings, port-forward races and the guest terminal (#366)
- Made SFTP tar transfers, editor reads and file handles robust (#364)
- Stopped SFTP retry storms, stale listings and path bugs (#365)
- Cleaned up tar temp archives after cancelled and failed SFTP transfers (#394)
- Skipped file names the local OS can't hold instead of failing the SFTP download (#376)
- Stopped exporting machine-local key and snippet ids on connections (#393)
- Kept references, large exports and username-less hosts on import (#369)
- Added another account from a modal instead of signing out (#378)
- Let a drag selection over tmux scroll past the viewport (#379)
- Stopped re-downloading updates and honoured auto-download off (#374)
- Kept the app rendered after turning a vault into a team vault (#386)
- Supported keyboard-interactive auth for PAM-only servers (#356)
- Recognised expired passwords and localised password prompts over SSH (#359, #360)
- Opened the host's shell when running as a Flatpak (#358)
Security
- Closed agent-forwarding and SFTP file-name security holes (#363) |
| 0.42.0 | 24. september 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Tar-accelerated SFTP transfers for Windows OpenSSH hosts (#345)
Changed
- Slid side panels in with the terminal's edge instead of wiping them
Fixed
- Let typing leave tmux copy-mode after scrolling up (#344)
- Let the Personal vault become a team vault like any other (#349)
- Kept empty folders visible and included them in JSON exports (#338)
- Made linked identities and keys opt-in in exports, showed auto-included items, and confirmed saved files (#336)
- Signed macOS builds with a stable self-signed certificate (#347)
- Faded the sync menu in and out like the share menu |
| 0.41.0 | 23. september 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- DTR/RTS toggles and a break signal in the serial status bar (#332)
- Created and edited keys and identities from the mobile keychain (#325)
Changed
- Made grouping tabs by host opt-in rather than opt-out
Fixed
- Released open serial ports when the app exits (#334)
- Stopped covering ended sessions with a false "Reconnecting…" overlay (#333)
- Staged SFTP downloads and tar-accelerated transfers in the app cache dir on Android (#328, #331)
- Showed the renamed session name on Android cross-device cards (#326) |
| 0.40.0 | 20. september 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Grouped a host's sessions into one tab, with a pinnable session panel (#318)
- Published setup.sh and voltius.repo alongside the apt/yum repos (#322) |
| 0.39.2 | 18. september 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterFixed
- Listed the drive root when browsing to "C:" on Windows in SFTP (#316)
- Kept the DMA-BUF renderer on Wayland + NVIDIA, disabled explicit sync (#315)
- Stopped ~0.6 s terminal echo lag on Linux WebKitGTK (#313) |
| 0.39.1 | 18. september 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterFixed
- Honour the Legacy Algorithms toggle for SFTP and headless commands (#312) |
| 0.39.0 | 17. september 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Exposed FormSelect via @voltius/ui.
Fixed
- Showed custom icons for installed plugins.
- Resolved http.stream for 204/205/304 responses.
- Said the Teams upgrade is a free trial, and stopped promising unlimited guests. |
| 0.38.2 | 17. september 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterFixed
- Applied theme selection color while the editor is focused.
- Refused sessions.sendCommand/sendInput without multiplayer control.
- Named hosts through connectionDisplayName in pickers.
- Required app 0.38.2 for docker and gist-sync plugins.
- Showed renamed tab names in session pickers and lists.
- Gated snippet execute on multiplayer control and stopped broadcast double sends. |
| 0.38.1 | 16. september 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterFixed
- Reconnected as soon as the network returns, including tabs restored offline.
- Made overflowing tab strips usable with a mouse wheel. |
| 0.38.0 | 16. september 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Markdown host notes in the right panel and host forms.
Fixed
- Stripped bidi and zero-width characters before pasting.
- Pasted snippets get inserted and run in serial sessions too.
- Raised understated minimum app version for the ssh-config and process-manager plugins.
- Made the SFTP panel's home button navigate to the remote home.
- Kept the catalogue icon on an uninstalled built-in plugin's row. |
| 0.37.0 | 16. september 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Every installed sync provider now shows alongside Voltius cloud sync — in the title bar, the sync menu, the mobile header and Settings › Sync — each with its own status and a Sync now action. Sync plugins you have not installed yet are offered there too.
Fixed
- Stopped sync plugins notifying on routine background syncs; failures are left to the title-bar sync icon.
- Retried a hash-mismatched plugin install against a refreshed catalogue instead of failing outright.
- Showed the settings gear on marketplace-installed plugins.
- Fixed a streamed-request abort hang and settings hidden for installed plugins. |
| 0.36.0 | 15. september 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Turkish localization.
Fixed
- Replaced the title-bar sync icon's spin with a calmer animation: background syncs breathe instead of spinning, manual syncs draw a symmetric arc that finishes before showing the result.
- Kept reconnecting after a long outage and resumed when the network returned.
- Drew every status dot with one shared StatusDot primitive. |
| 0.35.1 | 15. september 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterFixed
- Stop SSH config hosts being rewritten as another host and losing their credentials. |
| 0.35.0 | 14. september 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Show whether the far end of a port forward is listening.
Fixed
- Reap auto-detected forwards instead of piling them up. |
| 0.34.5 | 14. september 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterFixed
- Let a plain drag select terminal text again over apps that report mouse events.
- Propagated connection close through port-forward tunnels, so a keep-alive no
longer hangs a closed connection. |
| 0.34.4 | 13. september 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterFixed
- Stopped glyph fallback fonts from setting terminal row height, which made rows
overlap when the configured font didn't load.
- Stopped the account quick switcher from listing the account already signed in. |
| 0.34.3 | 12. september 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Let checkout request a specific plan, seat count and billing interval instead
of defaulting to a single monthly plan.
Fixed
- Unified the role editor and per-member permission overrides so both group and
label every permission the same way. |
| 0.34.2 | 12. september 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterFixed
- Sent free users to checkout, not the billing portal, and told the truth about limits.
- Showed the trial-expired modal, and led with what Pro gives.
- Stopped the minimap canvas from self-locking to 1x1 on sibling panes.
- Showed the renamed session name on cross-device session cards. |
| 0.34.1 | 12. september 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterFixed
- Quieted member permission edits and grouped the permission list with a filter.
- Self-healed a stale team vault key wrap on key mismatch. |
| 0.34.0 | 12. september 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Added per-member permission overrides, with a confirmation when a change
revokes vault-key access.
- Added draggable, char-precise text-selection handles on mobile, so a
mis-dragged endpoint can be fixed without redoing the selection.
Fixed
- Stopped the vault header from collapsing on narrow windows. |
| 0.33.3 | 10. september 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterFixed
- Rotated the vault-header chevron on open and deduped the chevron-rotate style. |
| 0.33.2 | 10. september 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterFixed
- Stopped the private vault's "+" button from opening the convert-to-team
popover on hover.
- Labeled the share triggers, anchored the convert-to-team popover, and
pinned the invite row.
- Clarified the "Manage" label and fixed the invite search field's contrast. |
| 0.33.1 | 10. september 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterFixed
- Removed the redundant "Vault settings" menu item and section.
- The Android keychain now resolves through the app classloader instead of
FindClass, fixing a crash on some devices. |
| 0.33.0 | 10. september 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Rotate the team vault's encryption key whenever team membership changes.
- Reach vault admin directly from the vault.
- Encrypt team vault object metadata.
- Offboarding and invite lifecycle management, closing the keychain leak left
behind on member removal.
- Vault invite links, and an explicit Share verb.
Fixed
- Entity file loads now fail loudly instead of swallowing errors.
- Make-private no longer reports itself as a removal.
- The username of a host and of a keychain identity no longer picks up a
capital first letter on macOS. Typing abcd and clicking away left Abcd
behind, and an SSH username is case-sensitive, so the host was saved with a
different login than the one that was typed. Fields you name yourself, such
as a connection or a snippet name, keep the normal macOS behaviour.
- Converting a team vault back to private keeps its object ids, instead of
orphaning every secret in it.
- Deleting a vault actually deletes its contents.
- Team offboarding failures are no longer swallowed silently.
- Wrapped user secrets now carry per account, fixing vault unwrap across an
account switch.
- Invites are pre-checked against the enforced seat cap.
- Make-private now tells the truth about what it did, and stops losing data.
- Closed the last silent private-to-team conversion. |
| 0.32.1 | 7. september 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterFixed
- A member holding only the connect-only role can now actually connect. The
role could see every host in a team vault and reach none of them that needed
a stored password, private key, or key passphrase: fetching the vault key and
the stored credentials both required "View secrets", which the role does not
grant, so the credentials never reached the device and every connection
failed authentication. Connecting now means "use a stored credential without
seeing it" — "View secrets" still governs reading one back in plain text, and
"Copy secrets" the clipboard. Editors opened by a role without "View secrets"
leave the credential fields blank and say why rather than showing the secret,
and an export carries only the secrets its author is allowed to see. Requires
a server that grants the same, so self-hosted installs should update the
server alongside the app.
- A team vault whose stored credentials could not be loaded now says so. The
hosts in a team vault are listed from data that needs no key, so the vault
rendered complete and the first sign of trouble was an authentication failure
at connect time. The vault stays browsable and warns in place instead.
- Updated browserslist past GHSA-73wf-gq98-2v4g. |
| 0.32.0 | 7. september 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Tabs can be renamed. A tab can now carry a name of your own instead of
always showing the connection it opened: click the label of the tab you are
already on, double-click it, or pick "Rename…" from the tab context menu or
the pane header menu. Clearing the name returns the tab to the connection
name, so a connection renamed upstream only ever moves the fallback. The name
is device-local but survives a restart, and a shared session co-attached on
another device inherits the name the origin device gave it. Duplicating a tab
opens on the connection rather than inheriting the name.
- Split tabs have their own context menu. Right-clicking a unified split tab
did nothing — only the session-tab button carried a menu, so a session merged
into a split lost the one its own tab had. The new menu is tab-scoped:
broadcast input, focus one of the tab's panes, split apart into tabs, and
close the tab with its session count. Anything acting on a single session
stays on the pane header, where the target is unambiguous.
- Mobile now shows team-vault first-access state. The mobile shell rendered
none of it, so a member who opened a team vault they had no key for saw an
empty hosts list with no explanation, and the role-aware landing never fired.
The panel is now mounted on mobile too, with the header kept above it — it
owns the only route to the vault switcher, without which a member stuck on a
keyless vault could never reach another one. A live terminal or SFTP
connection stays alive underneath.
Fixed
- Ctrl+G reaches the shell again when the search widget is closed, so
bash's Ctrl+R reverse-i-search can be aborted — readline needs the ^G byte
(0x07) and it was never sent. The terminal claimed the chord unconditionally
rather than only while its search widget was open, which killed every shell
and TUI use of the key. Ctrl+G and Ctrl+F also no longer fire twice with the
search open: one press moved two hits, and Ctrl+F focused the right panel's
search bar over the widget it had just opened.
- An open context menu no longer swallows the next right-click. The menu sat
above a full-screen backdrop that also caught the right-click meant for
whatever was under it, so with one menu open, right-clicking another target
did nothing at all and the stale menu simply stayed. A left-click outside now
also reaches what it lands on rather than being absorbed. |
| 0.31.1 | 2. september 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterChanged
- The option menus across the app now behave alike. The font picker, the
keychain's key selector, the vault picker, the serial port list and the
snippet row's menu each positioned and painted themselves, so they missed
what the shared picker surface already did: re-measuring while the form
panel scrolls, flipping above the trigger when there is no room below, and
becoming a bottom sheet on Android. They are now drawn from the same parts as
every other dropdown, on the same tokens, radii and icon sizes. The snippet
row's "move to folder" step is a submenu rather than a second menu, and the
mobile terminal bar's panels menu closes when you tap outside it — until now
only tapping an item closed it.
Fixed
- Pasting a directory in the file browser now uses tar acceleration. Copy/paste
and cut/paste hardcoded it off, so they always fell back to per-file SFTP even
when both ends supported tar, and never marked the transfer as accelerated —
dragging the same directory between the panes was fast, pasting it was slow. |
| 0.31.0 | 1. september 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- The font pickers now list the fonts actually installed on your machine.
Where Appearance and the theme editor offered two bundled presets and a
free-text box, they now enumerate the installed families, preview each one
in its own face, and filter the terminal picker to monospaced faces with a
"show all fonts" escape hatch — some fonts misreport their pitch, and Nerd
Fonts' non-Mono variants report proportional. The free-text box stays, and
now warns when the family it holds is not installed instead of silently
falling back to a proportional default.
- A serial console can hand its port back without losing the tab. The status
bar gains a plug toggle that releases /dev/ttyUSB0 — keeping the tab, its
scrollback and its configuration — and reopens it on the next click, so a
board can be flashed without closing anything. Beside it is an
auto-reconnect toggle, stored on the connection so it survives a restart and
follows the device; with it off, a drop leaves the port free rather than
reclaiming it every few seconds under the flashing tool.
- Sharing a private vault now asks before it converts. Adding one person used
to create a team, link the vault and switch it to cloud sync with no dialog;
inviting someone now opens a modal stating the three costs first — no
offline access, members keep a copy of the vault key that removal does not
take back, and no way back to private — and states that the vault's existing
contents move with it.
Fixed
- A custom terminal font no longer stretches the cells. A family typed into
the theme editor carried no generic fallback, so when it failed to resolve,
the canvas measured the cell from its own proportional default: cells came
out about 1.6x too wide while the glyphs still painted at the right size.
Terminal font stacks now end in monospace unless they already carry a
generic family.
- A snippet with a choice variable asks which option to use. The parser hands
a choice its first option as the default, and anything with a default
counted as resolved, so {{env:choice:dev,staging,prod}} ran as dev and
the other options were unreachable. The picker now always opens, pre-filled
with the first option.
- A team member whose role cannot read secrets no longer sees "Access
revoked". A connect-only member holds no VIEW_SECRETS, so the vault-key
route answers 403 — which the client read as removal from the team. They
now get the vault, empty, like any other empty vault.
- Converting a private vault from the share sheet no longer empties it for
everyone else. The conversion created the team and the key but left the
vault's contents behind under the old id: the owner still saw the hosts
while every teammate saw an empty vault, with no warning. Both conversion
paths now migrate the contents, and do it as a group — a failure unlinks the
vault and deletes the team rather than leaving a vault that looks complete
to its owner and empty to everyone else.
- A vault you have just joined unlocks by itself when its key arrives. The
waiting panel was honest but permanent: nothing re-read the key that had
landed until you hit Retry or restarted. It also now names who it is waiting
for, and a member arriving for the first time lands on the surface their
role can actually use — a connect-only invitee gets connections, not a
keychain of redacted rows.
- Typing exit on a remote shell no longer reconnects it. The close event
carried no reason, so a deliberate exit and a dropped link looked
identical; the far side's exit-status is now carried through, and a session
that ended on purpose stays ended.
- A snippet run from the command palette lands in the focused tab. The target
was resolved as the first connected session in tab order, so with several
tabs open a snippet always went to tab 1.
- A plugin installed from the catalogue can be disabled like a bundled one.
The enable toggle rendered only on bundled rows, so installing a plugin that
also ships with the app took its toggle away, and themes — which are only
ever ins |
| 0.30.0 | 24. august 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Your settings are now yours to sync group by group and setting by setting.
Settings → Sync gains a second block, "Settings", below the existing Sync
Preferences block that already governed hosts, identities, keys and the rest.
It carries one switch per group — Themes, Interface, Shortcuts, App settings,
Recent people — and each individual setting gains a cloud button in its own
row's hover controls, so a single value can stay on this device without
switching its whole group off. A held-back value never enters the uploaded
backup, and a copy already on the server is withdrawn when you switch the
setting off. Each group also lists what it is keeping local, which is the
only control for the handful of settings that have no row of their own.
- The default shell is no longer synced unless you ask for it. A shell path is
wrong on another machine by construction, so it is now device-scoped: it
stays out of the backup until you opt it in from the Sync panel.
- Your sunrise/sunset coordinates are no longer synced unless you ask for
them to be. Where you physically are is a property of the machine, not of
your account, so the theme location is now device-scoped: it stays out of
the uploaded backup — and out of any third-party sync destination, such as
the gist-sync plugin — until you opt it in from the cloud button beside the
latitude and longitude fields.
- Snippets now have their own cloud sync switch. The Sync Preferences block
gains a Snippets row alongside Hosts, Identities, SSH Keys, Folders and Port
Forwarding, so the whole collection can stay off the backup — individual
snippets could already be excluded one at a time from their card. Switching
Folders off now also stops snippet folders syncing, which is what their cards
already showed.
- Terminal font size is now a setting of its own in Appearance, overriding the
active theme, where before changing it meant cloning a theme or scaling the
whole UI. On mobile a two-finger pinch on the terminal drives the same value.
It stays on this device — a size that reads well on a phone does not read
well on a desktop — so it is never synced.
Changed
- Because the default shell now stays out of the uploaded backup, a device
still running 0.29.x will have its own default shell cleared back to the
system default. That older release reads an absent shell as "clear it", and
it happens again on every later settings change made on an updated device,
until the older device updates too. Devices on this release are unaffected,
and the setting itself is never lost — only the older device's copy is
reset to the default.
Fixed
- Three Russian strings read wrong. The Interface sync group described itself
with "раскладки", which reads first as keyboard layouts — an active
collision in a panel that also has a Shortcuts group — and the same word was
used for terminal panes; both now say what they mean. "Недавние люди" became
"Недавние контакты", which is what the counts beside it already said.
- Pasting went to the wrong terminal. With more than one terminal on screen,
the paste landed in whichever session the pane had opened last rather than
the one that received the keystroke.
- Your own tmux works inside a persistent session again. A persistent session
wraps the remote shell in Voltius's own tmux, and that wrapper leaked its
socket and its C-b prefix into the shell: tmux ls listed Voltius's
private sessions instead of yours, tmux attach refused to nest at all, and
a forced nest lost every prefix key. The wrapper now clears the multiplexer
environment and gives up its prefix. The fix reaches new sessions; a session
started before this release keeps the old wrapper until it is restarted.
- On a host that has screen but not tmux, the wrapper no longer swallows
C-a. A bare C-a d inside your own nested screen detached Voltius's
session instead, closing the connection and reconnecting underneath you.
- Duplicating a session no longer lands in your home directory when the
original's working directory ha |
| 0.29.0 | 20. august 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- An account signed in to a self-hosted instance is now named as such. The
switcher row and the account header show the instance host instead of a
generic "Cloud", with the full URL on hover, and the auth screen's server
field seeds from the instance this machine last used — so "Add another
account…" no longer quietly aims a self-hosted user back at the official
cloud. Rows on the official cloud are unchanged.
Fixed
- The account switcher no longer loses accounts to the platform keychain's
size limit. Windows Credential Manager refuses a value over 2560 bytes,
which two accounts' tokens exceeded on their own, and the rejection was
swallowed: adding a second account saved nothing, and switching back came
up with no tabs. Accounts are now stored one entry each, workspace state
parks in local storage, failures surface as a toast instead of silence, and
an older single-value list migrates on first read. Restoring a workspace
also waits for the login sync, so reconnecting no longer errors every
restored tab.
- A shared team vault's card in the dashboard's Vaults section counted no
hosts, even though the same hosts were listed everywhere else.
- Installing a snippet from a link writes it to the vault the confirm sheet
named, even if the vault selection changed while the sheet was open.
- Accepting a plugin-install link while the same plugin was already
installing from Settings reported success without writing anything; the
second install is now refused. |
| 0.28.0 | 19. august 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Voltius is packaged for four more channels: the AUR (voltius-bin), Flathub,
Scoop and the Microsoft Store. The Store build installs without the unknown-
publisher warning Windows shows for the standalone installer.
- Deep links reach more of the app. Notifications, settings and billing each
have a route, and an invitation by handle, a snippet install or a plugin
install now opens a confirmation sheet that names exactly what it is about to
do before anything is applied.
- Links work in their https://voltius.app/open form as well as the
voltius:// scheme, so they survive the chat clients and mail readers that
strip custom schemes. On Android that address is registered as an App Link and
opens the app directly. Sharing an invitation hands out the https form.
- Presence is drawn by one component everywhere it appears — the title bar, the
share menu, session cards and the member list — so a teammate looks the same
wherever you run into them.
Fixed
- The Linux .deb declares its dependency on libsecret, which it linked against
without asking for. On a minimal Debian the app failed to start.
- The generated desktop entry carries a category, so Voltius is filed under
Development instead of landing in whatever bucket a launcher uses for
uncategorised apps.
- A confirmation sheet queued behind another no longer inherits the click that
dismissed the first one, and changing language while one is open no longer
re-runs its load.
- A plugin install link whose integrity check fails is reported as tampering
rather than as a malformed link.
- The /open App Link matches exact paths instead of a prefix, so the rest of
voltius.app opens in the browser again.
- The notification bell re-measures when the set of mounted bells changes,
fixing a popover that could point at the wrong bell on mobile.
- Very small avatars keep their initials legible instead of shrinking them into
nothing. |
| 0.27.0 | 17. august 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Voltius now answers voltius:// links. A session invite, a team invite or an
email verification opens the app straight on the thing it points at, on
desktop and on mobile. Links are routed through a table that classifies each
one by how much it is trusted, and a link that arrives before you are signed
in is queued and replayed once you are. Verifying your email no longer needs
the manual "I've verified" click.
- Live session invites can be read out loud: alongside the link, a share now
offers a short spoken code that a teammate can type into the join field.
- Vault backups are visible. When a save is quarantined because it could not be
opened, the vault panel lists the kept backups with their real sizes and
offers to restore one, instead of leaving them as files on disk you were never
told about.
- The People section in the share menu reads as clickable, and Recent entries
can be pruned.
Fixed
- A cloud vault is unlocked with the key that actually encrypted it, and that
key survives re-authenticating with the cloud. Signing back in no longer
leaves the vault unopenable on the device that created it.
- The vault never deletes secrets.enc when no key opens it, writes it
atomically so an interrupted save cannot truncate it, and stops retention from
deleting backups a recovery run never attempted.
- Vault failures are told apart from missing data: "vault unavailable" is no
longer read as "no credentials saved", the locked-store error from the Rust
side carries the vault-locked code, and that code survives the reconnect loop.
A form now says outright when a secret could not be read instead of showing a
blank field.
- Sync now carries the vault list — which vaults exist and what they are
called — in the encrypted blob, so a second device stops showing objects whose
vault it cannot name.
- A new vault key is uploaded before the vault is re-encrypted to it, so a
failure mid-rotation cannot strand the vault.
- An account with no password whose vault cannot be read is sent to recovery,
and the vault is unlocked before the legacy migration runs.
- Connecting from the SFTP side pane while the vault is locked now shows the
vault panel rather than failing silently.
- The account quick switcher no longer carries one account's state into
another's, signing out drops the saved credentials, and the rest of an
account's local state moves with the account. Reaching a second account from
the switcher works again.
- Auto-lock is reachable from the account menu.
- An invite link stays reachable after the share menu closes, presence is shown
on Recent rows with a dot that actually paints, the members popover floats
above the header, and your own presence is trusted.
- The invite search says it accepts handles, not just email; the members popover
title is translated in Russian and Chinese.
- A button's ripple releases its listeners and timers when the button unmounts. |
| 0.26.1 | 16. august 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterFixed
- Selecting terminal text with "Select to Copy" enabled now copies even when
the mouse button is released outside the terminal — in the window padding,
over another pane, or past the window edge. Dragging right to left and
overshooting the left border no longer silently loses the selection. |
| 0.26.0 | 16. august 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Share a terminal with anyone, not just teammates. The share menu's new People
tab finds teammates as you type, and anyone else by their @handle or full
email address. The invite is the request: the person gets a notification
with Join, Decline and Block permanently, and joining is one tap. A host can
withdraw a pending invite — which frees the guest seat instead of holding it
until the session ends — and the guest cap is visible while inviting. People
you invited recently are remembered across your devices, carried in your
encrypted sync blob rather than stored on the server.
- Every account has an @handle. It shows in the account menu with a copy
button, avatars fall back to two-letter initials from it, and Settings can
claim or rename a custom one — all it takes is a verified email address.
Choosing a custom handle is what makes you findable by people outside your
teams; the handle you start with already works for anyone you give it to. A
toggle controls whether people outside your teams may invite you at all.
- The MCP server gained the settings, account, plugin-management and
marketplace domains: an agent can read and change settings, read your
subscription, install and manage plugins, browse marketplace sources, export
and import vault objects, and read a team's server-side audit log. Each
domain sits behind its own permission and writes audit rows. The ssh-config
sync is now exposed as an MCP tool.
- Terminal appearance gained line-height, cursor-style and cursor-blink
settings, and they sync across devices.
Removed
- The display-name editor is gone. A handle is the single name Voltius shows
for a person, everywhere.
Fixed
- Sharing a local shell relayed nothing — guests joined a permanently blank
terminal. Input and output now flow both ways.
- Your email address is no longer sent over the session WebSocket, where every
participant could read it; a stranger admitted by a knock previously learned
everyone's real address.
- A stranger sees no session name until they accept, so a mis-aimed invite
leaks a handle rather than a hostname, and a knock is labelled from the
server's record of who sent it rather than a name the sender chose.
- Session and vault keys are wrapped to the recipient's current public key,
fixing invites that failed for someone who had signed in on another device.
- A rate-limited sign-in reported "Account not found", sending people off to
create a second account they did not need.
- Settings pulled from another device no longer bounce straight back as a push.
- Closing the window during a shutdown sync could cancel the exit, or close a
window you had just reopened.
- The cursor keeps blinking under persistent tmux and screen sessions, and the
GNU screen fallback gets TrueColor.
- The account dropdown no longer waits on a network handle lookup before it
opens, and signing out clears the cached handle.
- The session guest cap is applied consistently — in the invite-to-session
menu, in the direct-invite roster, and across the setup-to-active flip.
- Numerous MCP corrections: tighter permission gates on the settings, account
and team-audit surfaces, audit rows that no longer carry more than they
should, and stores refreshed before an export reads them. |
| 0.25.0 | 14. august 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- A notification inbox collects everything a team throws at you in one place:
pending invitations, sessions a teammate shared with you, and requests for
control of a session you are hosting. Each entry is actionable — accept,
decline, join, grant or deny without hunting for the right screen — and
resolves itself when the underlying event goes away, so the rail no longer
polls for shares. On mobile the bell is reachable from every tab.
- Sessions gained one join affordance instead of several, plus an empty state
that explains what a team session is. An invite code pasted into the default
search bar now joins that session directly.
- The MCP server gained the team and sharing domains, taking its verb surface
to 74: an agent can read a team and its members, change a member's role,
share a session, and revoke a share. The same domains are exposed on
PluginAPI. Both sets of verbs sit behind their own permission, and every
membership or sharing call writes an audit row naming the counterparty.
- A session whose MCP client disconnected is now shown as disconnected rather
than silently live, and the next client can adopt it.
Fixed
- Accepting or declining an invitation closes the modal only once the call
succeeds, so a failure no longer looks like it worked.
- A denied control request stays denied until the guest asks again, control
requests are retracted when the session ends, and landing control on yourself
now confirms with a toast.
- Hosts are no longer notified about their own share, and a session you left
stops showing up as unresolved.
- Join is no longer offered on mobile, where a joined session cannot render.
- A team whose vault key has not reached you yet shows an honest
waiting-for-access state instead of reporting the session as not found.
- The share menu copies the invite code it actually displays, auto-copies on
generate, and remembers that it did.
- member_set_role is callable again, and fails loudly when the roles cannot
be reloaded instead of reporting a change it did not make.
- Membership verbs send their audit rows to the team server, where they were
previously dropped.
- A broadcast share is refused before the audit row is written, not after.
Changed
- After a lagged sync event the session list refetches once, rather than on
every sync. |
| 0.24.0 | 13. august 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- A session can be duplicated straight into a new tab or a split, from the tab's
context menu or the command palette. The copy opens in the directory the
original was sitting in, and a quick-connect session keeps the credentials it
was opened with, so duplicating one no longer asks for a password again.
- The MCP server gained five pane verbs, taking its surface to 64: an agent can
split a session into a pane, move a session between panes, detach a pane back
into a tab, focus or maximize one, and toggle broadcast on a pane group. Every
write is verified against the layout store before it reports success.
Fixed
- Reconnecting a quick-connect session reused the credentials from the original
connection instead of failing on a missing password.
- Windows no longer lists WSL as an available shell when no distribution is
installed (wsl.exe ships with stock Windows, so its presence proved
nothing). |
| 0.23.0 | 13. august 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- The MCP server can now send real keystrokes. send_keys types into any open
session — literal text or named keys like Enter, Up, Escape, C-c,
F1–F12 — and returns the screen once it stops changing, so an agent can
drive a full-screen program (top, less, fzf, vim, whiptail) that run_command
structurally cannot: that verb wraps its input so it can read an exit code,
and the wrapper is typed into such a program as literal text.
- Ten further verbs join it, taking the MCP surface from 48 to 59. Snippets can
be run on a host, known hosts listed, trusted and deleted, and shell history
searched across hosts. Transfers can be listed, cancelled and retried;
configuration sync state and host reachability can be read.
- Transfers started over MCP now appear in your own transfer queue, marked with
the name of the client that started them, and can be cancelled from there like
any other transfer.
- Tabs a connected MCP client is driving are marked in the tab strip and the
pane header, with the controlling client named in the tooltip, so it is always
visible which sessions are not being driven by you.
- A failed transfer can be retried from the transfer queue.
Fixed
- A local shell could come up blank, and starting the app a second time opened a
second copy instead of focusing the running one.
- Opening a new split tab cloned the previous tab's terminals into it.
- A session opened by an MCP client no longer steals the tab you are working in.
- An SFTP handle evicted from the cache was dropped without being closed,
leaking it on the server.
- A transfer being retried could be evicted from the queue mid-retry.
- Editing a port-forwarding rule or a snippet over MCP no longer needs the whole
record restated, and a transfer that failed to start reports the real error
instead of silently resolving. |
| 0.22.0 | 11. august 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- The MCP server gained eleven verbs, taking its own surface to 48: snippets and
port-forwarding rules can now be listed, created, updated and deleted, and a
rule's tunnels started, stopped and inspected. Updates read-modify-write the
current record, so naming one field no longer blanks a snippet's steps. A rule
in a team vault can have its tunnel started but not edited, and starting one
needs the gated ports:forward grant.
- Every object the MCP surface returns now reports which vault and folder it is
filed in, and object_move / object_copy report the destination they wrote
to — so an agent can confirm where something landed instead of guessing.
Fixed
- Saving a snippet with a transfer step failed for every user, in the app's own
UI as much as over MCP ("missing field direction"). Transfer steps now
round-trip their full shape, including mode and conflict handling; snippets
saved under the old shape still load.
- The SFTP file pane's header and rows are laid out on one shared grid: columns
no longer drift apart when resized, the pane scrolls sideways instead of
clipping the right-hand columns out of reach, and column widths and visibility
survive a pane remount.
- The right-panel SFTP tab now rides the terminal's own SSH connection. It used
to dial a second one that died on sleep, failing every operation with "Channel
send error" until the app restarted.
- Alt-clicking a link inside a TUI that opens URLs itself (Claude Code) opened
it twice; OSC 8 hyperlinks opened nothing at all. Both now go through the same
policy.
- Downloading a missing path from a container, or checking whether one exists,
could report success when the command's exit status was lost.
- A host-to-host directory transfer used the same temp archive name on both
ends, so a same-host transfer collided with itself.
- The WSL distro list rendered twice in the host picker.
- The host picker's NEW HOST button did nothing visible and is gone.
- The theme badge no longer shows a meaningless infinity glyph.
- MCP refusals are marked explicitly instead of inferred from result shape.
- Importing a key through the UI now validates its public half. |
| 0.21.1 | 11. august 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterFixed
- Republishes 0.21.0, whose release only carried the Windows x64 installers and
the Android APK. A network failure part-way through the build split the
release in two, so the macOS, Linux and Windows ARM downloads never appeared
and the updater manifest offered an update to Windows x64 only. No
application code changed between 0.21.0 and 0.21.1. |
| 0.21.0 | 11. august 2026 | — | 64-bit EXE (NSIS) UdgivelsesnoterAdded
- Published container ports are now clickable everywhere Docker lists them —
the container list, the stack view and the mobile screen. Clicking one opens
it in your browser, or copies the address; a port on a remote host is
tunnelled to this machine first, automatically, and an existing tunnel is
reused.
- The MCP server gained eleven verbs, taking its own surface to 37 (52 with the
bundled plugins' tools). An agent can now organise your vault, not just read
and write inside it: vault_list/create/rename/delete,
folder_list/create/rename/delete, object_move and object_copy — the same
cut/copy-and-paste the pages do, including whole folder subtrees — and
key_add_to_host, which appends a saved key's public half to a host's
authorized_keys over SSH. Deleting a vault or folder cascades, moving
objects into a different vault has to be asked for explicitly, and team vaults
are refused throughout.
- Plugins gained four new gated namespaces mirroring that surface: api.vaults,
api.folders, api.objects and api.ports.reach. Object moves are gated per
object type rather than wholesale — a plugin allowed to file snippets cannot
move your keys — and snippets and port forwarding rules now have their own
write permissions. Every new permission ships with plain-language consent
copy, and the install dialog now distinguishes read-only grants (a container
list, a vault name) from the destructive ones.
Fixed
- Ad-hoc port forwarding tunnels no longer die when their host reconnects, and
tunnel channels now open on the session's current SSH handle — after a sleep
or a dropped link, forwarding kept using the handle that was already gone.
- File panes keep working after the SSH link behind them is replaced, instead
of failing every operation until the tab is reopened.
- The titlebar no longer swallows clicks on the close and new-tab buttons.
- Docker no longer lists the same published port twice when it is bound on both
IPv4 and IPv6, and pressing Enter on a port chip in the mobile view acts on
the chip instead of the row behind it.
- ssh_exec_command now reports a command's exit code and stderr rather than
presenting a failed command as a success — this silently affected Proxmox
actions.
- An MCP tool call that the app refuses is now returned to the client as an
error instead of a successful result carrying a refusal message.
Security
- Pinned js-yaml to 4.3.1 or later, clearing CVE-2026-59870. |
| 0.20.0 | 10. august 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- A host's Shell integration override is now three-state — Inherit, On, Off —
matching Persistent session. Before, the override could only turn shell
integration off, so a host could never force it on while the global toggle was
off. Existing hosts keep their behaviour: an override that said "disabled"
becomes an explicit Off, everything else inherits.
Fixed
- Closing the app no longer waits with the window still on screen while an
enabled plugin runs its quit-time work — the Gist sync plugin's push to GitHub
made closing take about two seconds. The window now closes immediately and the
sync finishes in the background. Thanks to @Flash303 for the report and the
fix.
- Persistent sessions now work against dropbear servers (OpenWrt/ImmortalWrt and
other embedded targets). The bootstrap payload was base64-encoded twice and
ran to 21,718 bytes with persistent sessions and shell integration both on,
past dropbear's 9,000-byte limit, which killed the connection the moment
authentication succeeded — the session appeared stuck on "Authenticating"
forever.
- A host whose only Advanced override was Persistent session now shows the
usual dirty dot when the section is collapsed, instead of hiding the override
entirely. The two global toggle descriptions also name where the per-host
overrides live. |
| 0.19.0 | 9. august 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Voltius can now act as an MCP server, so Claude Code and other MCP clients
drive your infrastructure directly: 41 tools covering keys, identities,
connections, sessions, commands and file transfers. It is off by default —
turn it on in Settings → Integrations, which also carries the one-line client
setup command and what granting a client this access means.
- Plugins can contribute their own MCP tools. With the server on, the bundled
Docker, Proxmox, process manager and monitoring plugins contribute 15 verbs
between them — container and image listings, LXC actions, snapshots, process
listing and metrics — and each plugin can be excluded on its own.
- An MCP client can read its own audit trail through audit_query, behind a new
danger-gated audit:read permission.
- Plugins get a gated SFTP file domain and a gated api.mcp capability for
contributing tools.
Fixed
- A Proxmox command that failed reported success. Creating, rolling back or
deleting an LXC snapshot returned OK even when Proxmox refused the operation,
so a rollback could target a snapshot that was never created.
- Creating a folder from the Snippets page put it in the Personal vault instead
of the vault being viewed.
- Team-vault connections were adopted and rewritten by SSH config sync.
- Streaming a container's logs left a listener behind after the call finished.
- Russian was missing plural forms in the MCP integrations screen. |
| 0.18.0 | 6. august 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Pasting a host into another vault now carries its key and identity across, so
the pasted host still connects instead of landing without credentials.
- useT and useSessionById are available to plugins from @voltius/ui.
Fixed
- Renaming a folder moved it into the Personal vault. Any folder kept in another
vault was silently relocated, taking everything filed in it along.
- Moving a key, identity, connection or folder to another vault unpinned it, as
did renaming or reparenting a folder.
- Members of a team vault received a passphrase-protected connection key without
its passphrase, so they could not connect. Both the current and the legacy
storage paths now publish it.
- The folder picker in the host, serial-host, key and identity editors offered
every page's folders, so a host could be filed into a keychain folder — the
editor then showed it in a folder its own page does not list, leaving it
sitting unfiled at the top level. Creating a folder from the key or identity
editor made a host folder for the same reason.
- Pasting a copied object no longer appends "(copy)" when nothing of that name
is there to collide with. |
| 0.17.1 | 5. august 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Plugins can record audit events through api.audit.record, behind a new
danger-gated audit permission that has to be granted explicitly. The action
set is closed, so a plugin cannot invent event types.
- registerGlobalPanel returns a control handle, letting a plugin open, close
and resize its own panel.
- ConnectionAvatar and ConfirmModal are available to plugins from
@voltius/ui.
Fixed
- Pasting into another vault put the object back in the vault it came from.
A vault's root now names that vault as the destination, so a paste there
changes vault and asks for confirmation first. Cutting between two vault
roots was also silently discarded as a no-op. |
| 0.17.0 | 5. august 2026 | — | ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Cut, copy and paste for vault objects on Hosts, Keychain, Port Forwarding and
Snippets — objects and folders alike. Ctrl+X / Ctrl+C / Ctrl+V by
default, rebindable in Settings → Shortcuts, and offered in the right-click
menu on a single item as well as on a multi-selection. A pill shows what is on
the clipboard; Escape or its clear button empties it. Cut moves, copy
duplicates, and the clipboard is kept after a copy so it can be pasted more
than once.
- A paste that would move objects into a different vault asks for confirmation
first, naming the destination.
Changed
- Deleting a folder now deletes everything inside it, on every tab. Previously
its contents were left behind — subfolders survived but became invisible.
Because the delete now cascades, it can no longer be undone.
- A paste is refused when it would leave a reference pointing outside the
destination vault: a host whose identity or key stays behind, a port
forwarding rule whose host stays behind, or a snippet whose snippet-call
target stays behind. Use "Move to vault", which brings the referenced objects
along.
Fixed
- Team vaults: moving any object out of a team vault failed with
"Connection <id> not found".
- Team vaults: the write-permission check rejected every team vault as
"Vault permission data is corrupted", and a team using a custom-named role
with write permissions was refused locally even though the server allowed it.
- Team vaults: an object's password or key material stayed in the vault after
the object left it, readable by everyone still in that vault. Removing an
object from a team vault now removes its secrets too.
- Keychain: "Move to vault" and "Copy to vault" moved the key or identity
without its key material, leaving it unusable in the destination.
- Snippets: folders belonging to a team vault were not shown on the Snippets
page.
- Port forwarding: moving a rule between vaults gave it a new id, breaking
anything that referenced it.
- Each paste is a single undo entry, and undo restores objects to the vault and
folder they came from. |
| 0.16.1 | 4. august 2026 | — | 64-bit EXE (NSIS)ARM64 EXE (NSIS) UdgivelsesnoterFixed
- Snippets: a snippet's variable prompt was dismissed when the picker navigated
away from the Snippets page, so the snippet ran with empty variables or did
not run at all. |
| 0.16.0 | 4. august 2026 | — | 64-bit EXE (NSIS)ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Hosts: a Pre/Post command can now be a saved snippet instead of a single
inline command, and runs its whole sequence — multi-step, snippet calls and
file transfers included. Pick one with the {} button beside either field.
Snippet variables are prompted for on connect (and on disconnect for a
post-command) and remembered per host; password variables are never
remembered, and "Ask for variables each time" turns remembering off for a
host. Inline commands are unchanged (#63).
- Snippets: a Community tab for browsing and installing snippets and packs from
the public catalogue. Every step is shown exactly as it will run before you
install, a snippet that calls another pulls its target in and says so, and
what lands in your vault is a plain owned snippet.
- Snippets: "Share to community" on a snippet's or folder's menu turns it into a
catalogue entry. Nothing is uploaded — you get the JSON to submit and a
prefilled GitHub link. Before that it scans the steps for private keys,
passwords, API tokens and routable hosts, and warns if it finds any.
- Hosts: the latency shown for a connected host is now measured over the SSH
session itself instead of a separate connection.
Fixed
- Hosts: connection status probing hammered hosts often enough that rate-limit
firewalls (ufw limit, fail2ban) would lock users out of their own servers.
Probes now run from a single scheduler with jitter, deduplicated per
host:port, at much longer intervals (#90).
- Hosts: the status dot could flicker, and a stalled jump-host lookup could
freeze a host's status indefinitely.
- Snippets: a snippet that calls another one imported as a dangling reference,
because export carried a machine-local id. Nested calls now survive
export/import, and an export that would produce a broken reference fails
visibly instead of silently.
- Hosts: a post-command snippet resolved {{connection.*}} against the local
shell instead of the host it just disconnected from.
- Hosts: when several snippet variables were prompted in a row, each prompt
inherited the previous one's typed values, passwords included.
- Serial: the Pre/Post command fields on a serial connection were saved but
never actually run, and closing a tab no longer waits for the port to be
released.
- Links: external links on the signup screen, the changelog popup, the roles
section and in Gist Sync did nothing when clicked. They now open in your
browser.
- Themes: the drop shadow under page toolbars was a near-black smudge on light
themes; it now follows the light-appearance shadow tokens. |
| 0.15.1 | 3. august 2026 | — | 64-bit EXE (NSIS)ARM64 EXE (NSIS) UdgivelsesnoterFixed
- SSH: connecting with an RSA key to an older server — notably OpenWrt routers
running dropbear before 2020.79 — was rejected even though the server accepts
the key. The signature algorithm is now taken from what the server says it
supports (#85).
- SSH: a server that accepted the connection but never answered the
authentication request left the app on "Authenticating" forever. It now stops
with an explanation instead of waiting indefinitely.
- Plugins: the built-in plugins reported an update was available when their code
was already identical to the published one. |
| 0.15.0 | 3. august 2026 | — | 64-bit EXE (NSIS)ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Plugins: if none of the built-in plugins can load, the app now says so instead
of quietly showing an empty plugin list.
Fixed
- Plugins: plugin names in the right-hand rail and in Settings now follow the
language you pick, instead of staying in whichever language the app started in.
- Plugins: a plugin that was disabled could still briefly publish its state after
being switched off.
- Icons: the Docker and GitHub icons were fetched over the network, so they were
blank on a first launch without internet. Every icon now ships with the app.
Removed
- Plugins: the unimplemented sidebarItems and contextMenuItems plugin APIs,
along with their permissions. Use ui.registerContribution instead.
Security
- The app window now runs under a content security policy, so a plugin can no
longer load remote code or reach an arbitrary host directly (#84).
- Plugins: a plugin can no longer replace the app's own icons. |
| 0.14.1 | 31. juli 2026 | — | 64-bit EXE (NSIS)ARM64 EXE (NSIS) UdgivelsesnoterFixed
- Windows: the app could not be packaged at all, so 0.14.0 produced no Windows
installers. Everything in 0.14.0 reaches Windows users with this release. |
| 0.13.0 | 29. juli 2026 | — | 64-bit EXE (NSIS)ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Simplified Chinese (简体中文) interface language, contributed by
@CoconutHR. Pick it under Appearance settings;
like every language, it syncs across your devices.
- Plugins: an update flow. Voltius now detects when an installed plugin has a
newer version, offers a one-click update, and asks you to re-consent if the
update declares permissions you had not already granted (#52).
- Plugins: bundle integrity. A plugin's bundle hash is verified on install and
recorded, plugins that cannot be verified carry an "unverified" badge, and
install failures are surfaced instead of failing quietly (#44).
- Plugins: new capabilities for plugin authors — session open/close lifecycle
verbs, a streaming http.stream verb backed by server-sent events, terminal
reading (snapshot and live stream), selection reading, and OS-keychain storage
for plugin secrets.
- Plugins: two new UI surfaces — a shell-level panel mount and a reusable
titlebar.right status-bar slot.
- Settings: plugin pages now appear as expandable children under the Plugins
nav entry rather than as flat top-level items, on both desktop and mobile.
- SFTP: a "Copy path" action in the file-row context menu on desktop (#62).
- Sync: an exclusion filter, so objects you exclude are stripped from outbound
sync on push, on pull merge, and from the gist-sync export path (#43, #47).
- Themes: Dracula and Monokai reworked with real elevation and text ramps
instead of flat approximations (#40, #60).
Fixed
- Terminal: the wheel and touchpad now scroll full-screen terminal apps (vim,
less, htop) instead of doing nothing, and Select-to-Copy is respected there
(#50).
- Team vaults: members who accepted an invitation while the vault owner was
offline could be left without a vault key and silently unable to decrypt.
Key distribution is now reconciled for those members (#41, #49).
- Audit log: the local per-vault log is capped, so a full quota can no longer
silently stop recording new entries.
- Settings: the About-page links and the update-download button now open.
- Themes: on-accent text now picks its colour at the WCAG 0.179 luminance
crossover, fixing low-contrast label text on some accent colours.
- Interface languages: corrected the Select-to-Copy setting description.
Security
- Plugins: the gated capability tier — reading, watching, and typing into your
terminal sessions, plus per-plugin keychain storage — is now grantable to
third-party marketplace plugins behind explicit, danger-styled install-time
consent. It was previously first-party-only. The install and update dialogs
now show every declared permission in plain language, with the powerful ones
called out in a separate warning block; a plugin that declares one always
prompts for consent, even when install review is turned off. Command injection
(sessions.sendCommand) moved from the public sessions:write permission to
a new gated terminal:write, split from terminal reading. Keychain storage is
now isolated per plugin (keys are namespaced plugin:<id>:), so one plugin can
no longer read or overwrite another's secrets. No installed plugin gains
anything without a fresh consent, and no shipped build exposed cross-plugin
keychain data. Side-loaded and locally-scanned plugins still load without a
consent prompt — writing to the plugins folder already implies full app
privileges — so only install a local bundle you trust.
- Updated the bundled quinn-proto dependency to 0.11.15, picking up the fix
for GHSA-4w2j-m93h-cj5j (#82). |
| 0.12.0 | 22. juli 2026 | — | 64-bit EXE (NSIS)ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Light/dark theme switching — switch manually from the Command Palette, the
sidebar account menu, or Appearance settings, with live preview as you browse
- Automatic theme switching — follow the system appearance, a fixed schedule, or
local sunrise/sunset
- New built-in "Voltius Light" theme
- Importing an SSH config now adopts existing matching connections instead of
creating duplicates (#39)
Changed
- Terminal behavior toggles (scrollback, minimap, select-to-copy, plain paste)
now live in their own dedicated Terminal settings section (#37)
Fixed
- Session cards no longer clip their shadows at the scroll edge (team and
cross-device sessions) |
| 0.11.0 | 21. juli 2026 | — | 64-bit EXE (NSIS)ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Search within the Docker panel — a per-sub-tab find-bar filters resources live
as you type, and Ctrl+F focuses it
- Redesigned snippet step editor — drag to reorder step cards with a clearer
visual hierarchy, plus a slide-over picker for choosing remote paths
Fixed
- Sync: a secret you changed locally is no longer overwritten by a stale copy
from the server (#35) |
| 0.10.1 | 20. juli 2026 | — | 64-bit EXE (NSIS)ARM64 EXE (NSIS) UdgivelsesnoterFixed
- Android: native IME bridge so the on-screen keyboard types into the terminal
correctly, and the keyboard now dismisses when the terminal unmounts (#34) |
| 0.10.0 | 19. juli 2026 | — | 64-bit EXE (NSIS)ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Per-host notes — attach freeform notes to any host, kept in sync with the
host's data
- Plain-paste toggle for the terminal — bypass bracketed paste when a remote
program mishandles it
- Russian language support, selectable from the language picker in Appearance
settings (#26)
Fixed
- Country flag emoji now render as actual flags on Windows instead of
two-letter codes (#31)
- Linux: worked around a WebKitGTK white-screen on AppImage under Wayland
- SSH: shell-integration wrappers now inherit the pty, so commands like
sudo -i behave correctly |
| 0.9.3 | 19. juli 2026 | — | 64-bit EXE (NSIS)ARM64 EXE (NSIS) UdgivelsesnoterFixed
- Auto port-forwarding no longer hijacks a local port that another process
already uses. On Windows, connecting to a Docker-published service on
127.0.0.1 (e.g. MongoDB on 27017) could reach Voltius's tunnel instead of
the real service; Voltius now detects the in-use port and falls back to the
next free one (#33) |
| 0.9.2 | 13. juli 2026 | — | 64-bit EXE (NSIS)ARM64 EXE (NSIS) UdgivelsesnoterFixed
- SSH Config Sync and GitHub Gist Sync no longer keep syncing after the plugin
is disabled — a disabled plugin now stays fully inert (no file watcher, no
background sync, no push on quit)
- SFTP file panes now remember the "show hidden files" setting across panes,
sessions, and relaunches, so dotfiles stay visible once you enable them |
| 0.9.1 | 13. juli 2026 | — | 64-bit EXE (NSIS)ARM64 EXE (NSIS) UdgivelsesnoterFixed
- macOS: the app bundle is now ad-hoc signed, so a directly downloaded .dmg
no longer fails on Apple Silicon with "Voltius.app is damaged and cannot be
opened"; the standard Gatekeeper prompt appears instead |
| 0.4.0 | 12. juni 2026 | — | 64-bit EXE (NSIS)ARM64 EXE (NSIS) UdgivelsesnoterAdded
- Persistent SSH sessions via tmux/screen, enabled by default
- Cross-device shared sessions — pick up live sessions from another device
- Restore workspace on launch, behind a restore-workspace toggle
- New Session quick-launcher popover from the + button
- Ephemeral ssh/serial/local quick-connect from OmniSearch
- Local shell profiles as a Local section in the New Session popover and OmniSearch
- "Connect & Save" creates or updates a saved host for ephemeral connections
- Copy hostname/IP from the host context menu
Changed
- Glass cards and glossy icon tiles for team & remote-device session cards
- Vault header content now counts as icon + count
Fixed
- Default keepalive to balanced across frontend and backend, with stored-preference migration
- Short-circuit personal-vault writes before the keychain read (vault auth) |