soop
A simple SSH config manager for the command line.
Overview
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.
Features
- 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
Installation
From crates.io
From Source
The binary will be available at target/release/soop.
Homebrew
Coming soon.
Usage
Add a new SSH host
Interactively prompts for host details and validates against existing hosts.
List all SSH hosts
Displays all configured hosts with their connection information:
myserver user@192.168.1.1
production admin@example.com:2222
testserver 10.0.0.1
Connect to a host
# Interactive selection
# Direct connection
Edit a host
# Interactive selection
# Edit specific host
Opens your preferred editor (set via $EDITOR environment variable, defaults to vi). Validates changes and prevents duplicate host names.
Remove a host
# Interactive selection
# Remove specific host
Prompts for confirmation before deletion.
Requirements
- Rust 1.85 or later
- Tested on macOS (should work on Linux and other Unix-like systems)
Configuration
soop operates on your SSH config file located at ~/.ssh/config.
Set your preferred editor:
# or nano, emacs, etc.
Development Status
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.
License
MIT License - see LICENSE for details.
Contributing
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
Author
Jun Park (@currybab)