Local-first SSH + SFTP server workspace for solo developers and small teams.
TermDock helps you connect to servers, transfer files, check server health, recover failed transfers, manage port forwarding, and catch risky commands before they hit production.
中文 README · Download · SSH Config Import · SSH Troubleshooting · Security · Contributing · Release Notes
TermDock is not trying to be another giant terminal app. It is built as a practical server workspace for people who need SSH, SFTP, transfer recovery, and server checks in the same place.
-
Dangerous command guardrails Catch risky commands before they hit your server.
-
SFTP transfer recovery Retry failed uploads and downloads from Retry Center instead of starting over.
-
Server health in the same workspace Check CPU, memory, disk, network, processes, and failed services after SSH login.
-
Local-first workflow No cloud account required, and SSH credentials stay local.
Get the latest build from GitHub Releases.
- Windows installer:
TermDock.Setup.*.exe - Windows portable: the Windows
.zip - macOS Apple Silicon: the
arm64.dmg - macOS Intel: the
x64.dmg
| Platform | Recommended file | Use when |
|---|---|---|
| Windows | TermDock.Setup.*.exe |
You want the normal installer. |
| Windows | Windows .zip |
You want a portable build without installation. |
| macOS Apple Silicon | macOS arm64 .dmg or .zip |
Your Mac uses Apple Silicon, such as M1/M2/M3/M4. |
| macOS Intel | macOS x64 .dmg or .zip |
Your Mac uses an Intel processor. |
| Source | Source code | You want to run or develop TermDock locally. |
TermDock is currently focused on macOS and Windows 11.
- Download TermDock only from the official GitHub Releases page.
- Windows may show SmartScreen or publisher warnings for new open-source builds.
- macOS may show Gatekeeper warnings while public-trust signing/notarization is still in progress.
- If you are not sure which macOS CPU you have, check Apple menu -> About This Mac.
If the app cannot be installed or opened, see Install And Launch Troubleshooting.
- Password and private-key authentication
- Session create/edit/delete/test
- Folder-style session grouping, search, favorites, and recency sorting
- Multi-tab xterm terminal with reconnect flow
- SSH config import from
~/.ssh/configwith preview, duplicate handling, and post-import open action - SSH connection errors include a plain-language reason, next-step suggestion, and raw error
- Session templates and quick startup command profiles
- Browse, create, rename, delete, upload, and download remote files
- Upload/download queues with per-task cancel and cancel-all actions
- Per-direction transfer rate limits
- Schedule windows for queued transfers
- Conflict policies: overwrite, skip, rename
- Pending queue restore after app restart
- Remote file open/edit with save-back conflict protection
- Dangerous-command approval bar before risky terminal writes
- Built-in and custom guardrail rules
- Per-source toggles for keyboard, paste, command history, snippets, quick profiles, and startup commands
- Temporary approvals for the current tab or session group
- Retry Center for failed transfer history and one-click requeue
- Recoverable global error bar with contextual actions
- Server health panel for CPU, memory, disk, network, load, uptime, processes, and failed services
- Port forwarding manager for Local (
-L), Remote (-R), and Dynamic SOCKS5 (-D) forwards - Operation Center for active transfers, deletes, port forwards, diagnostics jobs, and reconnect actions
- Diagnostics logs, disconnect reports, and bug report
.zipexport
TermDock is designed as a local desktop app. It does not require a cloud account to manage servers.
Local-first: TermDock does not require a cloud account and does not upload your SSH credentials.
- Session data is stored locally.
- Credentials use secure OS storage through the app credential layer where available.
- Session and group exports exclude decrypted credentials.
- Encrypted migration exports can include passwords and optional private-key files when protected by your passphrase. See Session Migration.
- Diagnostics and bug reports are generated locally for you to inspect before sharing.
See SECURITY.md for details and current limitations.
pnpm install
pnpm devBuild the app:
pnpm buildRun the workspace smoke test:
pnpm run smoke:uiThe default smoke run boots an embedded local SSH/SFTP fixture, so core auth, terminal, SFTP, port-forwarding, settings, diagnostics, command history, retry, and operation-center flows can be verified without an external host.
src/main Electron main process, IPC, storage
src/renderer React UI
src/shared Shared contracts and types
docs/assets README screenshots and product assets- Current validation:
pnpm run typecheck,pnpm run build, andpnpm run smoke:uipassed. - Latest workspace smoke artifact:
artifacts/smoke/2026-05-14T06-14-31-419Z/summary.json(PASS 48 / FAIL 0 / SKIP 0). - Current packaging targets: macOS (
arm64,x64) and Windows (nsis,zip).
For detailed progress, release validation, and planning notes, see:
- Release Notes
- Documentation Index / 中文
- Progress Snapshot / 中文
- Task Board / 中文
- Packaged Smoke Runbook / 中文
- Release Signing Runbook / 中文
- UI Compact Rules / 中文
- SSH Config Import / 中文
- SSH Connection Troubleshooting / 中文
- Install And Launch Troubleshooting / 中文
- Feedback Triage / 中文
- GitHub Labels / 中文
- Contributing / 中文
- 60-Second Demo Script / 中文
- GitHub Page Setup / 中文
- Release Page Copy / 中文
- Data persistence is still JSON-based; SQLite migration is planned.
- In-app auto-update is supported, but public-trust signing/notarization is still in progress.
- Public-trust signing/notarization evidence is still in progress.
- Active runtime port forwards are tab-scoped.
- Dynamic forwarding currently supports SOCKS5 no-auth
CONNECTbaseline.
MIT