Skip to content
LicoyPublic

About

SSHYard is a native desktop SSH / SFTP client for macOS, Windows and Linux, bringing terminals, file management and AI assistance into one app. | SSHYard 是一款跨平台桌面 SSH / SFTP 客户端,支持 macOS、Windows 和 Linux,搭配 AI Agent以及更多工具帮助您提升效率

Topics

Resources

Stars

182 stars

Watchers

1 watching

Forks

Latest commit

 

History

231 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English · 简体中文 · 繁體中文 · 한국어 · 日本語

SSHYard logo

SSHYard

SSHYard is a native desktop SSH / SFTP client for macOS, Windows and Linux, bringing terminals, file management and AI assistance into one app.

Screenshots

Terminal and AI assistant
Terminal and AI assistant
SFTP file manager
SFTP file manager
System monitor
System monitor
AI assistant settings
AI assistant settings

Features

  • Terminal

    • Tabs, split panes and terminal search
    • True colour, wide characters, input methods and mouse support for tmux, vim and htop
    • Shared connections across panes on the same host, with automatic reconnection
  • File management

    • SFTP alongside the terminal, with directory following and a built-in editor
    • Drag-and-drop support and folder transfers
    • Transfer queue with pause, resume and retry
  • AI assistant

    • Run commands and edit files through a dedicated assistant for each host
    • Connect AI providers, or use ACP agents detected on this computer (Claude Code, Codex, Grok, Gemini CLI and more), several at once, each with the models and thinking levels it offers; their work stays on the remote host
    • Choose Ask, Review or Full access mode, with configurable AI review
  • Agent integrations

    • Connect local AI agents through the open API, MCP and Skill
    • Browse hosts, establish connections and run commands without exposing saved credentials
    • One-click Skill setup for Claude Code and Codex; agent access is off by default
  • Hosts and credentials

    • Import from SSH config or connect quickly with user@host:port
    • Passwords, OpenSSH / PEM / PuTTY keys and SSH agent support
    • Local encrypted credential storage, key generation and public-key installation
  • Backup and restore

    • Password-encrypted backups of hosts, credentials, snippets and settings, with restore on another device
    • Save locally or to WebDAV, S3-compatible storage and private GitHub Gists
    • Manual or scheduled backups, with configurable retention
  • Networking

    • Multi-hop jump hosts and HTTP / SOCKS5 proxies
    • Local, remote and dynamic port forwarding
  • Everyday use

    • Server metrics at a glance
    • Light and dark themes, with English, Simplified Chinese, Traditional Chinese, Korean and Japanese

Linux credentials and dependencies

Run SSHYard as your normal desktop user, without root or sudo. Saving and unlocking credentials requires libsecret 0.19 or newer (libsecret-1.so.0), your user's session D-Bus, and an available, unlocked Secret Service provider, such as GNOME Keyring or another compatible provider configured for your desktop. Installing libsecret alone does not provide a running Secret Service. The system service stores SSHYard's master key; credentials remain encrypted locally in secrets.enc.

  • Debian / Ubuntu: the .deb declares libsecret-1-0 (>= 0.19) alongside GTK; install through a dependency-resolving package manager, for example sudo apt install ./sshyard_<version>_amd64.deb, using the actual downloaded filename
  • Arch Linux: the generated PKGBUILD declares libsecret and gtk3; MyGo's Debian-to-Arch mapping drops version constraints, so ensure libsecret is at least 0.19
  • Archive / install.sh: installation is per-user under ~/.local and does not automatically install libsecret, GTK or a Secret Service provider; arrange these dependencies first, and do not run the script as root

Missing system packages or a tenant policy disabling session D-Bus / Secret Service may require an administrator to resolve. Use your desktop's existing keyring manager to unlock its collection when needed. SSHYard uses native UI and does not require WebKitGTK.

For a read-only connectivity check, run this from a terminal in the same desktop login session as SSHYard, without sudo (requires gdbus):

gdbus call --session --dest org.freedesktop.secrets \
  --object-path /org/freedesktop/secrets \
  --method org.freedesktop.Secret.Service.ReadAlias default

A returned collection path means the service is reachable; / means it has no default collection. If a collection path is returned, replace /returned/collection/path below with that exact path to inspect its lock state:

gdbus call --session --dest org.freedesktop.secrets \
  --object-path /returned/collection/path \
  --method org.freedesktop.DBus.Properties.Get org.freedesktop.Secret.Collection Locked

true means locked and false means unlocked. These calls may activate the session service, but do not read passwords, unlock collections or modify/delete keyring entries. They only inspect connectivity and collection state; even an unlocked collection does not guarantee SSHYard can read or save its master key. A D-Bus connection error points to the login session or its access policy; ServiceUnknown usually means no Secret Service provider is available for activation. See the ReadAlias API for its return values.

Development

Built with mygo. Requires Go 1.27.3 (GOTOOLCHAIN can download it). No cgo is needed.

# run
go run .

# run the development app; on macOS prefer an "Apple Development" identity
# stable signing can reduce keychain prompts; self-signing does not guarantee
# access across rebuilds, and macOS may still request authorization
scripts/run-dev-app.sh

# keep data in a separate directory
SSHYARD_DATA_DIR=/tmp/demo go run .

# a local SSH server for testing (macOS / Linux)
go run ./cmd/devsshd -addr 127.0.0.1:2222 -user demo -password demo -root /tmp/remote

# a local HTTP / SOCKS proxy for testing
go run ./cmd/devproxy -addr 127.0.0.1:3128

# tests and checks
go test -race -count=1 ./...
go vet ./...
gofmt -l .

# regenerate the locale catalog after editing locales/*.json
GOFLAGS=-mod=mod go run github.com/egoist/mygo/cmd/mygo generate

# package into dist/
go tool mygo build -platform linux/amd64,linux/arm64,windows/amd64,windows/arm64,darwin/arm64,darwin/amd64 -o dist

To try it against devsshd, add a host 127.0.0.1, port 2222, user demo, password demo.

Contributor rules are in AGENTS.md.

Community Support

License

SSHYard is licensed under the GNU Affero General Public License v3.0.

About

SSHYard is a native desktop SSH / SFTP client for macOS, Windows and Linux, bringing terminals, file management and AI assistance into one app. | SSHYard 是一款跨平台桌面 SSH / SFTP 客户端,支持 macOS、Windows 和 Linux,搭配 AI Agent以及更多工具帮助您提升效率

Topics

Resources

Stars

182 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages