Voltius: a local-first SSH client with end-to-end encrypted sync
A lightning-fast, modern, local-first SSH/SFTP/Serial client. Real-time E2EE sync, Team vaults, live sharing, plugins and more. Open-source Termius alternative for Windows, Linux, macOS & Android. Built with Rust/Tauri.
At a glance
- What is it?
- Voltius is an SSH, SFTP and serial client for Windows, Linux, macOS and Android, built with Rust and Tauri, that syncs an encrypted vault through a GitHub Gist, a Cloudflare Worker or any S3 bucket you own. It needs no account and exports to open JSON, and it is still labelled beta.
- Who is it for?
- Voltius suits an individual or a team that wants one SSH client across desktop and Android, keeps its own credentials, and refuses to hand a key management problem to a vendor, because sync runs through infrastructure you own. It does not suit a shop that needs audited RBAC, and the team features live behind paid plans even though the core client is free.
- Can I use it commercially?
- Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
- Is it still maintained?
- Yes. The repository last received commits 1 day ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 23, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What Voltius is and what it replaces
Voltius is described as a local-first SSH, SFTP and serial client with end-to-end encrypted sync, plugins, and no account required, positioned as a modern alternative to Termius. The primary language is TypeScript, the UI is Tauri, and the badges and the Cargo workspace show a Rust core.
The category it competes in is crowded, so the differentiators are specific. The first is import coverage: the README lists Termius, MobaXterm, PuTTY and KiTTY, SecureCRT, ZOC Terminal and CSV as import sources, most in one click straight from the installed app. The second is that the data is always exportable as open JSON, encrypted if you want it, so there is no vendor lock-in in the direction that matters most for a credential store.
The third is the sync model, and it is the most interesting part of the design. Rather than running a server, sync happens through infrastructure the user already owns and controls. Gist sync uses a private GitHub Gist with a bring-your-own token. Cloudflare sync goes through a Cloudflare Worker and an R2 bucket that you deploy from Settings. S3 sync works with any S3-compatible bucket, and the README names AWS, R2, B2, Wasabi, Hetzner, Scaleway and MinIO.
The client itself covers the standard ground: persistent sessions through tmux or screen on the host, workspace restore so tabs, splits, running processes and scrollback survive a restart, split panes with input broadcast, a local terminal for Bash, Zsh, Fish, PowerShell, WSL, Git Bash and CMD, dual-pane SFTP with drag and drop, a process manager, live system monitoring, folders and tags, a command palette, a theme editor, container management for Docker and Proxmox LXC, and a plugin system with an official registry or your own custom repo.
How the sync and encryption model works
The zero-knowledge framing is repeated across the sync options, and the repository topics include e2ee, zero-knowledge and crdt, which tells you the merge side is conflict-free rather than last-write-wins.
Each of the three sync backends is end-to-end encrypted, and in each case the server side never sees the plaintext. A private GitHub Gist is a store of encrypted blobs with no Voltius server in the path. A Cloudflare Worker and R2 bucket are yours to deploy, and the README notes the same zero-knowledge model with storage you control. An S3 bucket works the same way, with no server for you to deploy at all, and the list of providers covers both hosted object stores and self-hosted MinIO.
The Rust side of this is visible in the workspace. The Cargo workspace has four members, src-tauri for the application, plus crates/voltius-crypto, crates/voltius-crypto-wasm and crates/voltius-diagnostics. The wasm crypto crate is what lets the encryption run in the web build of the interface, so the browser-rendered side can read and write the same encrypted vault as the native side. The keystore/ directory at the top level holds the key material, and the topics list carries the credential-manager tag alongside the homelab and sysadmin ones.
There is a real engineering note in the release profile about the panic strategy. The workspace release profile keeps panic at the default unwind rather than aborting, because the Termius import path relies on std::panic::catch_unwind to turn import-time panics from the V8 and leveldb decoders into recoverable errors. That is a specific failure mode of importing another product's data format, handled explicitly rather than left to chance.
Installing on Linux and the other platforms
One command installs the app on Debian and Ubuntu, Fedora and RHEL, and Arch.
curl -fsSL https://repo.voltius.app/setup.sh | sudo bashOn the Debian family and the Fedora family the script adds the signed Voltius repository, so updates then arrive through the normal package manager, sudo apt upgrade or sudo dnf upgrade. Packages are GPG-signed and provided for both amd64 and arm64, so a Raspberry Pi or an ARM workstation is a supported target. On Arch it installs the voltius-bin package from the AUR with paru or yay, and the README is explicit that that package is community-maintained rather than published by the project's own CI, with voltius and voltius-git also available for people who want to build from source or track main.
The manual Debian and Ubuntu setup shows the pieces the script does for you.
curl -fsSL https://repo.voltius.app/voltius.gpg | sudo gpg --dearmor -o /usr/share/keyrings/voltius.gpg
echo "deb [signed-by=/usr/share/keyrings/voltius.gpg] https://repo.voltius.app/deb stable main" | sudo tee /etc/apt/sources.list.d/voltius.list
sudo apt update && sudo apt install voltiusThe Fedora and RHEL equivalent imports the key, writes the repo file and installs the package.
sudo rpm --import https://repo.voltius.app/voltius.gpg
sudo curl -fsSL https://repo.voltius.app/voltius.repo -o /etc/yum.repos.d/voltius.repo
sudo dnf install voltiusOne constraint is worth noting before you plan an install. Prebuilt Linux packages need glibc 2.39 or newer, which the README maps to Ubuntu 24.04+, Debian 13+, Fedora 40+ and RHEL 10+. On older releases you use the Flatpak or build from source. The Arch package is simpler.
yay -S voltius-bin # prebuilt binary, tracks releasesThe MCP server, the plugin system and the dev workflow
The MCP server is the feature that separates this from a plain terminal client. It lets Claude Code, Claude Desktop, Cursor or VS Code drive your fleet, and the README counts 52 tools covering hosts, keys, identities, sessions, commands, files, vaults, folders, the audit log and your installed plugins. It is off by default, turned on with one toggle in Settings, then Integrations, and the README stresses that it never leaves your machine.
The tool count has grown, and the README says so explicitly. The MCP post was written for version 0.19.0 when the surface was 41 tools, and it notes that the design and the security model still hold while the tool list has grown. That is a useful signal about the trajectory of the project, since 41 to 52 tools in a short span suggests active development of the agent-facing surface.
The plugin system installs from the official registry at github.com/VoltiusApp/marketplace or points at a custom repository you control. The JavaScript build has a dedicated plugin build step and a generated types step, which is what makes a typed plugin API possible.
"build:plugins": "node scripts/build-plugins.mjs",
"gen:plugin-types": "node scripts/gen-plugin-types.mjs"The frontend is a Vite and TypeScript project with pnpm 11.5.2 as the pinned package manager, CodeMirror for editing surfaces, and Vitest for tests.
"test": "vitest run",
"build": "tsc && node scripts/build-plugins.mjs && vite build",The full build type-checks first, then builds the plugins, then bundles the frontend, so a type error stops the build rather than shipping.
Where Voltius is the wrong choice
The first limitation is the beta label. The README carries a beta badge, and while the release history is fast, v0.60.0, v0.59.0 and v0.58.0 landing on consecutive days in October 2026, a version number below 1.0 in a credential manager is a signal. The encryption model may be sound and the client may still be rough at the edges, and those are different risks.
The second is the licensing of the team features. The README is explicit that everything listed in the feature list is free forever, but it also points to a pricing page for Pro, Teams and Business. So team vaults with member and role permissions, which the screenshots show in detail, are the paid tier. A company that wants shared credential access with a role model is looking at a subscription, not at the free client.
The third is the trust model of the sync backends. Zero knowledge means the server cannot read the vault, which is the point, but the client holds the encryption key. That is the correct design for a credential store and it still means the security of the whole system rests on the local machine and on the key. A device with the vault open is a device with the credentials.
The fourth is platform coverage. Windows, Linux, macOS and Android are the stated platforms, and there is no iOS client listed, so the cross-device live session feature has an asymmetric shape, with a phone able to mirror a desktop session but not the reverse in a native app.
The fifth is the dependency on the machine you run it on being yours. Self-hosting the sync backend is the whole point, but it also means a team has to operate a Worker, an R2 bucket or an S3 bucket, and the practical cost of that is a line item that Termius, which runs the server for you, does not have.
Licence, release cadence and the cost of running it yourself
The project is under the AGPL-3.0 licence, with the LICENSE file at the root and a NOTICE.md alongside it. For a desktop application that is usually an uninteresting choice, but AGPL matters here in a specific way: the plugin system and the code that links against it are covered by the copyleft, so a team that forks Voltius to add internal features and distributes it internally has obligations that a permissive licence would not impose. It is a licence that suits a community project built on donated labour, and it is a licence worth checking with counsel before forking.
The repository is not archived and the last push was on 2026-10-19, the same day as the v0.60.0 release, with v0.59.0 and v0.58.0 on the two preceding days. Releases are frequent enough that you will be updating often, and the CHANGELOG.md at the root is the place to read what changed.
The running cost is the interesting part, and it is small if you choose it well. The client is free. Sync through a Gist costs nothing. Sync through R2 or an S3 bucket costs the storage and the egress of a few encrypted blobs. A Cloudflare Worker costs close to nothing at this scale, and a self-hosted MinIO costs a machine you probably already have.
The repository also carries a good deal of infrastructure for a project that is mostly a desktop app: Dockerfile.android, Dockerfile.android-emulator, Dockerfile.cross-compile and Dockerfile.tauri-headless, a compose.headless.yml for a headless container, a scripts/ directory, a pnpm workspace, a Cargo workspace with a rust-toolchain.toml, and a tests/ directory with vitest configuration.
Editorial conclusion
Voltius suits an individual or a team that wants one SSH client across desktop and Android, keeps its own credentials, and refuses to hand a key management problem to a vendor, because sync runs through infrastructure you own. It does not suit a shop that needs audited RBAC, and the team features live behind paid plans even though the core client is free. Verify the platform build first, since prebuilt Linux packages need glibc 2.39 or newer, and treat the beta label as a statement about the client's polish rather than about its encryption model.
Frequently asked questions
How does Voltius sync without a central server?
Sync is end-to-end encrypted through infrastructure you own. The README lists three options: a private GitHub Gist with your own token, a Cloudflare Worker and R2 bucket you deploy from Settings, and any S3-compatible bucket including AWS, R2, B2, Wasabi, Hetzner, Scaleway and MinIO. No Voltius server sees the plaintext in any of them.
How do I install Voltius on Linux?
Run curl -fsSL https://repo.voltius.app/setup.sh | sudo bash, which adds the signed repository on Debian, Ubuntu, Fedora and RHEL so updates come through apt or dnf, and installs voltius-bin from the AUR on Arch with paru or yay. Prebuilt packages need glibc 2.39 or newer, so on older releases use the Flatpak or build from source.
What can the Voltius MCP server do and is it safe to enable?
The README counts 52 tools covering hosts, keys, identities, sessions, commands, files, vaults, folders, the audit log and installed plugins, for Claude Code, Claude Desktop, Cursor or VS Code. It is off by default, enabled with one toggle in Settings then Integrations, and the README says it never leaves your machine.
Can I import my existing SSH setup into Voltius?
Yes. The README lists Termius, MobaXterm, PuTTY and KiTTY, SecureCRT, ZOC Terminal and CSV as import sources, most in one click straight from the installed app. Your data is always exportable as open JSON, encrypted if you want it.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/voltiusapp-voltius)Was this useful?