Python Gemini CLI client. Upgraded, thicc version of solderpunk/Gemini-demo-1.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Wholesomedonut ed4b7df3f2 rename gemini-demo-1 to asparagus 2 years ago
.gitignore Initial commit 3 years ago
LICENSE Forked from solderpunk's repo 2 years ago Forked from solderpunk's repo 2 years ago rename gemini-demo-1 to asparagus 2 years ago


Larger, more functional version of solderpunk's gemini-demo-1, which was a Gemini client in <=100 LOC in Python 3.

Mine is already 50% larger.

Why the fork?

I really enjoyed solderpunk's work. Quick, clean, and tiny.

I just wanted to try my luck at getting a more fleshed-out app going.

I've never done FOSS contributions before today. Consider this repo my beginning!

I'm literally developing this entirely on an iPad Pro for kicks and giggles, using:

  • Pythonista
  • Working Copy

I have no idea how long it'll last, if it even will at all.


This fork has all of gemini-demo-1's functionality:

  • Has a minimal interactive interface for "Gemini maps"
  • Will print plain text in any encoding if it is properly declared in the server's response header
  • Will handle binary files using programs specified in /etc/mailcap (so you can, e.g. view images)
  • Will follow redirects
  • Will report errors
  • Does NOT DO ANY validation of TLS certificates

IN addition to:

  • Has session-persistent history that you can repeatedly maneuver through
  • Descriptive error texts
  • More keyboard commands and CLI-accessible help text.


Run the script and you'll get a prompt. Type a Gemini URL (the scheme is implied, so simply entering e.g. will work) to visit a Gemini location.

If a Gemini menu is visited, you'll see numeric indices for links, ala VF-1 or AV-98. Type a number to visit that link.

Press h to see a printout of your history, b to go back a page, and f to go forward a page.

Type ? to see a brief help text inside the client.

Press q to quit.