ts-ssh solves a specific problem: accessing machines on your Tailnet from
environments where you can't install the full Tailscale daemon (like CI/CD runners or
restricted systems).
It uses Tailscale's tsnet library to establish userspace connectivity, then provides
a standard SSH experience. Works with existing workflows since it supports normal SSH
features like ProxyCommand, key auth, and terminal handling.
Some features that proved useful:
• Parallel command execution across multiple hosts
• Built-in tmux session management for multi-host work
• SCP-style file transfers
• Works on Linux/macOS/Windows (AMD64 and ARM64)
The codebase is interesting from a development perspective - it was written almost
entirely using AI tools (mainly Claude Code, with some OpenAI and Jules). Not as an
experiment, but because it actually worked well for this kind of systems programming.
Happy to discuss the workflow if anyone's curious about that aspect.
Source and binaries are on GitHub. Would appreciate feedback from anyone dealing with
similar connectivity challenges.
_9y71•7mo ago
ape4•7mo ago
KomoD•7mo ago
Or anything else without reviewing it.
lol @ the issue in the repo: "module declares its path as: github.com/yourusername/ts-ssh"
ramon156•7mo ago
- 0.1.0 -> breaking changes
- 1.0.0 -> overhaul/refactor needed
I know not every case is easy but this is my rule of thumb. I've honestly never needed a major version change
Timon3•7mo ago
- x.y.Z (patch) -> backward compatible bug fixes
- x.Y.z (minor) -> backward compatible new features
- X.y.z (major) -> breaking changes
But of course it's fine to use whatever versioning scheme you like, as long as you communicate it to your consumers.
https://semver.org/
Edit: updated the version strings for clarity.
zamadatix•7mo ago
_9y71•7mo ago
Timon3•7mo ago
chrisweekly•7mo ago
indrora•7mo ago
0.1.0 - I rearchitected the bug
1.0.0 - The bug is integral to the codebase.
i8code•7mo ago
0x457•7mo ago
cedws•7mo ago