Open-source SSH client for developers & DevOps with SFTP, tunneling, and a modern terminal. Built with Rust & Tauri.
See the codeWebsite • Releases • Why Zync • Local terminal • Your data • Compare • Highlights • Installation • Documentation • Developers • Extensions • Contributing • Support
Zync is a fast, native SSH workspace for developers and ops: connections, terminals, files, vault, sync, and AI in one desktop app. Built with Rust and Tauri, it stays light on resources while giving you a full remote workflow without juggling separate tools.
Manage hosts from a persistent sidebar, keep shells alive while you switch panels, and pick up exactly where you left off after a restart.
One native workspace for everything you do over SSH. Connections, terminals, SFTP, tunnels, vault, and sync. Native, fast, and designed so you own your data.
Everyday infra work should feel fast, clear, and under your control.
Local shells and remote SSH in one app.
Zync is a full desktop terminal before it is an SSH client. Install it, open the app, and run commands on your own machine. No hosts, no keys, and no remote setup required.
When you add SSH hosts later, local and remote sessions share the same workspace, sidebar, and terminal experience. Use Zync as your daily driver on your laptop, then connect to production when you need to.
You own your workspace data. Zync is a desktop app, not a hosted SSH service. We do not store your hosts, credentials, terminal sessions, or workspace on Zync servers.
| Where it lives | What that means |
|---|---|
| Your machine | Hosts, tunnels, snippets, and settings are saved locally in your Zync data folder |
| Encrypted Vault | Passwords and keys can stay in an on-device vault; AI API keys are always stored there; only you hold the passphrase and recovery key |
| Your cloud account | Optional sync backs up to your Google Drive (drive.appdata). Collections are encrypted before upload. Zync never keeps a copy in our infrastructure |
No Zync account is required to use the app. Install it, work offline, unlock the vault when you need secrets, and turn on sync only if you want encrypted backup across your own devices.
Roadmap: additional cloud providers for personal multi-device sync, plus an optional self-hosted team backend for orgs that want shared sync without sending credentials to Zync infrastructure. Today ships with Google Drive; team hosting is not available yet.
Details: docs/SECURITY.md
Why pick Zync over Termius, VS Code Remote SSH, or MobaXterm? Each tool optimizes for a different job. Zync targets a single desktop workspace for day-to-day SSH ops: hosts, terminals, files, tunnels, vault, and sync together.
Comparisons reflect each product's typical use today, not every paid tier or plugin. Free-plan limits are noted in bold.
| Feature | Zync | Termius | VS Code Remote SSH | MobaXterm |
|---|---|---|---|---|
| Platforms | Linux, Windows, macOS | Linux, Windows, macOS, iOS, Android | Where VS Code runs | Windows-first (official) |
| Files | SFTP manager + in-app editor | SFTP client | Remote explorer in the IDE | SFTP browser + editor |
| Vault | On-device encrypted vault | Local vault on free; cloud/team vault needs paid plan | SSH keys / system agent | Local saved sessions (master password) |
| Sync | Your cloud (Google Drive; encrypted) | No cross-device sync on free; Termius cloud on paid | None (local workspace) | None (local sessions) |
| Source license | FSL-1.1-ALv2 (source available; Apache 2.0 after two years) | Proprietary | VS Code OSS; Remote SSH is a Microsoft extension | Proprietary (free Home + paid Pro) |
| Pricing | Free (no subscription) | Free Starter (no sync/snippets/cloud vault); Pro from ~$10/mo (annual) | Free (VS Code + Remote SSH extension) | Free Home (12 sessions, 2 tunnels); Pro ~$69/user/year with perpetual license (updates optional) |
| Best Fit | One native desktop app for SSH, files, vault, and tunnels without a vendor-owned workspace | Mobile + cross-device sync inside the Termius platform | Editing and debugging code as a full IDE remote session | Windows-heavy workflows with X11 and classic session tooling |
See vendor websites for current pricing and plan details.
Rule of thumb:
-L), remote (-R), and SOCKS (-D); paste ssh commands to import; per-host and global dashboard; auto-start and reconnect restore (port forwarding guide)Download the latest build from the Releases page, or follow the platform steps below. Full guide: zync.thesudoer.in/docs/installation.
| Platform | Format |
|---|---|
| Linux | .deb, .rpm, .AppImage, .pkg.tar.zst (Arch), .tar.gz |
| Windows | .exe |
| macOS | .dmg |
The install script downloads the latest AppImage, installs to ~/.local/share/zync/, adds ~/.local/bin/zync, and registers a desktop entry. No sudo required (x86_64 only).
curl -fsSL https://zync.thesudoer.in/install.sh | sh
To remove an AppImage install placed by the script:
curl -fsSL https://zync.thesudoer.in/uninstall.sh | sh
Recommended on Debian-based distros. Keeps Zync updated with apt upgrade alongside your system packages.
# 1. Prepare the APT keyring directory (missing on minimal installs)
sudo install -m 0755 -d /etc/apt/keyrings
# 2. Add the GPG key
curl -fsSL https://apt.zync.thesudoer.in/key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/zync.gpg
sudo chmod a+r /etc/apt/keyrings/zync.gpg
# 3. Add the repository
echo "deb [signed-by=/etc/apt/keyrings/zync.gpg] https://apt.zync.thesudoer.in stable main" | sudo tee /etc/apt/sources.list.d/zync.list
# 4. Update and install
sudo apt update && sudo apt install zync
Upgrade later: sudo apt update && sudo apt install --only-upgrade zync (or sudo apt upgrade).
Remove: sudo apt remove zync. To drop the repo as well: sudo rm /etc/apt/sources.list.d/zync.list /etc/apt/keyrings/zync.gpg.
Manual .deb: sudo dpkg -i zync_*.deb then sudo apt-get install -f if dependencies are missing.
Minimal distros: if Zync fails to start, install WebKit/GTK deps: sudo apt install libwebkit2gtk-4.1-0 libgtk-3-0.
Uses system WebKit (same idea as the .deb). Updates with pacman -Syu — not the in-app AppImage updater.
# 1. Import and locally sign the Zync packaging key (same key as APT)
curl -fsSL https://arch.zync.thesudoer.in/key.gpg -o /tmp/zync.gpg
sudo pacman-key --add /tmp/zync.gpg
FPR="$(gpg --show-keys --with-colons /tmp/zync.gpg 2>/dev/null | awk -F: '/^fpr:/ { print $10; exit }')"
sudo pacman-key --lsign-key "$FPR"
# 2. Add the repo
sudo tee /etc/pacman.d/zync.conf >/dev/null <<'EOF'
[zync]
SigLevel = Required TrustedOnly
Server = https://arch.zync.thesudoer.in/$arch
EOF
grep -q 'pacman.d/zync.conf' /etc/pacman.conf || \
echo 'Include = /etc/pacman.d/zync.conf' | sudo tee -a /etc/pacman.conf
sudo pacman -Syu zync
Manual package: download zync-*-x86_64.pkg.tar.zst from Releases and run sudo pacman -U ./zync-*-x86_64.pkg.tar.zst (no auto-update unless the repo above is enabled).
Operator details: packaging/arch/README.md.
.exe installer from Releases..dmg and drag Zync to Applications.~/.ssh/config, use the connection wizard, or create a host manually).settings.json editor)#rrggbb colors, not
arbitrary CSS, gradients, images or plugin code. Cancel leaves the current theme intact.User guides & install help: zync.thesudoer.in/docs
Public repository guidance: Security notes, contributing, and release history.
Internal architecture, implementation references, and planning notes live in
the private zync-docs repository.
Maintainers with access can clone it beside this checkout; desktop references
are under ../zync-docs/zync/docs/. It is not required to build or run Zync.
| Layer | Technologies |
|---|---|
| Shell | Tauri 2.x + Rust |
| UI | React 19, TypeScript, Vite 7, Tailwind CSS 4 |
| Editor | CodeMirror 6 + editor provider plugins |
| Terminal | @xterm/xterm 6 (WebGL, ligatures, search, fit, web-links) |
| State | Zustand |
Full dependency lists: package.json (frontend) and src-tauri/Cargo.toml (backend: russh, portable-pty, argon2, redb, keyring, sysinfo, etc.).
sudo apt-get install libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
xcode-select --install)git clone https://github.com/zync-sh/zync.git
cd zync
npm install
npm run tauri dev
Production build: npm run tauri build
Release builds need a real GOOGLE_CLIENT_ID (and optionally GOOGLE_CLIENT_SECRET in src-tauri/.env) for Google Drive vault sync. Validated in src-tauri/build.rs.
| Command | Description |
|---|---|
npm run tauri dev | Dev server with hot reload |
npm run tauri build | Production binaries |
npm run build | Frontend only |
npm run type-check | TypeScript check |
npm run test | Full agent test suite |
npm run preview | Preview production frontend |
More targets (test:vault-*, test:session-persistence, test:terminal-renderer, …) are in package.json.
src/features/ (React UI) → Zustand → Tauri IPC → src-tauri/ (Rust)
invoke (request/response) ├── SSH / SFTP (russh)
Channel (streaming I/O) ├── PTY (portable-pty)
├── Tunnels (port forwards, SOCKS)
├── Vault + sync (crypto, redb, keyring)
└── Ghost, AI agent, session persistence
Layout: UI and feature logic live in src/features/; native work runs in src-tauri/. One-shot work uses invoke; streaming paths (notably terminal PTY output) use Tauri Channels.
Command families include ssh_*, terminal_*, tunnel_*, vault_*, sync_*, ghost_*, ai_agent_*, session_*, and settings_*. Maintainer implementation references are in the private documentation repository described above. Public contributors can use the source, tests, and contributing guide without that checkout.
Discover plugins in the built-in Marketplace or on the Extensions page. Community developers can follow the development guide, API and permissions, publishing guide, and best practices. The current signed registry is maintained in zync-plugin-registry.
Contributions are welcome. See CONTRIBUTING.md for fork/branch workflow, conventions, and PR guidelines.
If Zync helps you in your daily workflow, consider supporting development.
See CHANGELOG.md for release history.
Desktop application: FSL-1.1-ALv2, with Apache 2.0 rights for each version after two years. Earlier MIT releases remain MIT; the separately maintained plugin SDK and plugin UI remain MIT.
285 followers · starred Aug 2026
Open-source SSH client for developers & DevOps with SFTP, tunneling, and a modern terminal. Built with Rust & Tauri.
See the codeWebsite • Releases • Why Zync • Local terminal • Your data • Compare • Highlights • Installation • Documentation • Developers • Extensions • Contributing • Support
Zync is a fast, native SSH workspace for developers and ops: connections, terminals, files, vault, sync, and AI in one desktop app. Built with Rust and Tauri, it stays light on resources while giving you a full remote workflow without juggling separate tools.
Manage hosts from a persistent sidebar, keep shells alive while you switch panels, and pick up exactly where you left off after a restart.
One native workspace for everything you do over SSH. Connections, terminals, SFTP, tunnels, vault, and sync. Native, fast, and designed so you own your data.
Everyday infra work should feel fast, clear, and under your control.
Local shells and remote SSH in one app.
Zync is a full desktop terminal before it is an SSH client. Install it, open the app, and run commands on your own machine. No hosts, no keys, and no remote setup required.
When you add SSH hosts later, local and remote sessions share the same workspace, sidebar, and terminal experience. Use Zync as your daily driver on your laptop, then connect to production when you need to.
You own your workspace data. Zync is a desktop app, not a hosted SSH service. We do not store your hosts, credentials, terminal sessions, or workspace on Zync servers.
| Where it lives | What that means |
|---|---|
| Your machine | Hosts, tunnels, snippets, and settings are saved locally in your Zync data folder |
| Encrypted Vault | Passwords and keys can stay in an on-device vault; AI API keys are always stored there; only you hold the passphrase and recovery key |
| Your cloud account | Optional sync backs up to your Google Drive (drive.appdata). Collections are encrypted before upload. Zync never keeps a copy in our infrastructure |
No Zync account is required to use the app. Install it, work offline, unlock the vault when you need secrets, and turn on sync only if you want encrypted backup across your own devices.
Roadmap: additional cloud providers for personal multi-device sync, plus an optional self-hosted team backend for orgs that want shared sync without sending credentials to Zync infrastructure. Today ships with Google Drive; team hosting is not available yet.
Details: docs/SECURITY.md
Why pick Zync over Termius, VS Code Remote SSH, or MobaXterm? Each tool optimizes for a different job. Zync targets a single desktop workspace for day-to-day SSH ops: hosts, terminals, files, tunnels, vault, and sync together.
Comparisons reflect each product's typical use today, not every paid tier or plugin. Free-plan limits are noted in bold.
| Feature | Zync | Termius | VS Code Remote SSH | MobaXterm |
|---|---|---|---|---|
| Platforms | Linux, Windows, macOS | Linux, Windows, macOS, iOS, Android | Where VS Code runs | Windows-first (official) |
| Files | SFTP manager + in-app editor | SFTP client | Remote explorer in the IDE | SFTP browser + editor |
| Vault | On-device encrypted vault | Local vault on free; cloud/team vault needs paid plan | SSH keys / system agent | Local saved sessions (master password) |
| Sync | Your cloud (Google Drive; encrypted) | No cross-device sync on free; Termius cloud on paid | None (local workspace) | None (local sessions) |
| Source license | FSL-1.1-ALv2 (source available; Apache 2.0 after two years) | Proprietary | VS Code OSS; Remote SSH is a Microsoft extension | Proprietary (free Home + paid Pro) |
| Pricing | Free (no subscription) | Free Starter (no sync/snippets/cloud vault); Pro from ~$10/mo (annual) | Free (VS Code + Remote SSH extension) | Free Home (12 sessions, 2 tunnels); Pro ~$69/user/year with perpetual license (updates optional) |
| Best Fit | One native desktop app for SSH, files, vault, and tunnels without a vendor-owned workspace | Mobile + cross-device sync inside the Termius platform | Editing and debugging code as a full IDE remote session | Windows-heavy workflows with X11 and classic session tooling |
See vendor websites for current pricing and plan details.
Rule of thumb:
-L), remote (-R), and SOCKS (-D); paste ssh commands to import; per-host and global dashboard; auto-start and reconnect restore (port forwarding guide)Download the latest build from the Releases page, or follow the platform steps below. Full guide: zync.thesudoer.in/docs/installation.
| Platform | Format |
|---|---|
| Linux | .deb, .rpm, .AppImage, .pkg.tar.zst (Arch), .tar.gz |
| Windows | .exe |
| macOS | .dmg |
The install script downloads the latest AppImage, installs to ~/.local/share/zync/, adds ~/.local/bin/zync, and registers a desktop entry. No sudo required (x86_64 only).
curl -fsSL https://zync.thesudoer.in/install.sh | sh
To remove an AppImage install placed by the script:
curl -fsSL https://zync.thesudoer.in/uninstall.sh | sh
Recommended on Debian-based distros. Keeps Zync updated with apt upgrade alongside your system packages.
# 1. Prepare the APT keyring directory (missing on minimal installs)
sudo install -m 0755 -d /etc/apt/keyrings
# 2. Add the GPG key
curl -fsSL https://apt.zync.thesudoer.in/key.gpg | sudo gpg --dearmor -o /etc/apt/keyrings/zync.gpg
sudo chmod a+r /etc/apt/keyrings/zync.gpg
# 3. Add the repository
echo "deb [signed-by=/etc/apt/keyrings/zync.gpg] https://apt.zync.thesudoer.in stable main" | sudo tee /etc/apt/sources.list.d/zync.list
# 4. Update and install
sudo apt update && sudo apt install zync
Upgrade later: sudo apt update && sudo apt install --only-upgrade zync (or sudo apt upgrade).
Remove: sudo apt remove zync. To drop the repo as well: sudo rm /etc/apt/sources.list.d/zync.list /etc/apt/keyrings/zync.gpg.
Manual .deb: sudo dpkg -i zync_*.deb then sudo apt-get install -f if dependencies are missing.
Minimal distros: if Zync fails to start, install WebKit/GTK deps: sudo apt install libwebkit2gtk-4.1-0 libgtk-3-0.
Uses system WebKit (same idea as the .deb). Updates with pacman -Syu — not the in-app AppImage updater.
# 1. Import and locally sign the Zync packaging key (same key as APT)
curl -fsSL https://arch.zync.thesudoer.in/key.gpg -o /tmp/zync.gpg
sudo pacman-key --add /tmp/zync.gpg
FPR="$(gpg --show-keys --with-colons /tmp/zync.gpg 2>/dev/null | awk -F: '/^fpr:/ { print $10; exit }')"
sudo pacman-key --lsign-key "$FPR"
# 2. Add the repo
sudo tee /etc/pacman.d/zync.conf >/dev/null <<'EOF'
[zync]
SigLevel = Required TrustedOnly
Server = https://arch.zync.thesudoer.in/$arch
EOF
grep -q 'pacman.d/zync.conf' /etc/pacman.conf || \
echo 'Include = /etc/pacman.d/zync.conf' | sudo tee -a /etc/pacman.conf
sudo pacman -Syu zync
Manual package: download zync-*-x86_64.pkg.tar.zst from Releases and run sudo pacman -U ./zync-*-x86_64.pkg.tar.zst (no auto-update unless the repo above is enabled).
Operator details: packaging/arch/README.md.
.exe installer from Releases..dmg and drag Zync to Applications.~/.ssh/config, use the connection wizard, or create a host manually).settings.json editor)#rrggbb colors, not
arbitrary CSS, gradients, images or plugin code. Cancel leaves the current theme intact.User guides & install help: zync.thesudoer.in/docs
Public repository guidance: Security notes, contributing, and release history.
Internal architecture, implementation references, and planning notes live in
the private zync-docs repository.
Maintainers with access can clone it beside this checkout; desktop references
are under ../zync-docs/zync/docs/. It is not required to build or run Zync.
| Layer | Technologies |
|---|---|
| Shell | Tauri 2.x + Rust |
| UI | React 19, TypeScript, Vite 7, Tailwind CSS 4 |
| Editor | CodeMirror 6 + editor provider plugins |
| Terminal | @xterm/xterm 6 (WebGL, ligatures, search, fit, web-links) |
| State | Zustand |
Full dependency lists: package.json (frontend) and src-tauri/Cargo.toml (backend: russh, portable-pty, argon2, redb, keyring, sysinfo, etc.).
sudo apt-get install libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
xcode-select --install)git clone https://github.com/zync-sh/zync.git
cd zync
npm install
npm run tauri dev
Production build: npm run tauri build
Release builds need a real GOOGLE_CLIENT_ID (and optionally GOOGLE_CLIENT_SECRET in src-tauri/.env) for Google Drive vault sync. Validated in src-tauri/build.rs.
| Command | Description |
|---|---|
npm run tauri dev | Dev server with hot reload |
npm run tauri build | Production binaries |
npm run build | Frontend only |
npm run type-check | TypeScript check |
npm run test | Full agent test suite |
npm run preview | Preview production frontend |
More targets (test:vault-*, test:session-persistence, test:terminal-renderer, …) are in package.json.
src/features/ (React UI) → Zustand → Tauri IPC → src-tauri/ (Rust)
invoke (request/response) ├── SSH / SFTP (russh)
Channel (streaming I/O) ├── PTY (portable-pty)
├── Tunnels (port forwards, SOCKS)
├── Vault + sync (crypto, redb, keyring)
└── Ghost, AI agent, session persistence
Layout: UI and feature logic live in src/features/; native work runs in src-tauri/. One-shot work uses invoke; streaming paths (notably terminal PTY output) use Tauri Channels.
Command families include ssh_*, terminal_*, tunnel_*, vault_*, sync_*, ghost_*, ai_agent_*, session_*, and settings_*. Maintainer implementation references are in the private documentation repository described above. Public contributors can use the source, tests, and contributing guide without that checkout.
Discover plugins in the built-in Marketplace or on the Extensions page. Community developers can follow the development guide, API and permissions, publishing guide, and best practices. The current signed registry is maintained in zync-plugin-registry.
Contributions are welcome. See CONTRIBUTING.md for fork/branch workflow, conventions, and PR guidelines.
If Zync helps you in your daily workflow, consider supporting development.
See CHANGELOG.md for release history.
Desktop application: FSL-1.1-ALv2, with Apache 2.0 rights for each version after two years. Earlier MIT releases remain MIT; the separately maintained plugin SDK and plugin UI remain MIT.
285 followers · starred Aug 2026