https://github.com/icanhazstring/sshlink
🚀 One-click SSH connections from your browser to any terminal
https://github.com/icanhazstring/sshlink
Last synced: 11 months ago
JSON representation
🚀 One-click SSH connections from your browser to any terminal
- Host: GitHub
- URL: https://github.com/icanhazstring/sshlink
- Owner: icanhazstring
- License: mit
- Created: 2025-06-13T07:51:02.000Z (about 1 year ago)
- Default Branch: main
- Last Pushed: 2025-06-23T17:52:01.000Z (about 1 year ago)
- Last Synced: 2025-07-18T12:12:26.726Z (12 months ago)
- Language: Go
- Size: 68.4 KB
- Stars: 5
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# sshlink
**🚀 One-click SSH connections from your browser to any terminal**
[](https://golang.org/)
[](https://github.com/icanhazstring/sshlink)
[](https://opensource.org/licenses/MIT)
[Installation](#-installation) • [Usage](#-usage) • [Contributing](#-contributing)
---
## 🤔 The Problem
As developers, we constantly switch between web dashboards, monitoring tools, and documentation that display server IPs. Every time we need to SSH into a server, we have to:
- 🔄 **Copy the IP address**
- 🖥️ **Open a terminal manually**
- ⌨️ **Type `ssh user@copied-ip`**
- 🔁 **Repeat this hundreds of times per day**
**What if you could just *click* an IP and instantly be connected via SSH?**
## ✨ The Solution
**sshlink** creates a seamless bridge between your browser and terminal. Turn any IP address on your web dashboards into a one-click SSH connection.
```html
IP: 192.168.1.100
192.168.1.100
```
**Click the link → SSH session opens instantly!**
## 🚀 Features
- **🌍 Cross-Platform** - Works on macOS, (Linux, and Windows - coming soon)
- **🔧 Multiple Terminals** - Supports Terminal, iTerm(2), warp, gnome-terminal (more to come)
- **⚡ Zero Configuration** - Works out of the box
- **📦 Single Binary** - No dependencies, just download and run
- **🔗 Standard Protocol** - Uses `sshlink://` URL scheme
## 📦 Installation
### Quick Install (Recommended)
Download the latest binary for your platform from [Releases](https://github.com/icanhazstring/sshlink/releases):
```bash
# macOS (AMD)
curl -L https://github.com/icanhazstring/sshlink/releases/latest/download/sshlink-darwin-amd64.tar.gz | tar -xz
chmod +x sshlink-darwin-amd64
# macOS (ARM)
curl -L https://github.com/icanhazstring/sshlink/releases/latest/download/sshlink-darwin-arm64.tar.gz | tar -xz
chmod +x sshlink-darwin-arm64
# Linux (AMD)
curl -L https://github.com/icanhazstring/sshlink/releases/latest/download/sshlink-linux-amd64.tar.gz | tar -xz
chmod +x sshlink-linux-amd64
# Linux (ARM)
curl -L https://github.com/icanhazstring/sshlink/releases/latest/download/sshlink-linux-arm64.tar.gz | tar -xz
chmod +x sshlink-linux-arm64
# Windows (coming soon)
# Download sshlink-windows-amd64.exe from releases
```
### Install the Protocol Handler
```bash
# Default terminal
./sshlink -install
# Specific terminal (Terminal, iTerm, Warp, etc.)
./sshlink -install -terminal=iterm
# List supported terminals
./sshlink -list
```
### Package Managers (coming soon)
```bash
# Homebrew (macOS/Linux)
brew install icanhazstring/tap/sshlink
```
## 🎯 Usage
### Basic Usage
Once installed, use `sshlink://` links in any web page:
```html
Connect to localhost
Connect with username
Custom port
```
### For Web Developers
Add sshlink support to your dashboards, monitoring tools, or documentation:
```javascript
// Transform IPs into clickable SSH links
function makeSSHLink(ip, user = '') {
const target = user ? `${user}@${ip}` : ip;
return `${ip}`;
}
// Example: Server monitoring dashboard
servers.forEach(server => {
document.getElementById('server-list').innerHTML +=
`
${server.name}
${makeSSHLink(server.ip, 'admin')}
${server.status}
`;
});
```
## 🎨 Examples
### Kubernetes Dashboard
```html
kubectl-node-1
kubectl-node-2
```
### Docker Swarm Manager
```html
Connect to Swarm Manager
```
### Development Servers
```html
Staging Server
Production
```
## 🗑️ Uninstall
```bash
./sshlink -uninstall
```
## 🤝 Contributing
We welcome contributions! Here's how to get started:
1. **Fork the repository**
2. **Create a feature branch**: `git checkout -b feature/amazing-feature`
3. **Commit your changes**: `git commit -m 'Add amazing feature'`
4. **Push to the branch**: `git push origin feature/amazing-feature`
5. **Open a Pull Request**
### Development Setup
```bash
# Clone the repository
git clone https://github.com/icanhazstring/sshlink.git
cd sshlink
# Build for your platform
go build -o sshlink .
# Test installation
./sshlink -install
# Run tests
go test ./...
```
## 📄 License
This project is licensed under the MIT License - see the [LICENSE](LICENSE) file for details.
## 🙏 Acknowledgments
- Inspired by the daily workflow pain of developers everywhere
- Built with ❤️ using [Go](https://golang.org/)
- Logo created with love for the developer community
---
Made with ❤️ for developers who value efficiency
⭐ **Star this repo if sshlink saves you time!** ⭐