Skip to content

paramientos/leap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

23 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

⚑ LEAP SSH Manager

The Ultimate SSH Connection Manager - A modern, feature-rich CLI tool that goes beyond simple SSH management. Monitor servers in real-time, capture snapshots, share connections via QR codes, record sessions, and manage everything from a beautiful terminal UI.

Built with Go for maximum performance. Inspired by Laravel's elegant design philosophy.

LEAP SSH Manager License

🎯 Why LEAP?

LEAP isn't just another SSH manager - it's a complete DevOps command center:

  • πŸ“Έ Snapshot & Compare servers to track changes over time
  • πŸ“± QR Code Sharing for instant connection distribution
  • ⏺️ Session Recording for documentation and auditing
  • πŸ“Š Live Monitoring of server resources in beautiful TUIs
  • πŸ”‘ Automated Key Management with one-command setup

All in a single binary with zero dependencies!

✨ Features

  • πŸ” Secure encrypted configuration - Your main config is safely encrypted
  • πŸ“Έ Server Snapshots - Capture complete server state (OS, packages, services, ports)
  • πŸ“± QR Share - Share connections via QR Codes ⚑
  • ⏺️ Session Recording - Record and replay SSH sessions ⏺️
  • πŸ“Š Real-time Monitoring - Watch server Load, RAM and Uptime in a live TUI
  • πŸ”‘ Self-Managed SSH Keys - Generate and push Leap-specific SSH keys automatically
  • 🏷️ Tag-based & Group organization - Organize connections with tags and folders
  • πŸ” Fuzzy search & filtering - Find connections quickly
  • 🎨 Beautiful terminal UI - Modern, colorful interface inspired by Laravel
  • πŸ”€ Jump host support - Connect through bastion hosts
  • πŸš‡ SSH tunnel management - Create and manage SSH tunnels easily
  • πŸ“‚ Smart SCP - Transfer files using saved connection parameters
  • πŸ§ͺ Health checks - Test connections and measure latency with visual bars
  • πŸ“€ Plain-text Export/Import - Easily backup and share configurations
  • πŸ“ SSH Config Import - Migrate from ~/.ssh/config in one command

LeapSSH Demo Video

πŸ“¦ Installation

Quick Install (Recommended)

Linux / macOS:

curl -fsSL https://raw.githubusercontent.com/paramientos/leap/main/install.sh | bash

Windows (PowerShell):

irm https://raw.githubusercontent.com/paramientos/leap/main/install.ps1 | iex

Download Pre-built Binaries

Download the latest release for your platform from GitHub Releases:

Available Platforms:

  • Linux (AMD64, ARM64)
  • macOS (Intel, Apple Silicon)
  • Windows (AMD64, ARM64)

Manual Installation:

Linux / macOS:

# Download (replace VERSION and PLATFORM)
wget https://github.com/paramientos/leap/releases/latest/download/leap-VERSION-PLATFORM.tar.gz

# Extract
tar -xzf leap-VERSION-PLATFORM.tar.gz

# Install
sudo mv leap-PLATFORM /usr/local/bin/leap
chmod +x /usr/local/bin/leap

# Verify
leap --version

Windows:

# Download from releases page
# Extract the ZIP file
# Move leap.exe to a directory in your PATH
# Or add the directory to your PATH

Build from Source

Prerequisites:

  • Go 1.24 or higher
  • Make (optional, but recommended)

Using Makefile:

git clone https://github.com/paramientos/leap.git
cd leap

# Build for current platform
make build

# Install to /usr/local/bin
make install

# Build for all platforms
make build-all

# Create release archives
make release

Using Go directly:

git clone https://github.com/paramientos/leap.git
cd leap
go build -o leap ./cmd/leap
sudo mv leap /usr/local/bin/

Using Go Install

go install github.com/paramientos/leap/cmd/leap@latest

Note: This installs to $GOPATH/bin (usually ~/go/bin). Make sure it's in your PATH.

Verify Installation

leap --version

You should see:

⚑ LEAP SSH Manager v0.6.0

πŸš€ Quick Start

Interactive TUI Mode

Simply run leap to launch the interactive terminal UI:

leap

Add a New Connection

leap add myserver

You'll be prompted for:

  • 🌐 Hostname/IP
  • πŸ‘€ User
  • πŸ”Œ Port
  • πŸ” Password (optional)
  • πŸ”‘ SSH Key Path (optional)
  • 🏷️ Tags
  • πŸ”€ Jump Host (optional)

List All Connections

leap list

Filter by tag:

leap list --tag production

Connect to a Server

leap connect myserver

Or use fuzzy matching:

leap myserver

Edit a Connection

leap edit myserver

Delete Connection(s)

leap delete oldserver
leap delete server1 server2 server3  # Multiple
leap delete myserver --force         # Skip confirmation

Test Connections

leap test myserver              # Test single connection
leap test --all                 # Test all connections
leap test --tag production      # Test by tag

Manage Favorites

leap favorite myserver          # Toggle favorite
leap favorites                  # List all favorites

Add Notes

leap notes myserver             # View notes
leap notes myserver --edit      # Edit notes

