Skip to content

campbellmbrown/grasshopper

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

110 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Grasshopper

License Release Contributors Issues Pull Requests Code style: black

logo

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

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

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

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.

Setup

Install Requirements

pip install -r requirements.txt

Run

From the Command Line

python grasshopper.py

From VS Code

You can also run the application from VS Code by running the Grasshopper configuration.

Publishing

Clean

Clean the build and dist directories:

git clean -dfx -e .venv

Build the Executable

Important

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.py

The executable (grasshopper.exe on Windows, grasshopper on Linux) will be in the dist directory.

Build the Installer

Build the installer using Docker on Windows:

docker run --rm -v .:/work amake/innosetup:innosetup6 installer/installer.iss

About

A SSH manager app

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors