ShellMate: A Browser-Based SSH Workbench

Oct 3, 2026·
Dylan Chiang
Dylan Chiang
· 1 min read

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

ShellMate host management, terminal interaction, WebSocket backend, and SSH connections.

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.

GitHub source and deployment documentation