English | 简体中文
Cross-platform SSH terminal manager (native Rust)
Drawing on the strengths of WindTerm, Termius, and FinalShell:
professional terminal UX · modern session & credential management · files and ops in one place
- GUI:
egui+eframe(wgpu: Windows DX12 / macOS Metal / Linux Vulkan) - Terminal:
alacritty_terminal - SSH: built-in
russh(PTY, remote commands, and SFTP share one authenticated session) - Config: YAML; credentials: OS keyring + encrypted vault
- Terminal + files stay in one flow: shell tabs, bottom SFTP pane, sudo/elevated SFTP, and ZMODEM transfers are integrated into the same SSH workflow.
- Quick Insert, from the terminal itself: right-click the session and choose Quick Insert. It types a GUID (with or without hyphens), Unix seconds or milliseconds, an ISO 8601 timestamp, today's date (
YYYY-MM-DD), or an 8-character random string (digits, letters, mixed, or hex) onto the command line. - Jump hosts, certificates and find: reach a server through a saved jump host (like
ssh -J), log in with OpenSSH certificates, and search the screen and the whole scrollback with ⌘F / Ctrl+Shift+F. - New files from the SFTP pane: right-click the empty area of the file list and choose New file.
.shstarts with#!/bin/shor#!/bin/bash;.json,.config,.yaml, and.txtstart empty. The file is written to the host immediately, and the name is selected so you can rename it in place. - Desk pets: Monkey, Golden Buddha, Taishang Laojun, Cloud Bun, and Ops Zombie are Pro (14-day trial). Dog, qi fighter, jade loong, and the excavator are free. Pictures below.
- Ops panels are first-class, not side utilities: routes, connections, path trace, IP quality, system info, and live host metrics are built into the app.
- Docker / Podman without leaving the session: a Containers tab lists containers and images on the SSH host or this computer, with start / stop, logs, exec, update checks, safe upgrades with rollback, port forwarding to this computer, and disk cleanup.
- Every process on the server: a Processes tab (Linux and macOS hosts) lists processes as a sortable list or a parent/child tree, and shows for each one its executable, full command line, working directory, what started it (systemd service, container, SSH login, cron…), its ports and connections, disk I/O and, on request, its environment, with end / force-kill and systemd restart / stop / logs.
- Java diagnostics, containers included: for a JVM on the host or in a Docker / Podman container, see heap and GC live, find the thread burning CPU and its stack, spot deadlocks, take a class histogram or a heap dump to download, or start Arthas in one click — even on servers without internet.
- Disk analysis and management: find what fills a disk (directories, large files, deleted files still held open) and clean it up safely; see disks, partitions, LVM and SMART health, initialise new disks, grow after a cloud resize, test disk speed, manage swap, check fstab, and mount NFS / SMB / object storage or connect iSCSI.
- Security audit: a read-only check for intrusion signs, risky SSH settings and brute-force attempts, accounts, exposed databases, the firewall, pending security updates and file permissions, each with its fix command; one-click fixes (Pro) roll back on their own unless kept.
- Progress is visible: both SFTP and ZMODEM (
rz/sz) transfers expose progress / queue state instead of disappearing into a blocking dialog or a blind background task. - Topology and line-quality tooling is richer than a plain terminal: router-aware topology (OpenWrt, Asuswrt-Merlin, Linux) with proxy / VPN links, DHCP clients and policy routes, per-hop geo/ASN enrichment, fraud / datacenter / blacklist checks, and connection charts are available without leaving the session.
- Native desktop app: no Electron; Rust +
wgpu, with software-render fallback for VM / RDP-style environments.
Legend: ✅ built in and surfaced as a first-class workflow, ◐ supported in a narrower / companion-tool / plugin-style way, ✗ not a headline built-in capability in the usual product workflow.
| Capability | VsTerm | WindTerm | Termius | FinalShell | MobaXterm | SecureCRT | Xshell | Tabby |
|---|---|---|---|---|---|---|---|---|
| Implementation language | Rust | C/C++ | Electron | Java | C++ | C++ | C++ | Electron |
| Max terminal scrollback lines | 100k / 500k (Pro) | unlimited | - | - | 360,000 | 128,000 | ~2.1B | 25,000 |
| Command-block folding / outline in terminal output | ✅ | ✅ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
| Integrated SFTP pane / remote file manager | ✅ | ✅ | ✅ | ✅ | ✅ | ◐ | ◐ | ◐ |
| SFTP transfer progress / queue visibility | ✅ | ◐ | ◐ | ✅ | ◐ | ◐ | ◐ | ◐ |
ZMODEM (rz / sz) built in |
✅ | ✅ | ✗ | ✅ | ◐ | ✅ | ✅ | ✅ |
| ZMODEM progress surfaced in the app | ✅ | ✅ | ✗ | ◐ | ◐ | ◐ | ◐ | ◐ |
| Terminal ↔ file-pane path sync | ✅ | ✗ | ◐ | ◐ | ✗ | ✗ | ✗ | ✗ |
Elevated SFTP that can follow sudo -i / su |
✅ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
| Route diagram / policy-routing topology | ✅ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
| Path trace with geo / ASN enrichment | ✅ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
| Built-in IP quality / reputation checks | ✅ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
| CPU / memory / storage graphical monitor | ✅ | ◐ | ✗ | ✅ | ✗ | ✗ | ✗ | ✗ |
| Connection / socket monitoring panel | ✅ | ✗ | ✗ | ◐ | ✗ | ✗ | ✗ | ✗ |
| Connect effects / motion polish | ✅ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
| Desk pet | ✅ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ | ✗ |
| SSH via SOCKS5 / HTTP CONNECT proxy | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ | ✅ |
Notes:
- The table is intentionally strict: it favors built-in, documented, end-user-visible workflows over “possible via shell commands” or “can be scripted externally”.
- Some commercial tools split file-transfer UX into a companion app or a separate tab, which is why several cells are
◐instead of✅. - Scrollback figures use publicly documented defaults / maxima where available (
-= not clearly documented). VsTerm grows dynamically: 100,000 lines on Standard, 500,000 on Pro.
VsTerm runs fully offline for SSH work. Personal Cloud (account login, entitlement, and encrypted sync) is optional. Pro unlocks after a binding-checked cloud entitlement (e.g. GitHub Star promo or redeem). Every install also gets a 14-day trial of the local Pro features: the 500,000-line scrollback, the Pro setup tools below, and the Monkey, Golden Buddha, Taishang Laojun, Cloud Bun, and Ops Zombie pets. Cloud sync is not part of the trial.
| Capability | Standard | Pro |
|---|---|---|
| Local SSH sessions, SFTP, ZMODEM, ops panels | ✅ | ✅ |
| Encrypted local credential vault | ✅ | ✅ |
| Max terminal scrollback | 100,000 lines | 500,000 lines |
| Processes, Disk analysis and cleanup, disk devices / SMART / fstab check, speed test, swap, initialise and grow disks, Java process overview and thread CPU | ✅ | ✅ |
| Add NFS / SMB / object storage mounts, connect iSCSI targets, add a disk to an LVM volume group | 14-day trial | ✅ |
| Java class histogram, heap dump, one-click Arthas | 14-day trial | ✅ |
| Security audit, with fix commands to copy or run in the terminal | ✅ | ✅ |
| One-click security fixes (harden SSH, enable ufw, fix permissions) | 14-day trial | ✅ |
| View, remount, unmount, remove and disconnect existing network storage | ✅ | ✅ |
| Desk pet — dog, qi fighter, excavator, jade loong | ✅ | ✅ |
| Desk pet — monkey, Golden Buddha, Taishang Laojun, Cloud Bun, Ops Zombie | 14-day trial | ✅ |
| Personal Cloud account / devices | ✅ | ✅ |
| Cloud sync (sessions, commands, layouts, preferences, credentials) | ✗ | ✅ |
| Future enhancements | Not supported | Continuously supported |
Buy Pro: sign in under Preferences → Account, then use the purchase action (it opens the buy page in your browser). You can also go directly to https://www.vsterm.com/vsbuy.
Uploads are client-side encrypted. The server stores ciphertext only and cannot read your sessions, commands, layouts, preferences, or vault contents.
| Layer | Algorithm / model |
|---|---|
| Device identity (local key pair) | Ed25519 — private key stays in the OS keyring; never uploaded |
| Sync object encryption | AES-256-GCM, key derived from your master password (Argon2id → VSC2 blob) |
| Credential vault inside sync | Already encrypted locally; sync wraps the sealed vault.enc, not plaintext passwords |
Without your master password (and the derived sync key), cloud blobs are not decryptable — including by VsTerm operators.
- Desk pets (Options → Effects → Desk Pet). Drag anywhere in the window.
| Pro · 14-day trial | ||||
Monkey |
Golden Buddha |
Taishang Laojun |
Cloud Bun |
Ops Zombie |
| Free | ||||
Dog |
Qi fighter |
Jade loong |
||
The excavator is free too.
- Connect effects: trail inhale / shatter rebuild; tab accent sweep after connect
- Falls back to a lower frame cadence when no hardware GPU is available (e.g. some RDP / WARP setups)
Download a build from Releases, unpack, and run. The first launch creates ~/.vsterm/ (including a demo session tree).
To bring over a host list: File → Import from Others, then WindTerm (.wind / profiles/), Xshell (Sessions / .xsh), FinalShell (data dir or conn/), MobaXterm (MobaXterm.ini / .mxtsessions), Tabby (config.yaml), OpenSSH (~/.ssh/config), or SecureCRT (Sessions / .ini). SSH hosts and
714A
groups come across (two folder levels). Encrypted passwords are not copied — you enter them on first connect. A private-key file path keeps public-key auth; named keys stored inside Xshell / FinalShell are not resolved.
Packages are not Microsoft / Apple notarized yet — the OS may warn once; use the steps below.
- Unpack and double-click
VsTerm.exe - If Windows protects your PC, open More info
- Choose Run anyway
Or: right-click VsTerm.exe → Properties → check Unblock → OK, then open again.
- Download the matching chip DMG: Apple Silicon
vsterm-macos-arm64.dmg, Intelvsterm-macos-x64.dmg - Open the DMG and drag VsTerm into Applications (runtime data such as GeoIP is inside the
.app— no separatetools/folder) - If Gatekeeper blocks it: System Settings → Privacy & Security → Open Anyway
- If quarantine still blocks it:
xattr -cr /Applications/VsTerm.appchmod +x VsTerm
./VsTermEmbedded fonts are SIL OFL 1.1; see assets/fonts/.
Official builds of VsTerm — Free and Pro — may be used free of charge for personal and commercial purposes, including at work and in production. The license restricts decompiling, cracking, tampering and redistribution; the source code is All Rights Reserved. Full terms: LICENSE.
Copyright holder: vesaa
| Use | Allowed? |
|---|---|
| Personal or commercial use of official builds (Free / Pro), incl. company production | Yes |
| Pro on several of your own devices; sharing a Pro account | Yes |
| Distributing unmodified official installers inside your organisation | Yes |
| Public download mirrors | Only with written permission |
| Decompiling, reverse engineering, cracking license / trial / Pro checks | No |
| Modifying, repackaging or rebranding builds; selling them | No |
| Publishing, forking or embedding the source code | No |
| Good-faith security research, reported privately | Yes |
Pro, volume licensing and security reports: vesaazheng@gmail.com
Third-party libraries and embedded fonts remain under their own licenses.