8000 GitHub - vesaaa/vsterm: Cross-platform SSH terminal in native Rust — WindTerm + Termius + FinalShell strengths in one: pro shell UX, sessions & vault, SFTP/ops built-in. Simple, polished, and a little fun (desk pets). 跨平台 SSH 终端(Rust 原生)——集合 WindTerm / Termius / FinalShell 之长:专业终端体验、会话与凭据、文件与运维一体。简单好用有乐趣 · GitHub
[go: up one dir, main page]

Skip to content
8000
vesaaaPublic

About

Cross-platform SSH terminal in native Rust — WindTerm + Termius + FinalShell strengths in one: pro shell UX, sessions & vault, SFTP/ops built-in. Simple, polished, and a little fun (desk pets). 跨平台 SSH 终端(Rust 原生)——集合 WindTerm / Termius / FinalShell 之长:专业终端体验、会话与凭据、文件与运维一体。简单好用有乐趣

Resources

Stars

767 stars

Watchers

1 watching

Forks

Latest commit

 

History

58 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 

Repository files navigation

VsTerm

English | 简体中文

VsTerm

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

https://www.vsterm.com

  • 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

Highlights

What stands out in v1.3

  • 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. .sh starts with #!/bin/sh or #!/bin/bash; .json, .config, .yaml, and .txt start 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.

Screenshots

Terminal workspace

VsTerm terminal overview with session tree, terminal, and bottom pane

Route Info: network topology with proxy / VPN links

VsTerm Route Info topology of an OpenWrt router with sing-box and WireGuard links

IP quality check

VsTerm IP quality panel with risk, org, location, and blacklist results

Path trace with geo / ASN enrichment

VsTerm route trace with latency bars, loss, ASN, location and coordinates

Feature comparison across mainstream SSH terminal tools

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.

Standard vs 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.

Cloud sync & data security

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 & connect effects — ops with a pulse

  • Desk pets (Options → Effects → Desk Pet). Drag anywhere in the window.
Pro · 14-day trial
Monkey
Monkey
Golden Buddha
Golden Buddha
Taishang Laojun
Taishang Laojun
Cloud Bun
Cloud Bun
Ops Zombie
Ops Zombie
Free
Dog
Dog
Qi fighter
Qi fighter
Jade loong
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)

First run

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.

Windows (SmartScreen)

  1. Unpack and double-click VsTerm.exe
  2. If Windows protects your PC, open More info
  3. Choose Run anyway

Or: right-click VsTerm.exe → Properties → check Unblock → OK, then open again.

macOS (blocked / damaged)

  1. Download the matching chip DMG: Apple Silicon vsterm-macos-arm64.dmg, Intel vsterm-macos-x64.dmg
  2. Open the DMG and drag VsTerm into Applications (runtime data such as GeoIP is inside the .app — no separate tools/ folder)
  3. If Gatekeeper blocks it: System Settings → Privacy & Security → Open Anyway
  4. If quarantine still blocks it:
xattr -cr /Applications/VsTerm.app

Linux

chmod +x VsTerm
./VsTerm

Font licenses

Embedded fonts are SIL OFL 1.1; see assets/fonts/.

License & copyright

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.

About

Cross-platform SSH terminal in native Rust — WindTerm + Termius + FinalShell strengths in one: pro shell UX, sessions & vault, SFTP/ops built-in. Simple, polished, and a little fun (desk pets). 跨平台 SSH 终端(Rust 原生)——集合 WindTerm / Termius / FinalShell 之长:专业终端体验、会话与凭据、文件与运维一体。简单好用有乐趣

Resources

Stars

767 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

0