An attempt at creating a gemini client in fish scripts.
adeec9bb — James Henderson 2 months ago
Add licence
0d985391 — James Henderson 2 months ago
Create project


browse  log 



You can also use your local clone with git send-email.


Jemini is an attempt at implementing a gemini client using fish scripts. Where possible i have tried to only use fish built in commands, to do the requests to a gemini server it uses ncat as there is no built in function for that mechanism.

It has been written and tested using fish version 3.1.2


  • Some mechanism to follow links.
  • Accept relative url's
  • Add more mime types other than gemtext and plaintext
  • Allow the user to add a client cert
  • Other things i have not thought of yet

#The scripts

The client is made up of several fish scripts, each having its own purpose. When combined they can be used to create a primative gemini client.


This is the script that ties all of the other scripts together. Run this to start the client running.


This script is responsible for performing a request to a gemini server and dealing with the responce. After a request has been performed the whole responce from the serrver is stored in the file ~/.jemini/request

Options -a address - This is the resource you are requesting -v verbose - Turn on verbose output mode.

Example jemini_request -a gemini.circumlunar.space/~jameschip/food/cgtchut.gmi


This is used to parse gemtext file into a colourful output on you shiny fish session.


Used to manipulate URLs so that requests can be made.

Options -d domain - This strips a url to just the domain. -r request - Makes sure that a requested UIR is correct. -i [STRING] input - This adds an input from the user to a url as a query. -u [STRING] url - The url that is actually being requested.

Example jemini_url -d -u gemini.circumlunar.space/~jameschip/food/cgtchut.gmi

outputs gemini.circumlunar.space


Creates and manages a bookmarks file in ~/.jemini/bookmarks. Each line is its own bookmark.

Options -a [STRING] add - Add a bookmark -g [NUMBER] get - Get the bookmark -l list - List all of thebookmarks.