Gemini software

Here is a list of all known Gemini-related software. The list is not curated: some of these programs may be non-functional, or may be unmaintained. You have to evaluate them yourself. If you've written some Gemini software which is not listed here, please contact me at solderpunk@posteo.net.

Also check out the community-maintained "Awesome Gemini" collection

Clients

A bare-bones but usable Gemini client in 100 lines of Python

A bare-bones but usable Gemini client in 100 lines of Lua

A bare-bones but usable Gemini client almost 100 lines of Go

A Gemini client library in Guile Scheme

A Gemini client for Android

A Gemini client library in Go

A more recent fork of the above library

A rich Gemini client library in Nim

Agregore, a "distributed web" browser supporting Gemini

Amfora, a very feature-rich Gemini client for the terminal

AmiGemini, a Gemini client for the Commodore Amiga

Ariane, a Gemini client for Android

Astro, a Gemini client written in shell script

Astronaut, a terminal Gemini client written in Go

Asuka, a ncurses-based Gemini client

AV-98, an experimental Gemini client derived from VF-1

Bollux, a Gemini client written in pure Bash

Bombadillo, a multi-protocol client handling Gemini since 2.0.0

Castor, A graphical Gemini client written in Rust

Cgmnlm, a colorful fork of gmni

Chawan, a text-mode multi-protocol client written in Nim

Deedum, a Gemini client for Android

Diohsc, a terminal Gemini client written in Haskell

Dragonstone, a simple GTK Gopher/Gemini client written in Vala

Elaho, a Gemini client for iOS

elpher, a emacs-based Gopher and Gemini client

Fafi, a graphical, tabbed client written in Racket

felinks, a fork of the `elinks` web browser which supports Gemini and Gopher

gacme, a Gemini client for plan9's Acme

gcat, a `cat`-like Gemini client

Gemget, a command-line Gemini downloader ala wget

GemiNaut, a user-friendly GUI client for MS Windows

Geopard, a client written in rust, using the gtk3 toolkit

Gmi, a client written in POSIX-compliant shell

gmi100, a CLI client written in 100 lines of ANSI C

gurl, a `curl`-like Gemini client

Gusmobile, a Gemini client library in Python

gmni, a combined CLI and line-mode client for POSIX/C11

Kristall, a graphical Gemini client using Qt

Lagrange, a beautiful graphical Gemini client written in C

majc, a curses client for Gemini written in Rust

McRoss, a graphical Gemini client written in Python/Tkinter

Moonlander, a very fancy graphical Gemini client written in Rust

ncgopher, a Gopher and Gemini client written in Rust

Offpunk, an offline-first command line client for Gemini and other protocols

Rhapsode, an "auditory web browser" which supports Gemini

Rosy Crow, a Gemini client for Android

Ruhroh, a Gemini client written as a POSIX shell script

Spwash, a bare-bones Gemini client written in C#

Sydney, a Vim-like command-line Gemini client

tgmi, a terminal-based Gemini client for linux written in Python

Twin Peaks, a graphical Gemini client written in C#

Tinmop, a distraction free terminal client for Gemini (and Pleroma!)

Vgmi, a terminal Gemini client written in C with vim-like keybindings

Vimini, a Gemini client inspired by qutebrowser

Viv, a "toy" Gemini client written in ANSI C

Zain, a graphical Gemini client written in Tcl/Tk

Servers

A Gemini server written in Go

A Gemini server written in Node, based on Express

Aerozine, a Gemini server written in Rust, focussed on configurability

Agate, a Gemini server written in Rust

Belka, a family of Erlang componens for building Gemini servers

Blizanci, a Gemini server writen in Erlang

Dʒɛmɪni, a Gemini server written in Racket

GeGoBi, a Gemini server for Gemini-Gopher bi-hosting

Gemigit, a self-hosted Gemini git service

Geminid, a Gemini server written in C

Gemini-PHP, a Gemini server written in PHP

Gemserve, a Gemini server written in Rust

Germinal, a Gemini server written in Common Lisp

GLV-1.12556, a Gemini server (in fact, the first!) written in Lua

