Skip to content

zync-sh/zync

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

233 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation


Zync Banner

License: MIT  Version  Platform  GitHub Stars

Website  •   Releases  •   Installation  •   Development  •   Extensions  •   Contributing  •   Changelog



Zync is a powerful, cross-platform SSH client built for speed, security, and aesthetics. Rebuilt from the ground up using Rust and Tauri, it delivers a native desktop experience with minimal resource usage and maximum performance—ideal for developers, system administrators, and power users who demand a reliable SSH workflow.

Key Features

Feature Description
Native Performance Blazing-fast startup, low memory footprint, and efficient resource utilization
SSH Tunneling Manage local and remote SSH tunnels with an intuitive, visual interface
SFTP File Manager Full SFTP support with drag-and-drop, CRUD operations, and remote file handling
Integrated Terminal Built-in xterm.js-based terminal with syntax highlighting for multiple languages
AI Command Bar Natural language to shell command translation (Ctrl+I) with local model support
Productivity System-level keyboard shortcuts and command palette (⌘K / Ctrl+K) for rapid navigation
Auto-Updates Seamless background updates to keep you on the latest version
Cross-Platform Linux (.deb, .rpm, .AppImage), Windows (.exe), macOS (.dmg)
Theming Multiple themes (Dark, Light, Dracula) with persistence across restarts

Installation

Download the latest release for your platform from the Releases Page.

Platform Format
Linux .deb, .rpm, .AppImage
Windows .exe
macOS .dmg

Tech Stack

Layer Technologies
Desktop Shell Tauri 2.x
Backend Rust
Frontend React 19 + TypeScript
Build Tool Vite 7
Styling Tailwind CSS 4
State Management Zustand

Architecture

Zync follows a layered architecture with clear separation between the native backend and web-based frontend:

┌─────────────────────────────────────────────────────────────────┐
│                        Tauri Application                         │
├─────────────────────────────────────────────────────────────────┤
│  Frontend (React + TypeScript)                                   │
│  ├── UI Components (Sidebar, FileManager, Terminal, Tunnels)     │
│  ├── State (Zustand stores: connections, fileSystem, settings)   │
│  └── IPC Layer (invoke) ──────────────────────┐                  │
├───────────────────────────────────────────────┼──────────────────┤
│  Backend (Rust)                               │                  │
│  ├── Tauri Commands (ssh_*, fs_*, tunnel_*,   │                  │
│  │   terminal_*, sftp_*, settings_*, etc.)    │                  │
│  ├── russh / russh-sftp (SSH & SFTP client)   │                  │
│  ├── portable-pty (terminal emulation)        │                  │
│  └── Plugins (opener, store, dialog, updater) │                  │
└───────────────────────────────────────────────┼──────────────────┘
                                                │
                         invoke("command", args)│
Layer Responsibility
React UI Renders the interface; handles user input, routing, and local state
Zustand Persists connection data, file paths, settings, and tunnel configs
Tauri IPC invoke() calls bridge the frontend to Rust commands
Rust commands SSH connections, PTY management, file I/O, tunnel lifecycle
Tauri plugins Dialog, clipboard, auto-updater, persistent store

Dependencies

Frontend (npm)

Package Purpose
@tauri-apps/api Tauri API bindings for the webview
@tauri-apps/plugin-* Clipboard, dialog, opener, process, updater
@uiw/react-codemirror Code editor with syntax highlighting
xterm + addons Terminal emulation (fit, search, web links, WebGL)
framer-motion Animations and transitions
cmdk Command palette UI
recharts Charts and data visualization
lucide-react Icon set
react-window Virtualized lists for performance
@dnd-kit/core Drag-and-drop for file manager
zustand State management

Backend (Rust)

Crate Purpose
tauri Desktop application framework
russh / russh-keys / russh-sftp SSH and SFTP client implementation
portable-pty Cross-platform pseudo-terminal (PTY)
tokio Async runtime
serde / serde_json Serialization
reqwest HTTP client for updates
tauri-plugin-store Persistent key-value store
tauri-plugin-updater Auto-update functionality

Development

Prerequisites

  • Node.js (LTS recommended)
  • Rust (latest stable)
  • Linux (Ubuntu/Debian):
    sudo apt-get install libwebkit2gtk-4.1-dev libappindicator3-dev librsvg2-dev patchelf

Quick Start

# Clone the repository
git clone https://github.com/zync-sh/zync.git
cd zync

# Install dependencies
npm install

# Run in development mode
npm run tauri dev

Build for Production

npm run tauri build

Available Scripts

Command Description
npm run tauri dev Start development server with hot reload
npm run tauri build Build production binaries
npm run build Build frontend only (TypeScript + Vite)
npm run type-check Run TypeScript type checking
npm run preview Preview production frontend build

Extensions

Zync supports plugins and themes through the built-in Marketplace. Browse the Plugin Catalog for available extensions, or visit zync-extensions to develop and submit your own.

Contributing

Contributions are welcome. Please read CONTRIBUTING.md for guidelines on how to get started, including development setup, code conventions, and pull request guidelines.

Changelog

See CHANGELOG.md for a list of changes in each release.

License

MIT © Zync


zync.thesudoer.in

About

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

Topics

Resources

Contributing

Stars

Watchers

Forks

Contributors

Languages