Add renovate.json Reviewed-on: #4
nossh
A lightning-fast SSH endpoint finder and launcher with fuzzy history lookup and ⬢ .ssh/config
reference.
Features
-
Fuzzy history search
Quickly fuzzy-find and re-run pastssh
commands you’ve executed. -
.ssh/config
lookup
Instantly search host entries from your~/.ssh/config
. -
Interactive mode
Presents a searchable list of endpoints for one-shot selection. -
External invocation
Falls back to standardssh
when provided arguments. -
Configurable config path
Override the default~/.ssh/config
via an--ssh-config-path
flag orSSH_CONFIG_PATH
env var.
Installation
cargo install nossh
Or build from source:
git clone https://github.com/yourorg/nossh.git
cd nossh
cargo build --release
cp target/release/nossh /usr/local/bin/
Quickstart
-
Launch interactive search
nossh
-
Fuzzy-find against:
- Your cached history of
ssh …
commands. - Host entries in your
~/.ssh/config
.
- Your cached history of
-
-
Run a past command or config entry
# Start typing “git.fr” and press Enter: $ nossh 1. ratchet:22 2. somegateway:222 # 3. git.front.kjuulh.io > git.fr # then Enter runs: ssh git.front.kjuulh.io
-
Direct
ssh
passthroughnossh user@host -p 2222
Behaves exactly like
ssh …
; also logs the invocation for future fuzzy lookup.
Usage
nossh [--ssh-config-path <path>] [<ssh-args>...]
Option | Description |
---|---|
--ssh-config-path PATH |
Path to your SSH config file (default: ~/.ssh/config ). Overrides SSH_CONFIG_PATH env var |
<ssh-args>… |
If provided, forwarded to ssh as normal. |
Environment
-
SSH_CONFIG_PATH
Alternative way to point to your SSH config:export SSH_CONFIG_PATH="/custom/path/config"
Configuration
The default SSH config path is ${HOME}/.ssh/config
. If that file is missing or you wish to use a different config, set the flag or env var:
nossh --ssh-config-path /mnt/shared/ssh_config
How It Works
-
Startup
- Reads
~/.ssh/config
(or your override). - Loads your SSH‐command history database (
~/.local/share/nossh/db.sqlite3
).
- Reads
-
Interactive Mode
-
Presents a fuzzy prompt (via
fzf
-style) combining:- Host patterns from config.
- Host strings from history (e.g.
user@host -p 2222
).
-
-
Selection
- On Enter, launches
ssh
with the selected arguments. - In external (non-interactive) mode, simply proxies
ssh …
and appends to history.
- On Enter, launches
Examples
-
Basic interactive
nossh
-
Forced interactive
nossh interactive
-
One-liner passthrough
nossh -i ~/.ssh/id_ed25519 root@example.com
Development
Clone and run tests:
git clone https://github.com/kjuulh/nossh.git
cd nossh
cargo test
License
MIT-licensed