rgoto 0.1.0

rgoto is a Rust-based command-line tool that reads your SSH configuration file (~/.ssh/config), presents a list of configured hosts, and allows you to select one to SSH into interactively. This work is partially inspired by goto. Also, this project borrows and modifies some codes from cliclack to support hjkl and index based navigation.
# Rusty GOTO (Rgoto)

`rgoto` is a Rust-based command-line tool that reads your SSH configuration file (`~/.ssh/config`), presents a list of configured hosts, and allows you to select one to SSH into interactively.
This work is partially inspired by [goto](https://github.com/grafviktor/goto).
Also, this project borrows and modifies some codes from [cliclack](https://github.com/fadeevab/cliclack) to support `hjkl` and index based navigation.

## Features

- Automatically detects and parses your `~/.ssh/config` file.
- Displays a list of configured SSH hosts for easy selection.
- Supports reading usernames specified in the SSH config file.
- Uses the system's `ssh` command to establish an interactive SSH session.
- (New) now supports latency checks! Just select the first option and hit Enter.

## Installation

- One-Liner

    ```sh
    cargo install --git https://github.com/JiwanChung/rgoto --locked
    ```

1. Ensure you have Rust installed. You can install Rust using [rustup]https://rustup.rs/.

2. Build the project:

    ```sh
    cargo build --release
    ```

3. Move the executable to appropriate places pointed by `$PATH`.

    ```sh
    cp ./target/release/rgoto $HOME/.local/bin
    ```
  

1. Run the project:

    ```sh
    rgoto
    ```


2. Follow the prompts to select a host from your SSH config and connect.

## License

This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.

## Contributing

Contributions are welcome! Please feel free to submit a pull request or open an issue for any bugs or feature requests.