zync-sh/zync

Open-source SSH client for developers & DevOps with SFTP, tunneling, and a modern terminal. Built with Rust & Tauri.

TypeScript

82

1,685 commits

updated Oct 13, 2026

See the code

See what people are saying

SourceMessageScoreDate

Zync SSH workspace: SSH workspace for desktop (Windows, macOS, Linux): terminal, SFTP, port forwarding, custom themes Release [2.35.1] (r/selfhosted)

Hi folks, I've been working on Zync, a desktop SSH workspace for Windows, macOS and Linux. Website: [https://zync.thesudoer.in](https://zync.thesudoer.in/) GitHub: [https://github.com/zync-sh/zync](https://github.com/zync-sh/zync) Zync is built for the everyday work of connecting to servers,…

1

Oct 15, 2026

README


Zync Banner

License: FSL 1.1 ALv2  Version  Platform  GitHub Stars

Website  •   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.

Why Zync

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.

  • One app for the whole workflow: connections, terminals, files, tunnels, vault, and snippets in a persistent sidebar
  • A terminal you can use before you add hosts: local shells and remote SSH share the same stack (Local terminal)
  • Your data stays yours: no Zync server for hosts or credentials; optional encrypted sync goes to your own cloud (Your data)
  • Source available: desktop releases use FSL-1.1-ALv2 and become Apache 2.0 after two years; ideas and contributions are welcome (License, Contributing)

Everyday infra work should feel fast, clear, and under your control.

Screenshot 2026-09-03 145401

Local terminal

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.

  • Windows: pick PowerShell, Command Prompt, Git Bash, or any WSL distro in Settings → Terminal
  • Linux & macOS: your system shell is ready on first launch
  • One terminal stack: GPU-accelerated rendering, themes, font ligatures, ghost suggestions, search, multi-tab shells, and session restore

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.

Your data

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 livesWhat that means
Your machineHosts, tunnels, snippets, and settings are saved locally in your Zync data folder
Encrypted VaultPasswords 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 accountOptional 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

How Zync compares

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.

