ShellMate: A Browser-Based SSH Workbench
Oct 3, 2026·
·
1 min read
Dylan Chiang
ShellMate is a Web SSH workbench I developed for managing multiple hosts. It brings host settings, interactive terminals, and reusable commands into a deployable single-machine prototype.
My work
- Live terminal integration: Connected React, TypeScript, and xterm.js to Node.js/ssh2 through bidirectional WebSocket communication.
- Hosts and tabs: Implemented host editing, grouping, and terminal-tab switching.
- Command snippets: Organized reusable commands into groups and sent them to the active terminal.
- Basic access controls: Integrated login, JWT API authentication, password hashing, and encrypted host-password storage.
- Backend structure: Separated authentication, host data, snippets, SSH sessions, and WebSocket handlers, with clearer connection errors.
- Deployment tradeoffs: Supplied Docker/Compose deployment and lightweight JSON storage without claiming large-scale multi-user capability.
Architecture

A conceptual diagram containing no real hosts, addresses, accounts, or credentials. It does not expose a live SSH service.
Scope
This project demonstrates frontend, realtime communication, backend, and deployment integration. Basic safeguards are not independent security certification; finer permissions and scalable multi-user storage remain extension areas.
Authors
Dylan Chiang
(he/him)
PhD Candidate in Intelligent Science and Technology, School of Data Science, Fudan University