gmid, a low-memory Gemini server written in C with interesting security features

gmnisrv, a simple Gemini server written in C11

Jetforce, a Gemini server written in Python

Kepler, a simple Gemini sever written in Rust

Laurali, an object-oriented Gemini server for Deno

Lupa Pona, a simple tool for serving a single local directory via Gemini

Maple, a static Gemini server with Titan support

(The Unsinkable) Molly Brown, a Gemini server written in Go

Nemini, a simple Gemini server with virtual host and alias support

Net-Gemini, a Gemini server written in Go

Northstar, a Rust library for Gemini servers

Orion, a Gemini server written in Go

Pollux, a Gemini server written in Rust

Smolver, a Gemini server written in Swift

Space Age, a Gemini server written in Clojure

SpaceBeans, a Gemini server written using Scala and Akka streams

Stargazer, a concurrent Gemini server written in Rust

Titan2, a minimal Gemini server written in Go

Twins, a Gemini server written in Go

Vger, a simplistic and secure Gemini server in C targetting OpenBSD

Windmark, an asynchronous Gemini server framework for Rust

Browser plugins

dillo-gemini, a Gemini plugin for the Dillo browser

cute-gemini, a Gemini userscript for Qutebrowser

Aggregators, feed generators and readers, and related tools

Atomini, a Ruby script to generate an Atom feed from a Gemini map

CAPCOM, an Atom feed aggregator that outputs text/gemini

Gemfeed, a tool to generate Atom feeds for a directory of text/gemini files

gmisub, a tool to aggregate content from subscribable Gemini pages

GMIToAtomFeed, a CGI tool to produce Atom feeds from Gemini index pages

Spacewalk, a moku-pona style aggregator for Gemini

Syntax highlighting for editors

text/gemini syntax highlighting for emacs

text/gemini syntax highlighting for kakoune

text/gemini syntax highlighting for Kate

text/gemini syntax highlighting for nano

text/gemini syntax highlighting for vim

CGI applications

gemlikes, a liking and commenting system

git.gmi, a Gemini git frontend

Twinwiki, a Gemini wiki edited with sed commands

Format conversion tools

gemini-to-html, a simple Node JS module to convert text/gemini to HTML

gemtext-html-converter, a Gemtext to HTML converter in Python

gmitohtml, a command line tool and daemon for converting txt/gemini to html

gmi2mkd, a Gemtext to Markdown converter in awk

html2gmi, a command line application to convert html to text/gemini

HtmGem, a PHP program to convert text/gemini to HTML on the fly

md2gemini, a Markdown to text/gemini converter

ox-gemini, an Emacs org-mode to text/gemini exporter

Other

A Go library for implementing both clients and servers

A Node JS module to convert gemtext to audio

Agena, a Gemini-to-Gopher proxy

Agunua, a Python library for the development of Gemini clients

Gemgit, a tool to generate static Gemini pages for git repos

gemini2html, a fast text/gemini to HTML converter written in C

GeminiBB, a standalone Gemini bulletin board application

gemini-fetch, a simple Node JS module to fetch Gemini content

Germ, a large Gemini toolkit library for Rust

Gig, a Gemini application framework in Go

git-remote-gemini, a Git remote helper to clone git repositories over Gemini

gmi, a text/gemini parsing library

gmir, a text/gemini reader, pluggable into some CLI clients

gmnigit, a to generate static Gemini pages for git repositories

A Hugo theme for generating a website and matching Gemini capsule

Ignition, a Gemini client library for Python

Kineto, a single-domain HTTP to Gemini proxy

September, a highly capable and HTTP to Gemini proxy

Sumy, Node.js bindings to the Germ toolkit (see above)

A collection of "building blocks" for building Gemini servers in Nim

Phoebe, a standalone Gemini/Titan wiki with many associated tools

Tsiol, a simple IPFS/Gemini bridge

Vostok, a protocol-agnostic framework supporting Gemini

Xenia, a Gemini web proxy for Android

Zodiac, a nginx-style reverse proxy and load balancer for Gemini

po4a, a translation maintenance tool, has Gemtext support