π One-click SSH connections from your browser to any terminal
Installation β’ Usage β’ Contributing
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?
sshlink creates a seamless bridge between your browser and terminal. Turn any IP address on your web dashboards into a one-click SSH connection.
<!-- Before: Copy-paste workflow -->
IP: 192.168.1.100
<!-- After: One-click magic -->
<a href="sshlink://192.168.1.100">192.168.1.100</a>
Click the link β SSH session opens instantly!
- π 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
Download the latest binary for your platform from Releases:
# 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
# Default terminal
./sshlink -install
# Specific terminal (Terminal, iTerm, Warp, etc.)
./sshlink -install -terminal=iterm
# List supported terminals
./sshlink -list
# Homebrew (macOS/Linux)
brew install icanhazstring/tap/sshlink
Once installed, use sshlink://
links in any web page:
<a href="sshlink://127.0.0.1">Connect to localhost</a>
<a href="sshlink://user@example.com">Connect with username</a>
<a href="sshlink://user@example.com:2222">Custom port</a>
Add sshlink support to your dashboards, monitoring tools, or documentation:
// Transform IPs into clickable SSH links
function makeSSHLink(ip, user = '') {
const target = user ? `${user}@${ip}` : ip;
return `<a href="sshlink://${target}">${ip}</a>`;
}
// Example: Server monitoring dashboard
servers.forEach(server => {
document.getElementById('server-list').innerHTML +=
`<tr>
<td>${server.name}</td>
<td>${makeSSHLink(server.ip, 'admin')}</td>
<td>${server.status}</td>
</tr>`;
});
<a href="sshlink://kubectl-node-1">kubectl-node-1</a>
<a href="sshlink://root@kubectl-node-2">kubectl-node-2</a>
<a href="sshlink://swarm-manager">Connect to Swarm Manager</a>
<a href="sshlink://dev@staging.company.com">Staging Server</a>
<a href="sshlink://deploy@prod.company.com:2222">Production</a>
./sshlink -uninstall
We welcome contributions! Here's how to get started:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Commit your changes:
git commit -m 'Add amazing feature'
- Push to the branch:
git push origin feature/amazing-feature
- Open a Pull Request
# 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 ./...
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by the daily workflow pain of developers everywhere
- Built with β€οΈ using Go
- Logo created with love for the developer community
β Star this repo if sshlink saves you time! β