A desktop SSH client management tool built with Wails 3 (Go + Vue 3). A purely local application — no cloud, no accounts, no telemetry.
- SSH Connection Management — Organize connections in a tree hierarchy with groups, colors, and tags
- Full Terminal Emulation — xterm.js-based PTY terminal with xterm-256color support
- SFTP File Management — Browse, upload, download, delete, and drag-and-drop file transfers with progress tracking
- Remote File Editing — Edit remote files directly with Monaco Editor
- Server Resource Monitoring — Real-time CPU and memory charts via ECharts
- SSH Key Management — Generate, import, and manage SSH key pairs
- SSH Config Import/Export — Import connections from
~/.ssh/config - Port Forwarding — Local port forwarding with common service presets
- HTTPS Certificate Management — Issue and renew Let's Encrypt certificates on remote servers via acme.sh
- i18n — Chinese and English language support
| Layer | Technology |
|---|---|
| Framework | Wails 3 (v3.0.0-beta.28) |
| Backend | Go 1.25 |
| Frontend | Vue 3 + TypeScript |
| UI Library | Naive UI |
| CSS | UnoCSS |
| Terminal | xterm.js v6 |
| Editor | Monaco Editor |
| Charts | ECharts |
| Database | SQLite (pure Go, no CGO) |
| Encryption | AES-256-GCM |
| Build | Taskfile + Vite |
Workspace / artifacts split: source code lives on the
artifactsbranch, checked out as the sibling worktree../vshell-artifacts. Thismainbranch holds only docs and Claude/skills config — run the commands below in the artifacts worktree.
# Install Wails 3 CLI
go install github.com/wailsapp/wails/v3/cmd/wails3@latest
# Run in development mode (hot-reload for frontend and backend)
wails3 dev
# Build production executable
wails3 buildFrontend-only development:
cd frontend
pnpm install
pnpm dev # Start Vite dev server on port 9245The repo is split in two: main (this workspace) holds docs/ and skills/; the artifacts branch (../vshell-artifacts worktree) holds the source:
vshell-artifacts/
├── main.go # Application entry point, window config, native menu
├── build/
│ └── config.yml # Wails 3 build configuration
├── internal/
│ ├── app/ # Wails AppService (all bound methods exposed to frontend)
│ ├── ssh/ # SSH client, session (PTY), and server monitor
│ ├── sftp/ # SFTP client and transfer manager
│ ├── portforward/ # Local port forwarding
│ ├── zmodem/ # Zmodem protocol support
│ ├── db/ # SQLite database and migrations
│ ├── crypto/ # AES-256-GCM encryption
│ └── models/ # Data models
├── frontend/
│ └── src/
│ ├── components/ # Vue components by domain
│ ├── stores/ # Pinia state stores
│ ├── composables/ # Reusable composables
│ ├── locales/ # i18n translations (zh-CN, en)
│ ├── styles/ # Global CSS with theme variables
│ ├── types/ # TypeScript type definitions
│ └── utils/ # Utility functions
SQLite database stored at ~/Library/Application Support/vshell/vshell.db (macOS). All sensitive data (passwords, private keys, passphrases) is encrypted with AES-256-GCM before storage.