Grasshopper is a simple SSH client that allows you to connect to your servers using SSH. The goal is to provide a simple GUI allowing easily connections to your servers without having to remember tedious commands.
Direct connections are the most simple way to connect to a server. They have the following properties:
- Host: The IP address or domain name of the server.
- Port: The port used for the connection.
- User: The username used for authentication.
- Key: The private key used for authentication.
These additional properties are for personal identification:
- Device Type
- Name
- Notes
Direct connections are saved to %APPDATA%/grasshopper/direct_connections.json on Windows or ~/.config/grasshopper/direct_connections.json on Linux.
Proxy jumps allow jumping through a server to reach another server. They have the following properties:
- Jump Host: The IP address or domain name of the server to jump through.
- Jump Port: The port used for the jump connection.
- Jump User: The username used for the jump connection.
- Target Host: The IP address or domain name of the target server.
- Target Port: The port used for the target connection.
- Target User: The username used for the target connection.
- Key: The private key used for authentication.
These additional properties are for personal identification:
- Device Type
- Name
- Notes
Proxy jumps are saved to %APPDATA%/grasshopper/proxy_jumps.json on Windows or ~/.config/grasshopper/proxy_jumps.json on Linux.
Port forwarding allows forwarding a local port to a remote port. They have the following properties:
- Remote Server Host: The IP address or domain name of the remote server.
- Remote Server Port: The port used for the remote connection.
- Remote Server User: The username used for the remote connection.
- Target Host: The IP address or domain name of the target server.
- Target Port: The port used for the target connection.
- Local Port: The port used for the local connection.
These additional properties are for personal identification:
- Device Type
- Name
- Notes
Port forwarding are saved to %APPDATA%/grasshopper/port_forwards.json on Windows or ~/.config/grasshopper/port_forwards.json on Linux.
pip install -r requirements.txtpython grasshopper.pyYou can also run the application from VS Code by running the Grasshopper configuration.
Clean the build and dist directories:
git clean -dfx -e .venvImportant
Building the executable is done locally for now using Python 3.13.
Build into a single executable without the console using PyInstaller:
git rev-parse --short=8 HEAD > resources/GIT_SHA
pyinstaller --onefile --noconsole --add-data "resources;resources" --icon=resources/logo.ico grasshopper.pyThe executable (grasshopper.exe on Windows, grasshopper on Linux) will be in the dist directory.
Build the installer using Docker on Windows:
docker run --rm -v .:/work amake/innosetup:innosetup6 installer/installer.iss