FeatureZyncTermiusVS Code Remote SSHMobaXterm
PlatformsLinux, Windows, macOSLinux, Windows, macOS, iOS, AndroidWhere VS Code runsWindows-first (official)
FilesSFTP manager + in-app editorSFTP clientRemote explorer in the IDESFTP browser + editor
VaultOn-device encrypted vaultLocal vault on free; cloud/team vault needs paid planSSH keys / system agentLocal saved sessions (master password)
SyncYour cloud (Google Drive; encrypted)No cross-device sync on free; Termius cloud on paidNone (local workspace)None (local sessions)
Source licenseFSL-1.1-ALv2 (source available; Apache 2.0 after two years)ProprietaryVS Code OSS; Remote SSH is a Microsoft extensionProprietary (free Home + paid Pro)
PricingFree (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 FitOne native desktop app for SSH, files, vault, and tunnels without a vendor-owned workspaceMobile + cross-device sync inside the Termius platformEditing and debugging code as a full IDE remote sessionWindows-heavy workflows with X11 and classic session tooling

See vendor websites for current pricing and plan details.

Rule of thumb:

  • VS Code Remote SSH → IDE-first workflows
  • MobaXterm → Windows + X11 workflows
  • Termius → Mobile and cloud-sync workflows
  • Zync → Native SSH workspace with local-first data ownership

Highlights

Connect

  • SSH with key or password auth, jump hosts, and connection folders
  • SSH config import and visual port forwarding — local (-L), remote (-R), and SOCKS (-D); paste ssh commands to import; per-host and global dashboard; auto-start and reconnect restore (port forwarding guide)
  • Jump from local shells to remote sessions in the same app (see Local terminal)

Work

  • xterm 6 terminal with WebGL/DOM rendering, multi-tab shells, optional idle suspend, and ghost suggestions
  • SFTP file manager with drag-and-drop and an in-app CodeMirror 6 editor
  • Dashboard, snippets, and session persistence (tabs, terminals, working directory)

Secure

  • Your data stays on your devices. No Zync-hosted workspace; see Your data
  • Encrypted Vault for credentials: recovery key, revision history, OS keychain remember-unlock
  • Google Drive sync to your account: encrypted hosts, tunnels, snippets, and settings (Sync & Backup workspace)

Extend

  • AI sidebar (Ctrl+I): Ask and Agent modes with terminal context
  • Plugin marketplace: feature plugins, themes, icon themes, and editor providers
  • Command palette (⌘K / Ctrl+K), rich shortcuts, auto-updates, cross-platform packages

Installation

Download the latest build from the Releases page, or follow the platform steps below. Full guide: zync.thesudoer.in/docs/installation.

PlatformFormat
Linux.deb, .rpm, .AppImage, .pkg.tar.zst (Arch), .tar.gz
Windows.exe
macOS.dmg

Linux

One-line install (AppImage)

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

Debian / Ubuntu (APT repository)

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.

Arch (pacman repository)

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.

Windows & macOS

  • Windows: run the .exe installer from Releases.
  • macOS: open the .dmg and drag Zync to Applications.

First run

  1. Install Zync and launch the app.
  2. Start working: open a local terminal from the welcome screen, or add a connection (import ~/.ssh/config, use the connection wizard, or create a host manually).
  3. Open Terminal, Files, or Dashboard from a host tab. Your workspace restores on the next launch.

Workspace overview

  • Sidebar: hosts, folders, Vault, Sync & Backup, snippets, and release notes as first-class tabs
  • Host panels: Terminal, Files, Dashboard, Tunnels, Port Forwarding; shells stay alive when you switch
  • Settings: General, Terminal, Appearance, Layout & Navigation, File Manager, AI, Shortcuts, Plugins, About (+ in-app settings.json editor)
  • Theme JSON: In Settings → Appearance → Theme files, export current colors, edit the JSON, then import to validate and preview before Apply. This section is at the bottom of Appearance; View theme keys lists every supported key with a copyable example. Omitted element keys inherit the theme. Only palette and global element-color overrides are replaced; host-specific colors, fonts, layout and connections stay unchanged. Version 1 supports opaque #rrggbb colors, not arbitrary CSS, gradients, images or plugin code. Cancel leaves the current theme intact.

Documentation

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.

For developers

Tech stack

LayerTechnologies
ShellTauri 2.x + Rust
UIReact 19, TypeScript, Vite 7, Tailwind CSS 4
EditorCodeMirror 6 + editor provider plugins
Terminal@xterm/xterm 6 (WebGL, ligatures, search, fit, web-links)
StateZustand

Full dependency lists: package.json (frontend) and src-tauri/Cargo.toml (backend: russh, portable-pty, argon2, redb, keyring, sysinfo, etc.).

Prerequisites

  • Node.js (LTS) and Rust (stable) on all platforms
  • Linux (Ubuntu/Debian):
    sudo apt-get install libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
    
  • Windows: Microsoft C++ Build Tools and WebView2 (usually preinstalled on Windows 11)
  • macOS: Xcode Command Line Tools (xcode-select --install)

Quick start

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.

Scripts & tests

CommandDescription
npm run tauri devDev server with hot reload
npm run tauri buildProduction binaries
npm run buildFrontend only
npm run type-checkTypeScript check
npm run testFull agent test suite
npm run previewPreview production frontend

More targets (test:vault-*, test:session-persistence, test:terminal-renderer, …) are in package.json.

Architecture

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.

Extensions

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.

Contributing

Contributions are welcome. See CONTRIBUTING.md for fork/branch workflow, conventions, and PR guidelines.

Support Zync

If Zync helps you in your daily workflow, consider supporting development.

Changelog

See CHANGELOG.md for release history.

License

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.


zync.thesudoer.in

cross-platform
developer-tools
devops
port-forwarding
remote-access
secure-shell
sftp
ssh-client
sysadmin
tauri
terminal

zync-sh/zync

Open-source SSH client for developers & DevOps with SFTP, tunneling, and a modern terminal. Built with Rust & Tauri.

TypeScript

82

1,685 commits

updated Oct 13, 2026

See the code

See what people are saying

SourceMessageScoreDate

Zync SSH workspace: SSH workspace for desktop (Windows, macOS, Linux): terminal, SFTP, port forwarding, custom themes Release [2.35.1] (r/selfhosted)

Hi folks, I've been working on Zync, a desktop SSH workspace for Windows, macOS and Linux. Website: [https://zync.thesudoer.in](https://zync.thesudoer.in/) GitHub: [https://github.com/zync-sh/zync](https://github.com/zync-sh/zync) Zync is built for the everyday work of connecting to servers,…

1

Oct 15, 2026

README


Zync Banner

License: FSL 1.1 ALv2  Version  Platform  GitHub Stars

Website  •   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.

Why Zync

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.

  • One app for the whole workflow: connections, terminals, files, tunnels, vault, and snippets in a persistent sidebar
  • A terminal you can use before you add hosts: local shells and remote SSH share the same stack (Local terminal)
  • Your data stays yours: no Zync server for hosts or credentials; optional encrypted sync goes to your own cloud (Your data)
  • Source available: desktop releases use FSL-1.1-ALv2 and become Apache 2.0 after two years; ideas and contributions are welcome (License, Contributing)

Everyday infra work should feel fast, clear, and under your control.

Screenshot 2026-09-03 145401

Local terminal

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.

  • Windows: pick PowerShell, Command Prompt, Git Bash, or any WSL distro in Settings → Terminal
  • Linux & macOS: your system shell is ready on first launch
  • One terminal stack: GPU-accelerated rendering, themes, font ligatures, ghost suggestions, search, multi-tab shells, and session restore

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.

Your data

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 livesWhat that means
Your machineHosts, tunnels, snippets, and settings are saved locally in your Zync data folder
Encrypted VaultPasswords 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 accountOptional 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

How Zync compares

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.

FeatureZyncTermiusVS Code Remote SSHMobaXterm
PlatformsLinux, Windows, macOSLinux, Windows, macOS, iOS, AndroidWhere VS Code runsWindows-first (official)
FilesSFTP manager + in-app editorSFTP clientRemote explorer in the IDESFTP browser + editor
VaultOn-device encrypted vaultLocal vault on free; cloud/team vault needs paid planSSH keys / system agentLocal saved sessions (master password)
SyncYour cloud (Google Drive; encrypted)No cross-device sync on free; Termius cloud on paidNone (local workspace)None (local sessions)
Source licenseFSL-1.1-ALv2 (source available; Apache 2.0 after two years)ProprietaryVS Code OSS; Remote SSH is a Microsoft extensionProprietary (free Home + paid Pro)
PricingFree (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 FitOne native desktop app for SSH, files, vault, and tunnels without a vendor-owned workspaceMobile + cross-device sync inside the Termius platformEditing and debugging code as a full IDE remote sessionWindows-heavy workflows with X11 and classic session tooling

See vendor websites for current pricing and plan details.

Rule of thumb:

  • VS Code Remote SSH → IDE-first workflows
  • MobaXterm → Windows + X11 workflows
  • Termius → Mobile and cloud-sync workflows
  • Zync → Native SSH workspace with local-first data ownership

Highlights

Connect

  • SSH with key or password auth, jump hosts, and connection folders
  • SSH config import and visual port forwarding — local (-L), remote (-R), and SOCKS (-D); paste ssh commands to import; per-host and global dashboard; auto-start and reconnect restore (port forwarding guide)
  • Jump from local shells to remote sessions in the same app (see Local terminal)

Work

  • xterm 6 terminal with WebGL/DOM rendering, multi-tab shells, optional idle suspend, and ghost suggestions
  • SFTP file manager with drag-and-drop and an in-app CodeMirror 6 editor
  • Dashboard, snippets, and session persistence (tabs, terminals, working directory)

Secure

  • Your data stays on your devices. No Zync-hosted workspace; see Your data
  • Encrypted Vault for credentials: recovery key, revision history, OS keychain remember-unlock
  • Google Drive sync to your account: encrypted hosts, tunnels, snippets, and settings (Sync & Backup workspace)

Extend

  • AI sidebar (Ctrl+I): Ask and Agent modes with terminal context
  • Plugin marketplace: feature plugins, themes, icon themes, and editor providers
  • Command palette (⌘K / Ctrl+K), rich shortcuts, auto-updates, cross-platform packages

Installation

Download the latest build from the Releases page, or follow the platform steps below. Full guide: zync.thesudoer.in/docs/installation.

PlatformFormat
Linux.deb, .rpm, .AppImage, .pkg.tar.zst (Arch), .tar.gz
Windows.exe
macOS.dmg

Linux

One-line install (AppImage)

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

Debian / Ubuntu (APT repository)

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.

Arch (pacman repository)

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.

Windows & macOS

  • Windows: run the .exe installer from Releases.
  • macOS: open the .dmg and drag Zync to Applications.

First run

  1. Install Zync and launch the app.
  2. Start working: open a local terminal from the welcome screen, or add a connection (import ~/.ssh/config, use the connection wizard, or create a host manually).
  3. Open Terminal, Files, or Dashboard from a host tab. Your workspace restores on the next launch.

Workspace overview

  • Sidebar: hosts, folders, Vault, Sync & Backup, snippets, and release notes as first-class tabs
  • Host panels: Terminal, Files, Dashboard, Tunnels, Port Forwarding; shells stay alive when you switch
  • Settings: General, Terminal, Appearance, Layout & Navigation, File Manager, AI, Shortcuts, Plugins, About (+ in-app settings.json editor)
  • Theme JSON: In Settings → Appearance → Theme files, export current colors, edit the JSON, then import to validate and preview before Apply. This section is at the bottom of Appearance; View theme keys lists every supported key with a copyable example. Omitted element keys inherit the theme. Only palette and global element-color overrides are replaced; host-specific colors, fonts, layout and connections stay unchanged. Version 1 supports opaque #rrggbb colors, not arbitrary CSS, gradients, images or plugin code. Cancel leaves the current theme intact.

Documentation

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.

For developers

Tech stack

LayerTechnologies
ShellTauri 2.x + Rust
UIReact 19, TypeScript, Vite 7, Tailwind CSS 4
EditorCodeMirror 6 + editor provider plugins
Terminal@xterm/xterm 6 (WebGL, ligatures, search, fit, web-links)
StateZustand

Full dependency lists: package.json (frontend) and src-tauri/Cargo.toml (backend: russh, portable-pty, argon2, redb, keyring, sysinfo, etc.).

Prerequisites

  • Node.js (LTS) and Rust (stable) on all platforms
  • Linux (Ubuntu/Debian):
    sudo apt-get install libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf
    
  • Windows: Microsoft C++ Build Tools and WebView2 (usually preinstalled on Windows 11)
  • macOS: Xcode Command Line Tools (xcode-select --install)

Quick start

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.

Scripts & tests

CommandDescription
npm run tauri devDev server with hot reload
npm run tauri buildProduction binaries
npm run buildFrontend only
npm run type-checkTypeScript check
npm run testFull agent test suite
npm run previewPreview production frontend

More targets (test:vault-*, test:session-persistence, test:terminal-renderer, …) are in package.json.

Architecture

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.

Extensions

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.

Contributing

Contributions are welcome. See CONTRIBUTING.md for fork/branch workflow, conventions, and PR guidelines.

Support Zync

If Zync helps you in your daily workflow, consider supporting development.

Changelog

See CHANGELOG.md for release history.

License

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.


zync.thesudoer.in

cross-platform
developer-tools
devops
port-forwarding
remote-access
secure-shell
sftp
ssh-client
sysadmin
tauri
terminal

Significant stargazers

Ethan Heilman

285 followers · starred Aug 2026