Remote Command Execution

leap exec myserver "uptime"
leap exec --all "df -h"
leap exec --tag web "systemctl status nginx"

File Transfer

# Upload
leap upload myserver ./local.txt /remote/path/
leap upload myserver ./folder/ /remote/ --recursive

# Download
leap download myserver /remote/file.txt ./local/
leap download myserver /remote/folder/ ./ --recursive

Export/Import

Server Snapshots

Capture and compare complete server states for change tracking and auditing.

# Capture a snapshot
leap snapshot myserver -o snapshot.json

# Capture with installed packages (slower)
leap snapshot myserver -o snapshot.json --packages

# Compare two snapshots
leap diff snapshot1.json snapshot2.json

# YAML format
leap snapshot myserver -f yaml -o snapshot.yaml

Share Connections

Share connection details via QR code or encrypted short-codes.

# Generate QR code and share code
leap share myserver

# Receiver imports with:
leap import-code [base64-code]

Session Recording

Record and replay SSH sessions for documentation or auditing.

# Record a session
leap connect myserver --record

# List recordings
leap history

# Replay a session
leap replay myserver_20231227_153045

File Transfer

Transfer files using your saved connection settings.

# Upload file
leap scp myserver ./local-file.txt /remote/path/

# The command automatically uses your saved port, keys, and jump hosts

Health & Monitoring

Check if your servers are alive or watch their resources in real-time.

# Health check (with visual latency bars)
leap test --all

# Live Resource Monitor (CPU, RAM, Uptime)
leap monitor
leap monitor server1 server2

SSH Key Wizard

Automate passwordless login by generating and pushing LEAP-specific keys.

# Generates a key if missing and pushes it to the server
leap push-key myserver

Import from SSH Config

Migrate your existing connections from your system's SSH configuration.

leap import-ssh

Export/Import

Backup or share your connections in JSON or YAML format. Note that items are exported in plain-text for easy sharing and manual editing.

# Export (Decrypted output)
leap export backup.json
leap export backup.yaml --format yaml

# Import (Reads plain-text)
leap import backup.json
leap import backup.yaml --merge  # Update existing

Create SSH Tunnel

leap tunnel myserver 8080:localhost:80

🎨 Screenshots

Main TUI Interface

The interactive terminal UI provides a beautiful, modern interface for managing your SSH connections:

  • Left Panel: List of all your connections with fuzzy search
  • Right Panel: Detailed information about the selected connection
  • Color-coded: Easy to read with Laravel-inspired color scheme

List Command

⚑ LEAP SSH MANAGER
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

NAME          CONNECTION                    TAGS
────          ──────────                    ────
production    user@prod.example.com:22      #prod #web
staging       user@staging.example.com:22   #staging #web
database      admin@db.example.com:22       #prod #database

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
βœ“ Total connections: 3

πŸ”§ Configuration

LEAP stores your connections in a configuration file at:

  • macOS/Linux/Windows: ~/.leap/connections.yaml

Encryption (Optional)

By default, LEAP stores your connections in plain-text YAML. If you want to encrypt your configuration file, set a master password using the LEAP_MASTER_PASSWORD environment variable:

export LEAP_MASTER_PASSWORD="your-secure-password"

If set, your configuration will be automatically encrypted using the age format.

πŸ“– Usage Examples

Quick Connect by Name

leap production

Quick Connect by Tag

leap web

Port Forwarding

# Forward local port 3306 to remote MySQL
leap tunnel database 3306:localhost:3306

Using Jump Hosts

When adding a connection, specify a jump host:

πŸ”€ Jump Host: bastion.example.com

🎯 Keyboard Shortcuts (TUI Mode)

  • ↑/↓ or j/k - Navigate through connections
  • / - Start filtering/searching
  • Enter - Connect to selected server
  • q or Ctrl+C - Quit

πŸ› οΈ Development

Prerequisites

  • Go 1.24 or higher
  • Make (optional, but recommended)

Building

# Using Makefile
make build          # Build for current platform
make build-all      # Build for all platforms
make install        # Install to /usr/local/bin

# Or using Go directly
go build -o leap ./cmd/leap

Running Tests

make test
# or
go test ./...

Available Make Commands

make help           # Show all available commands
make build          # Build for current platform
make build-all      # Build for all platforms
make install        # Build and install
make clean          # Clean build artifacts
make test           # Run tests
make deps           # Update dependencies
make release        # Create release archives

🀝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

  1. Fork the repository
  2. Create your feature branch (git checkout -b feature/amazing-feature)
  3. Commit your changes (git commit -m 'Add some amazing feature')
  4. Push to the branch (git push origin feature/amazing-feature)
  5. Open a Pull Request

πŸ“ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • Inspired by Laravel's beautiful CLI design
  • Built with Bubble Tea for the TUI
  • Uses Cobra for CLI framework
  • Encryption powered by age

πŸ“§ Contact

Project Link: https://github.com/paramientos/leap


Made with ❀️ and β˜• by the LEAP team

About

Leap is a ssh connection manager

Resources

License

Stars

Watchers

Forks

Packages

No packages published