A simple SSH config manager for the command line.
soop (SSH cOnfig OPerator) is a command-line tool that makes managing your SSH configurations easy and safe. Add, list, edit, and remove SSH hosts while preserving comments and formatting.
The name "soop" comes from the Korean word "숲" (forest). Just as trees grow and spread throughout a forest, your SSH hosts naturally accumulate and scatter across your config file over time. soop helps you navigate and tend to this forest of connections, keeping everything organized and accessible.
- Add hosts interactively with duplicate name validation
- List hosts with connection details (user@hostname:port)
- Connect quickly with convenient aliases
- Edit hosts in your preferred editor with automatic change detection
- Remove hosts safely with confirmation prompts
- Preserve comments and configuration order
- Prevent duplicates when adding or editing hosts
cargo install soopgit clone https://github.com/currybab/soop.git
cd soop
cargo build --releaseThe binary will be available at target/release/soop.
Coming soon.
soop addInteractively prompts for host details and validates against existing hosts.
soop lsDisplays all configured hosts with their connection information:
myserver user@192.168.1.1
production admin@example.com:2222
testserver 10.0.0.1
# Interactive selection
soop connect
soop c # alias
soop ssh # alias
# Direct connection
soop connect myserver# Interactive selection
soop edit
# Edit specific host
soop edit myserverOpens your preferred editor (set via $EDITOR environment variable, defaults to vi). Validates changes and prevents duplicate host names.
# Interactive selection
soop remove
soop rm # alias
# Remove specific host
soop rm myserverPrompts for confirmation before deletion.
- Rust 1.85 or later
- Tested on macOS (should work on Linux and other Unix-like systems)
soop operates on your SSH config file located at ~/.ssh/config.
Set your preferred editor:
export EDITOR=vim # or nano, emacs, etc.This project is in active development. Currently, the codebase lacks comprehensive test coverage. Contributions to add unit tests and integration tests are highly encouraged and would be greatly appreciated.
MIT License - see LICENSE for details.
Contributions are welcome! Please see CONTRIBUTING.md for guidelines.
Areas where we especially need help:
- Test coverage for core functionality
- Testing on Linux and other Unix-like platforms
- Additional features and improvements
Jun Park (@currybab)