Releases: DigitalCyberSoft/tailscale-cli-helpers
v0.3.4
Changes
- Fix tsexit to use IP address for reliable exit node selection
- Display full hostname in status messages for clarity
Installation
RPM (Fedora/RHEL/CentOS):
sudo dnf install tailscale-cli-helpers-0.3.4-1.noarch.rpmDEB (Ubuntu/Debian):
sudo dpkg -i tailscale-cli-helpers_0.3.4-2_all.debv0.3.3
Changes
- Fix tsexit to use short hostname instead of FQDN for exit node selection
Installation
RPM (Fedora/RHEL/CentOS):
sudo dnf install tailscale-cli-helpers-0.3.3-1.noarch.rpmDEB (Ubuntu/Debian):
sudo dpkg -i tailscale-cli-helpers_0.3.3-2_all.debv0.3.2
Changes
- Fix ts dispatcher intercepting -h flag meant for subcommands
- Fix tmussh wildcard expansion to use IPs when MagicDNS unavailable
Installation
RPM (Fedora/RHEL/CentOS):
sudo dnf install tailscale-cli-helpers-0.3.2-1.noarch.rpm
sudo dnf install tailscale-cli-helpers-mussh-0.3.2-1.noarch.rpm # optionalDEB (Ubuntu/Debian):
sudo dpkg -i tailscale-cli-helpers_0.3.2-2_all.deb
sudo dpkg -i tailscale-cli-helpers-mussh_0.3.2-2_all.deb # optionalv0.3.1: Interactive Exit Node Management
New Features
tsexit - Interactive Exit Node Manager
- New
tsexitcommand for managing Tailscale exit nodes with an interactive menu - Supports Mullvad multi-country exit nodes with automatic country grouping
- Arrow key navigation with ANSI terminal UI
- Countries collapsed by default, expandable with Enter or right arrow
- Jump-to-country navigation using letter keys
- Automatic sudo elevation when permissions required
- Shows full DNS names with alphabetical sorting within countries
- Auto-expands and highlights current exit node on startup
- Fallback to bash select menu for maximum compatibility
Installation
RPM (Fedora/RHEL/CentOS)
sudo rpm -i tailscale-cli-helpers-0.3.1-1.noarch.rpm
# Optional mussh extension
sudo rpm -i tailscale-cli-helpers-mussh-0.3.1-1.noarch.rpmDEB (Ubuntu/Debian)
sudo dpkg -i tailscale-cli-helpers_0.3.1-2_all.deb
# Optional mussh extension
sudo dpkg -i tailscale-cli-helpers-mussh_0.3.1-2_all.debUniversal Installer
curl -sL https://github.com/DigitalCyberSoft/tailscale-cli-helpers/archive/refs/tags/v0.3.1.tar.gz | tar xz
cd tailscale-cli-helpers-0.3.1
./setup.shUsage
# Interactive exit node manager
tsexit
# List available exit nodes
tsexit --listv0.3.0: Restore deleted functionality
v0.3.0 Release
What's Changed
- Restored functionality that was accidentally deleted during modular refactoring
- Restored multiple host selection menu with fuzzy matching
- Restored security validation functions (_sanitize_pattern)
- Restored tab completion (tailscale-completion.sh)
- Fixed test counting that was broken (showing 0/0)
- Fixed tmussh wildcard pattern matching
- Updated all tests to work with new modular structure
Package Updates
- Main package: v0.3.0
- mussh package: v0.3.0 (fixed wildcard matching)
- Changed mussh package to use minimum version dependency
Installation
See README for installation instructions. Package files are attached below.
Note: This release fixes regressions introduced during the modular refactoring.
v0.2.4 - Critical Library Fix
What's Fixed
Critical Bug Fix
- Fixed Missing Library: Added missing
common.shto packages (fixes version display bug) - Updated Debian Packaging: Rewrote debian/rules for new bin/ structure
- Proper File Installation: Both RPM and DEB now include all required files
This release fixes a critical bug where ts -V and other version commands would show empty version numbers due to the missing common.sh library file.
Installation
RPM (Fedora/RHEL/CentOS):
sudo rpm -U tailscale-cli-helpers-0.2.4-1.noarch.rpm
# Optional mussh extension:
sudo rpm -U tailscale-cli-helpers-mussh-0.2.4-1.noarch.rpmDEB (Ubuntu/Debian):
sudo dpkg -i tailscale-cli-helpers_0.2.4-2_all.deb
# Optional mussh extension:
sudo dpkg -i tailscale-cli-helpers-mussh_0.2.4-2_all.debSource:
wget https://github.com/DigitalCyberSoft/tailscale-cli-helpers/archive/v0.2.4.tar.gz
tar -xzf v0.2.4.tar.gz
cd tailscale-cli-helpers-0.2.4
./setup.shRelease v0.2.3: Package rename and auto-install support
What's Changed
π¦ Package Rename
- Renamed Package:
tailscale-cli-helpers-tmusshβtailscale-cli-helpers-mussh - Smooth Upgrade Path: Users with the old package will automatically upgrade to the new name
- No Functional Changes: The
tmusshcommand remains unchanged
π Auto-Install Support
- RPM: Added
Supplementstag - mussh extension auto-installs when both main package and mussh are present - Both: Added
Suggeststag - package managers show mussh extension as recommended - Smart Dependencies: Install only what you need, with automatic recommendations
π§ Technical Details
- Added
Obsoletes/Providesin RPM spec for upgrade path - Added
Replaces/Breaks/Providesin DEB control for smooth transitions - Updated all documentation to reflect new package name
Package Files
Core Package
- RPM:
tailscale-cli-helpers-0.2.3-1.noarch.rpm - DEB:
tailscale-cli-helpers_0.2.3-2_all.deb - Source RPM:
tailscale-cli-helpers-0.2.3-1.src.rpm
Optional mussh Extension (auto-installs when mussh is present)
- RPM:
tailscale-cli-helpers-mussh-0.2.3-1.noarch.rpm - DEB:
tailscale-cli-helpers-mussh_0.2.3-2_all.deb - Source RPM:
tailscale-cli-helpers-mussh-0.2.3-1.src.rpm
Installation
RPM-based systems (Fedora/RHEL/CentOS)
# Core package
sudo rpm -i tailscale-cli-helpers-0.2.3-1.noarch.rpm
# Optional: Parallel SSH support (auto-installs if mussh is present)
sudo rpm -i tailscale-cli-helpers-mussh-0.2.3-1.noarch.rpmDEB-based systems (Ubuntu/Debian)
# Core package
sudo dpkg -i tailscale-cli-helpers_0.2.3-2_all.deb
# Optional: Parallel SSH support
sudo dpkg -i tailscale-cli-helpers-mussh_0.2.3-2_all.debUniversal installer
wget https://github.com/DigitalCyberSoft/tailscale-cli-helpers/archive/v0.2.3.tar.gz
tar -xzf v0.2.3.tar.gz
cd tailscale-cli-helpers-0.2.3
./setup.shUpgrade Notes
- If you have
tailscale-cli-helpers-tmusshinstalled, it will be automatically replaced bytailscale-cli-helpers-mussh - No manual intervention required - package managers handle the transition
- The
tmusshcommand continues to work exactly as before
Full Changelog: v0.2.2...v0.2.3
Release v0.2.2: Modular architecture and enhanced packaging
What's Changed
ποΈ Major Architecture Refactoring
- Modular Package Structure: Split
tmusshinto separate optional package for better dependency management - Project Reorganization: Restructured into
bin/,lib/, andman/directories for cleaner codebase - Shared Libraries: Common code now in
lib/common.shandlib/tailscale-resolver.sh - Removed Legacy Files: Cleaned up old shell function files replaced by standalone executables
π¦ Enhanced Packaging
- Professional Packaging: Separate RPM/DEB packages for core and optional components
- Post-Install Migration: Debian package includes migration script for smooth upgrades
- Distribution Neutral: Removed distribution tags from RPM specs (noarch packages)
- Alien Scripts Support: DEB packages now properly include post-install scripts with
--scriptsflag
π Improved Documentation
- Development Guide: Added comprehensive
CLAUDE.mdwith detailed build instructions - Updated README: Enhanced with v0.2.2 features and package installation instructions
- Fixed Changelogs: Corrected dates and descriptions for previous releases
π§ Technical Improvements
- Enhanced setup.sh: Better error handling and platform detection
- Updated Test Suites: Improved coverage and reliability
- Clean Source Files: Removed attribution lines for cleaner code
Package Files
Core Package
- RPM:
tailscale-cli-helpers-0.2.2-1.noarch.rpm - DEB:
tailscale-cli-helpers_0.2.2-2_all.deb - Source RPM:
tailscale-cli-helpers-0.2.2-1.src.rpm
Optional tmussh Package (requires mussh)
- RPM:
tailscale-cli-helpers-tmussh-0.2.2-1.noarch.rpm - DEB:
tailscale-cli-helpers-tmussh_0.2.2-2_all.deb - Source RPM:
tailscale-cli-helpers-tmussh-0.2.2-1.src.rpm
Installation
RPM-based systems (Fedora/RHEL/CentOS)
# Core package
sudo rpm -i tailscale-cli-helpers-0.2.2-1.noarch.rpm
# Optional: Parallel SSH support
sudo rpm -i tailscale-cli-helpers-tmussh-0.2.2-1.noarch.rpmDEB-based systems (Ubuntu/Debian)
# Core package
sudo dpkg -i tailscale-cli-helpers_0.2.2-2_all.deb
# Optional: Parallel SSH support
sudo dpkg -i tailscale-cli-helpers-tmussh_0.2.2-2_all.debUniversal installer
wget https://github.com/DigitalCyberSoft/tailscale-cli-helpers/archive/v0.2.2.tar.gz
tar -xzf v0.2.2.tar.gz
cd tailscale-cli-helpers-0.2.2
./setup.shFull Changelog: v0.2.1...v0.2.2
v0.2.1: Enhanced Tab Completion and Internal Function Improvements
What's New in v0.2.1
π‘οΈ Major Security Hardening
- Input validation: Added hostname validation to prevent command injection attacks
- JSON security: Implemented Tailscale JSON structure validation and secure jq queries
- Pattern sanitization: Prevents regex injection through user input
- Path traversal protection: Enhanced setup script with secure file operations
- Argument safety: Added
--parameter separation to prevent option injection - 40+ security tests: Comprehensive test suite covering all attack vectors
π New SFTP Support (tsftp)
- Modern file transfer: Added
tsftpcommand as SFTP alternative to deprecated SCP - Full Tailscale integration: Complete hostname resolution with fuzzy matching
- Conditional loading: Only loads when SFTP is available on the system
- Dispatcher integration: Works with
ts sftpcommand and tab completion
π§ Major Code Refactoring
- Shared hostname resolution: Created
_dcs_resolve_tailscale_host()eliminating ~150 lines of duplicate code - Autocomplete helpers: Refactored completion system reducing ~105 lines of duplicate code
- Better maintainability: Single source of truth for hostname resolution across all commands
β¨ Enhanced Tab Completion System
- Improved tmussh completion: Added comprehensive tab completion with version-based parameter support
- Levenshtein distance sorting: All completions now show results sorted by similarity
- Version-aware features: Detects installed mussh version and offers appropriate parameters
- Hidden internal functions: Renamed all
*_mainfunctions to_*_mainto hide from tab completion
π§ͺ Testing Enhancements
- Security test suite: 40+ tests covering injection attacks, path traversal, and DoS protection
- Multi-host test suite: Added comprehensive test for tmussh multi-host functionality
- Functional behavior tests: Enhanced test coverage for all new features
π Bug Fixes
- Fixed tmussh tab completion not working
- Fixed internal functions appearing in tab completion
- Improved version detection for mussh parameter availability
- Enhanced error handling across all commands
Installation
RPM (Fedora/RHEL/CentOS)
sudo rpm -i tailscale-cli-helpers-0.2.1-1.noarch.rpmDEB (Ubuntu/Debian)
sudo dpkg -i tailscale-cli-helpers_0.2.1-2_all.debUniversal (All platforms)
wget https://github.com/DigitalCyberSoft/tailscale-cli-helpers/archive/v0.2.1.tar.gz
tar -xzf v0.2.1.tar.gz
cd tailscale-cli-helpers-0.2.1
./setup.shNote: This release represents a major security and functionality upgrade. All users are encouraged to update for enhanced security and new SFTP capabilities.
Built by Digital Cyber Soft
Tailscale CLI Helpers v0.2.0 - Major Refactoring and New Commands
π Major Release v0.2.0
This release brings significant improvements with new commands, refactored codebase, and comprehensive testing.
β¨ New Features
New Commands
tscp- SCP file transfers with Tailscale hostname resolutiontrsync- rsync synchronization with Tailscale hostname resolutiontmussh- Parallel SSH execution across multiple Tailscale nodes (requires mussh)tsdispatcher - Unified command interface for all operations
Enhanced Installation
- One-line installer:
curl -fsSL https://raw.githubusercontent.com/DigitalCyberSoft/tailscale-cli-helpers/main/install.sh < /dev/null | bash - Interactive ts dispatcher installation option
- Enhanced setup script with new features
π‘ Improvements
Core Functionality
- Refactored function naming - Removed unnecessary
dcs_prefixes while preserving namespacing - Enhanced SSH support - Full SSH options passthrough (
-p,-i, etc.) - Improved completion - Tab completion for all new commands
- Better error handling - Enhanced argument parsing and validation
Code Quality
- Comprehensive test suite - 5 new test files covering all functionality
- Cross-shell compatibility - Tested on both bash and zsh
- Clean namespacing - Strategic use of prefixes to avoid conflicts
π Technical Changes
Command Structure
tssh- Main SSH command (replaces directdcs_tsusage)ts- Multi-command dispatcher with subcommands:ts ssh hostname- SSH to hostts scp file.txt host:/path- Copy filests rsync -av dir/ host:/path/- Sync directoriests mussh -h host1 host2 -c "cmd"- Parallel execution
New Files
tailscale-mussh.sh- Parallel SSH functionalitytailscale-ts-dispatcher.sh- Command dispatcherinstall.sh- One-line installer scriptVERSION- Version tracking- Comprehensive test suite (5 new test files)
π¦ Installation
Quick Install (Recommended)
# Current user installation
curl -fsSL https://raw.githubusercontent.com/DigitalCyberSoft/tailscale-cli-helpers/main/install.sh | bash
# System-wide installation
curl -fsSL https://raw.githubusercontent.com/DigitalCyberSoft/tailscale-cli-helpers/main/install.sh | sudo bash -s -- --systemPackage Downloads
- RPM: For Fedora/RHEL/CentOS systems
- DEB: For Ubuntu/Debian systems
π§ͺ Testing
This release includes comprehensive testing:
- 164 Tailscale hosts detected in test environment
- All commands tested across bash and zsh
- Complete tab completion verified
- Host resolution fully functional
Run tests: ./tests/test-summary.sh
π Usage Examples
# SSH connections
tssh myhost # Direct SSH
ts myhost # Via dispatcher
tssh user@myhost -p 2222 # With SSH options
# File operations
tscp file.txt myhost:/tmp/ # Copy files
trsync -av dir/ myhost:/data/ # Sync directories
# Parallel operations
tmussh -h web1 web2 -c "uptime" # Execute on multiple hostsπ Migration
Existing functionality remains compatible:
ts hostnamestill works (callstsshinternally)- All tab completion preserved
- MagicDNS and fallback behavior unchanged
Built by Digital Cyber Soft