sish is an SSH tunneling server that exposes HTTP(S), WS(S), and TCP services running on localhost to the internet without requiring a custom client.
The tool solves the problem of sharing local services quickly and securely by leveraging SSH, which users already have installed and understand. Instead of installing a proprietary client like ngrok or serveo, you connect using standard SSH commands. The server handles routing and multiplexing of traffic, automatically assigning public URLs for HTTP services or external ports for TCP services. It supports both public tunnels and private TCP aliases accessible only through authenticated SSH connections, as well as SNI-based routing for TLS traffic without terminating the connection.
The tool suits developers and operators who want the convenience of instant service sharing but prefer to run their own infrastructure rather than rely on a managed service. It works well for sharing web applications over HTTPS, exposing internal TCP services to fixed or random ports, creating private internal-only access patterns through TCP aliases, and routing TLS traffic by SNI to multiple backends. The project explicitly positions itself as an alternative to serveo and ngrok-style services for those comfortable self-hosting.
Development activity shows consistent engagement with the project. The maintainer actively responds to issues and pull requests, indicating ongoing support for user problems and contributions. The codebase receives regular updates that address bugs and add features, demonstrating that the tool is maintained rather than dormant. Documentation is kept current alongside code changes, suggesting the maintainer prioritizes keeping guidance aligned with the actual implementation.