A fast, native SSH client for macOS, Windows and Linux.
Tabs, split panes, SFTP, port forwarding and an encrypted vault that syncs between your devices, in a GPU-rendered terminal built in Rust.
Features • Getting Started • Configuration • Architecture • License
- Native and fast: a GPU-rendered terminal on libghostty-vt, parsing on its own thread; the display's full refresh rate under heavy output, sharp text at any HiDPI scale, and input methods (IME) with the composing text at the cursor.
- SSH the way OpenSSH does it:
~/.ssh/config(aliases,ProxyJump, forwards, identity files),known_hostschecks, agent keys, key files, certificates, keyboard-interactive and two-factor codes, and agent forwarding. - Tabs and panes: split a tab to the same host, move between panes, type into every pane at once, reorder tabs by dragging; tabs follow the shell's title.
- Files over SFTP: browse, upload and download (drag and drop too), rename, delete, and edit remote files in your own editor.
- Port forwarding: local, remote and SOCKS (
-L,-R,-D), from the command line, a saved host or the palette while connected. - Saved hosts:
hosts.tomlwith groups, colors, favorites, tags, jump hosts, forwards and a command to run after connecting; a host list and a palette to find and open them. - Vault: passwords, SSH keys, snippets, environments, config files and notes, encrypted and unlocked through the system keychain, Windows Hello or Touch ID, or a passphrase.
- Sync between devices: the vault, hosts and settings through a synced folder (iCloud Drive, Dropbox, Syncthing...), WebDAV, S3-compatible storage or a Git repository, end-to-end encrypted, with a recovery key and device pairing.
- Made for work: a command palette, find in the terminal and its history, session logs, a local terminal beside the SSH tabs, customizable shortcuts, light and dark themes (gradients too), and an interface in 15 languages.
- Reconnects on its own: a lost connection is retried with a back-off, and forwards come back with it.
Download the latest release from GitHub Releases:
| System | File |
|---|---|
| macOS (Apple silicon, Intel) | shellwing_<version>_macos_<arch>.dmg |
| Windows | shellwing_<version>_windows_x86_64-setup.exe, or the .zip |
| Linux (x86_64, aarch64) | the .AppImage, the .deb, or the .tar.gz |
The releases are not signed with an Apple Developer ID or a Windows certificate yet: the first time, macOS asks you to allow it in System Settings › Privacy & Security (Open Anyway), and Windows' SmartScreen under More info › Run anyway. The app tells you when a newer version is out, and installs it when you say so.
It needs Rust (rustup installs the version in rust-toolchain.toml) and Zig 0.16 on PATH (libghostty-vt is built from source):
make build # a release build for this computer, into dist/
make package # and the packages a release ships (docs/releasing.md)
cargo build --release # or by handThen:
shellwing # the window with the host list
shellwing [user@]host[:port] # and a tab connected to the host
shellwing --local # and a tab with a shell on this computerhost can be a name from hosts.toml or an alias from ~/.ssh/config. Per-platform setup (toolchains, Linux libraries, testing on Windows in a VM) is in docs/platforms.md.
Settings, hosts and themes are TOML files in the config directory (~/.config/shellwing on Linux) and apply while the app runs; Settings in the app edits the same files. Everything is described in docs/configuration.md, and the design notes are in docs/design.
The app is a GPUI window over a core with no UI, which also builds for iOS and Android.
| Crate | Role |
|---|---|
crates/app |
The GPUI window: tabs, panes, host list, palette, panels, settings |
crates/core |
Sessions without a UI: connecting and reconnecting, prompts, saved secrets |
crates/term |
Terminal emulation: libghostty-vt on its own thread, producing frames to paint |
crates/ssh |
SSH over russh, as OpenSSH does it |
crates/vault |
The encrypted vault, and its sync |
crates/remote |
Sync backends over the network |
crates/config |
config.toml, hosts.toml and themes |
crates/presence |
Windows Hello and Touch ID |
crates/i18n |
The interface's languages |
crates/note-editor |
The notes' editor |
shellwing is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License, version 3 or (at your option) any later version. See LICENSE. Copyright (C) 2026 HivePaaS.
The name and logo are not covered by the GPL: see TRADEMARKS.md. Contributions are welcome under the terms in CONTRIBUTING.md.
Code adapted from other projects keeps its license and notice: crates/app/src/input.rs is adapted from GPUI's examples/input.rs (Apache-2.0, Zed Industries), crates/note-editor from zorite-editor (MIT; see crates/note-editor/LICENSE), and most built-in terminal themes come from iTerm2-Color-Schemes (MIT; see crates/config/themes/LICENSE-iTerm2-Color-Schemes). The libraries shellwing builds on are all under licenses that allow this (MIT, Apache-2.0, BSD, ISC, Zlib, MPL-2.0 and similar).