Add renovate.json Reviewed-on: https://git.front.kjuulh.io/kjuulh/nossh/pulls/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 pastsshcommands you’ve executed. -
.ssh/configlookup
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 standardsshwhen provided arguments. -
Configurable config path
Override the default~/.ssh/configvia an--ssh-config-pathflag orSSH_CONFIG_PATHenv 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
sshpassthroughnossh user@host -p 2222Behaves 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_PATHAlternative 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
sshwith 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