qs

Crates.ioqs
lib.rsqs
version0.2.1
created_at2025-09-06 19:16:06.156048+00
updated_at2025-09-14 16:57:15.652956+00
descriptionQuick SSH - Dead simple, zero-friction SSH wrapper that makes working with remote machines effortless
homepage
repositoryhttps://github.com/tahsintunan/qs
max_upload_size
id1827388
size62,848
Tahsin Tunan (tahsintunan)

documentation

README

qs - Quick SSH

Dead simple, zero-friction SSH wrapper that makes working with remote machines effortless. Automatic multiplexing, easy file transfers, no password hassles.

Features

  • One-time setup: Add a host once, never type passwords again
  • SSH multiplexing: First connection opens, rest are instant
  • Simple file transfer: qs send file.txt /remote/ - that's it
  • Smart defaults: Works without specifying hosts
  • Cross-platform: macOS and Linux

Prerequisites

  • Rust/Cargo - Install Rust
  • SSH - OpenSSH client (ssh, ssh-keygen)
  • rsync - For file transfers

Installation

cargo install qs

Usage Example

# Setup (one time)
qs init                                                   # Create SSH keys
qs add myserver --host 192.168.1.100 --user bob           # Add profile with alias 'myserver'
qs add dev --host 192.168.1.100 --user alice --port 2222  # Add with custom SSH port

# Daily use (no passwords!)
qs connect                               # SSH to default profile
qs send project.tar.gz /tmp/             # Upload file
qs get /var/log/app.log ./               # Download file
qs exec "docker ps"                      # Run remote command

# Host management
qs list                                  # Show all profiles
qs remove myserver                       # Remove profile by the alias 'myserver'
qs set-default myserver                  # Set 'myserver' as default

For detailed usage and examples, see USAGE.md.

Why?

Because ssh user@192.168.1.100 and scp -r ./folder user@192.168.1.100:/path/to/dest/ gets old fast.

With qs, it's just qs connect and qs send folder /path/to/dest/.

Commit count: 14

cargo fmt