Awesome Gemini
A collection of awesome things regarding the gemini protocol ecosystem.
This page lists names, links and short descriptions. The original list on GitHub is the source and belongs to its authors.
General
What is Gemini
Excerpt from geminiprotocol.net
Minimalist, text-based internet protocol.
Gemini Specification
Clients >Terminal
masha
(C) - A simple, fast and reliable terminal Gemini client written in plain C.
Amfora
(Go) - "fancy" terminal client. In maintenance mode.
astronaut
(Go) - a gemini browser for the terminal
Asuka
(Rust) - an NCurses-based Gemini client.
AV-98
(Python) - Gemini client derived from the popular VF-1 Gopher client.
AV-98-fork
A fork of AV-98.
bollux
(Bash) - bash Gemini client.
bombadillo
(Go) - combined Gopher, Gemini, Finger, and File client with vim-inspired key mappings.
cgmnlm
(C) - colorful gemini line-mode client, fork of gmni.
diohsc
(Haskell) - simple line-based command-response terminal user interface with ANSI colour.
Elpher
(Emacs) - combined Gopher and Gemini client for the popular text editor / operating system.
ereandel
(Shell) - terminal client using a custom pager written in POSIX shell script.
gelim
(Go) - A minimalist line-mode smolnet client written in go.
gem.awk
(Awk) - minimal but usable interactive Gemini client in < 250 LOC of Awk.
gembro
(Go) - gemini client using Bubble Tea.
Gemcurses
(C) - A Gemini client, written in C using ncurses.
gemini-demo-1
(Python) - minimal but usable interactive Gemini client in < 100 LOC of Python 3.
gemini-demo-2
(Lua) - minimal but usable interactive Gemini client in < 100 LOC of Lua.
gemini-demo-3
(Go) - minimal but usable interactive Gemini client in not quite < 100 LOC of Go.
gemini-fetch
(Node.js) - cURL-like CLI for loading content from Gemini URLs.
gemivim
(Vim) - simple VIM plugin for browsing Gemini pages
gmi
(Shell) - Tiny Gemini browser written in POSIX-compliant shell. Highly hackable, portable shell script under 200 lines.
gmi100
(C) - CLI Gemini client written in 100 lines of ANSI C.
gmni
(C) - CLI utility (like curl) and line-mode browser.
gplaces
(C) - command-driven, terminal based Gemini client in ~1K LOC of C.
Gremlin
(Rust) - TUI for browsing Gemini space
Lagrange
(C) - TUI client for Gemini, Gopher, Nex, and Spartan with multiple tabs, bookmarks and more.
leo
(Python) - lightweight, prompt-driven Gemini client.
min
(Go) - supports advanced features like input and client certificate generation.
ncgopher
(Rust) - gopher and gemini client for the modern internet.
Offpunk
(Python) - Gemini, gopher, spartan and http/html offline-first browser.
Omura
(Node.js, Bun) - Pushing lightweight gemtext-based internet CLI client.
Romulus
(C#) - interactive TUI client with menus and mouse support
Scroll-Term
(Go) - Gemini, Nex, and Scroll terminal client with audio streaming support.
Telescope
(C) - w3m-inspired, multi-protocol client that supports Gemini, Gopher and Finger
tinmop
(Common Lisp) - opinionated Mastodon and Gemini client
tgmi
(python) - full-featured CLI terminal-based Gemini client
Clients >Graphical
Agregore
(Electron.js) - peer to peer web browser with support for loading Gemini pages.
Alhena
(Java) themes, color emojis on Mac, inline images, etc. jlinked exes do not require Java.
Alrisha
(QML) - QML-based Gemini client.
Castor
(Rust) - graphical Gemini client using GTK.
eGemi
(Rust) - Read gemtext and other plaintexts via gemini:// and https://. (uses egui)
Eva
(Rust) - a Gemini protocol browser in Gtk4
Fafi
(Racket) - graphical Gemini browser written in Racket.
Fossil
(Vala) - GTK3 Gemini browser written in Vala for desktop and mobile.
Galacteek
(Python) - Browser for the distributed web, with support for Gemini and IPFS.
Gemalaya
(Python/QML) - Keyboard-driven Gemini browser with builtin web-to-gemini proxy
Gerbil
(Python) - Gemini and Spartan browser written in python with GTK and LibHandy for desktop and mobile
Gem2Browser
(Python/Flask) - A "web client" for Gemini that's made to support most browsers.
Lagrange
(C) - TUI client for Gemini, Gopher, Nex, and Spartan with multiple tabs, bookmarks and more.
Molasses
(Racket) - full-featured graphical Gopher and Gemini client with tabs.
Moonlander
(Rust) - the fanciest Gemini client in the entire solar system.
Profectus
(Go) - Gemini, Nex, Spartan, and Scroll client with tabs, music player, streaming, and expansive theming.
Kristall
(C++) - graphical Gopher and Gemini client using QT.
spacewar
(Electron.js) - EXPERIMENTAL and UNSTABLE Gemini browser running on Electron.
Geopard
(Rust) - A colorful, adaptive gemini browser.
vimini
(Rust) - Desktop gemini browser inspired by qutebrowser and Vim.
Yoda
(Rust) - GTK 4 / Libadwaita client written in Rust.
Buran
(Kotlin/Java) - Gemini browser for Android, fork of Ariane.
Deedum
(Dart) - an Android and iOS client made with Flutter.
Elaho
(Swift) - full featured Gemini protocol browser for iOS.
Gem
(Python) - Gemini client for Ubuntu Touch.
Narrow32
(Android) (Swift/Kotlin) - Browser optimized for slow connections with Gemini and Gopher protocol support for iOS and Android.
Phaedra
(Java) - Gemini client for Android supporting even very old ones; author recommends using Ariana if a current Android is at hand.
Rosy Crow
(C#) - An Android client built using .NET MAUI.
Xenia
(Java) - Gemini proxy for Android.
GemiNaut
(C#) - user friendly graphical Gemini client for MS Windows.
Jimmy
(SwiftUI) - a lightweight native Gemini client for MacOS
GeminiFS
(C) - FUSE filesystem for Gemini capsules.
Programming
Agunua
(Python) - Gemini library to write clients. Includes IRI support, gemtext parsing and CLI tool.
derhuerst/gemini
(Node.js) - server & client lib.
a-h/gemini
(Go) - Applications and libraries for building applications on Gemini.
cuipod
(C#) - Simple yet flexible framework for Gemini protocol server.
gemclient
(Nim) - rich client library for the Gemini Protocol.
gemini
(Go) - Server side Gemini protocol + Titan protocol implementation that matches standard GO http API.
gig
(Go) - Gemini framework.
gmir
(Go) - A reader for gmi files
go-gemini
(Go) - library that provides an easy interface to create client and servers.
go-gemini
(Go) - more recent fork of the library above.
gusmobile
(Python) - gemini client for Pyhton (used by geminispace.info)
html2gemini
(Go) - package library to convert HTML to Gemini (see also html2gmi for command line application)
ignition
(Python) - Gemini client transport/request library for python3.
qgeminiserver
(Deno/TypeScript) - framework for server applications. A kaksik fork that fixes bugs and keeps away bit-rot.
kaksik
(Deno/TypeScript) - middleware library for building server applications.
ruby-net-text
(Ruby) - Gemini support in Net::* and URI::* stack.
SmolNetSharp
(C#) - cross platform .NET (core/framework) client library for building Gemini and Gopher clients
warmuuh/jemini
(Java) - reactive gemini-client, part of jemini-project
geminic
(Erlang) - An Erlang library for building Gemini protocol clients.
dremini
(C++) - Highly concurrent C++ Gemini server and client library
Opal
(C#) - Gemini client library targeting .NET Standard 2.0. Built-in support for TOFU and client certificates.
gemax
(Go) - a golang gemini stack, inspired by go STD http library.
gemini-php
(PHP) - Composer library that includes TLS / socket client, Gemtext parser and DokuWiki tools.
phos
(Common Lisp) - Gemini client library and experimental GUI
ggemtext
(Rust) - Glib-oriented Gemtext API
ggemini
(Rust) - Glib/Gio-oriented client for Gemini protocol
titanite
(Rust) - Client/Server library for Gemini protocol with Titan support
gemtext-php
(PHP) - object-oriented library for Gemtext operations
Related Specifications
GemPub Specification
Gempub, the Gemini e-book (and capsule archive) container specification.
Gemini TinyLog Specification
A Tinylog is a simple file with all "microblog" style entries to share small contents and interact with other geminauts' tinylog.
Adding Emoji Favicons to Gemini
Optional extension by Michael Lazar to the Gemini Protocol, with the goal to set a Unicode emoji as favicon for a site.
Resources
Gemini Specification
the Gemini protocol documentation.
geminiprotocol.net/software/
list of Gemini software.
Servers
Agate
(Rust) - simple Gemini server for static files.
aiogemini
(Python) - minimalist Python 3 asyncio server.
Apogee
(Kotlin) - Gemini server written in Kotlin for the JVM.
atlas
(C#) - .NET7 Gemini/Titan/Spartan server w/ vhost and cgi support.
a-h/gemini
(Go) - Applications and libraries for building applications on Gemini.
blizanci
(Erlang) - server designed primarily for robustness and security.
Bunkum
(C#) - Open source .NET Gemini/Titan/Gopher/HTTP(S) request server.
Denoscuri
(Typescript) - simple Gemini server written using Deno and Typescript.
Dʒɛmɪni
(Racket) - server with features like SNI and CGI.
Diamant
(Ruby) - simple Gemini server for static files.
Doppio
(Java) - single-JAR Gemini server with CGI, authentication, and Atom feed support.
Duckling proxy 🦆
(Go) - scheme-specific filtering proxy for Gemini clients to access the web.
Earl Server
(Kotlin) - Gemini fileserver for the JVM.
Enceladus
(F#) - A simple Gemini protocol server implementation in .NET Core and F#.
Ergol
(PHP) - light Gemini server able to host several capsules with different cerificates.
GeGoBi
(Python) - server to facilitate easy Gemini-Gopher bi-hosting.
Gemeaux
(Python) - server using only the Python standard library.
Gemi
(TypeScript/Deno) - Natively serves Gemtext over HTTP. (Or as HTML for gemtext-unaware browsers)
Gemini Dock
(TypeScript) - an extensible Gemini server with a built-in database and easy dynamic site creation focused on DX
gemini-ipfs-gateway
(Go) - an IPFS Gateway that makes IPFS content available over the Gemini protocol.
gemini-server
(Haskell) - lightweight server for the Gemini protocol.
geminid
(C) - Gemini Server in C.
geminid
(Scheme) - Gemini Server in CHICKEN Scheme.
gemini-php
(PHP) - simple Gemini server in PHP.
geminispace-jsdoc-server
A Gemini server for serving JSDoc documentation on the Deno runtime.
Gneto
(Go) - Gemini over HTTP proxy, with support for client certificates and CSS customization.
JAGS-php
(PHP) - fork of gemini-php with support of dynamic pages.
jsonresume-gemini
(PHP) - single purpose server implementation of the Gemini protocol to serve up your JSON Resume.
geminim
(Nim) - an async lightweight Gemini server made in Nim.
gmid
(C) - simple and secure Gemini server.
gmifs
(Go) - Gemini file server with auto indexing support, caching and auto TLS key pair creation.
gmnd
(Python) - packaged Gemini server with support for CGI and indexing
gmnisrv
(C) - high-performance Gemini server for POSIX systems.
Gemserv
(Rust) - server with features like vhosts, CGI, SCGI, reverse-proxying and more.
Germinal
(Common Lisp) - serves any type of document with an appropriate mime type.
GLV-1.12556
(Lua) - the first Gemini protocol server with a lot of features.
Hydepark
(Rust) - discussion forum application for Gemini.
Jetforce
(Python) - built-in static file server with support for gemini directories and CGI scripts.
warmuuh/jemini
(Java) - reactive gemini-client, part of jemini-project
laika
(Rust) - async Gemini protocol server.
levior
(Python) - HTTP to Gemini gateway, allowing you to browse regular websites with any Gemini client
Loxy
(C#) - Gemini to HTTP proxy, exposes any capsule to the web as stylable HTML (based on the Opal library).
Lupa Pona
(Perl) - simple single directory Gemini server.
Maple
(C++) - A very simple static Gemini server, now with Titan support!
Marami
(Prolog) - server written in Prolog.
Molly Brown
(Go) - full-featured Gemini server implemented in Go.
mollyb
(Java) - A basic Gemini server in Java
MoonGem
(C) - gemini server with inline Lua scripting for dynamic content generation.
net-gemini
(Go) - gemini server inspired by Molly Brown.
Orbit
(PHP) - Gemini server implemented in PHP.
Phoebe
(Perl) - Gemini/web wiki.
pollux
(Rust) - simple server that will only serve one index.gemini file.
rc-gemd
(Shell) - simple Gemini server written in rc (for plan9 operating systems).
Satellite
(Go) - small Gemini server for serving static files.
Shavit
(Go) - configurable Gemini server for UNIX operating systems.
Smolver
(Swift) - a small Gemini server.
Space-Age
(Clojure) - Gemini server written in Clojure.
Taurus
(Rust) - A Concurrent Gemini Server.
Titan
(Rust) - simple TOML-configured Gemini server and an Express-like Gemini server framework.
twins
(Go) - YAML-configured Gemini server supporting vhosts, FastCGI and reverse-proxying.
twinstar
(Rust) - gemini server implementation.
vger
(C) - Gemini server written in C used with inetd.
Wallawood
(Java) - An ergonomic and feature rich dual protocol server with a Gemini-first interface.
Windmark
(Rust) - An elegant and highly performant async Gemini server framework
SpaceBeans
(Scala) - supports virtual hosting, user directories, classic CGI.
StaticGeminiServer
(Codeberg) (Ruby) - a simple more or less stable gemini server for static files
kepler
simple gemini server in rust
Mehari
Featureful server in OCaml
β-Doku
(PHP) - DokuWiki Satellite for Gemini Protocol
KevaChat
(PHP) - client/server Chat in Blockchain
gemini-server-clj
(Clojure) - simple gemini server for serving static files
tripod
(Common Lisp) - Polyglot blog engine serving Gemtext, Gopher, HTML, and plaintext
Yo!
(PHP) - Search server and crawler with history snap support, based on Manticore
vostok
(gemini://vostok.any-key.press/) (C++11) - gemini server
gem
(C) - static file server with many features
titanit
(Rust) - File share server for Titan protocol with Gemini frontend
Pulsar
(PHP) - RSS aggregation server for Gemini Protocol
βtracker
(Rust) - BitTorrent catalog for the Gemini protocol
Services
gemlog.blue
Gemini hosting from a web frontend.
Tools
astroget
(C) - Command line tool to download and upload files from Gemini, Gopher, Scorpion, and Spartan servers.
CAPCOM
(Python) - Atom feed aggregator for gemini.
certified
(Python) - Generate TOFU TLS certificates for gemini servers.
comitium
(C) - A feed aggregator for gemini supporting many formats and protocols.
gemfreely
(Rust) - Synchronize gemlogs to the Fediverse via WriteFreely.
gemget
(Go) - Command line downloader for the Gemini protocol.
gemini-antenna
(Python) - A feed-aggregator for Gemini, triggered by submissions.
geminize
Firefox addon that redirects gemini:// URLs and links to a customizable HTTP-to-Gemini proxy.
gemlog.sh
(Bash) - Utility for writing and managing gemini logs (gemlogs) and atom feeds (simple gemini static site generator/framework).
gem.git
(Python) - git frontend CGI script.
gemmit
(Go) - social news aggregation and web content rating website for the gemini protocol.
gempost
(Rust) - Simple static site generator for Gemini blogs.
GemPress
(C) - Yet another Gemini publishing framework with HTML and Atom support, written in Bash and Sugar-C.
gemtexter
(Bash) - Site generator and blog engine for Gemini. Generates Atom and Gemfeeds , and also does Gemtext to HTML and Markdown conversion.
gloggery
(Go) - basic static site generator for blogs in Gemini.
gmitohtml
(Go) - proxy that renders Gemini pages using HTML.
gmnigit
(Go) - static git gemini viewer.
gssg
(Go) - simple gemini static site generator. Generates pages, index and atom feeds.
kiln
(Go) - simple static site generator for Gemini sites.
Lupa
crawler to explore the geminispace and make statistics (you can see them at __gemini://gemini.bortzmeyer.org/software/lupa/stats.gmi ).
Manisha
Nagios (and compatible, such as Icinga) plugin to monitor Gemini servers.
spacewalk
(Go) - Page-hash based feed aggregator for gemini.
MastoGem
(Go) - Mastodon proxy for Gemini.
Hugo-2-Gopher-and-Gemini
(Python) - A Hugo theme to convert a Hugo site to Gemini or Gopher.
Gopher-and-Gemini-Walker
(Python) - Terminal client (without network connectivity) to navigate a folder structure containing a Gemini capsule or Gopher hole.
Gemini Diagnostics
A torture test for gemini servers
Pulsar
(PHP) - RSS aggregation server for Gemini Protocol
gemini-dl
(PHP) - CLI batch downloader for Gemini protocol
pulsarss
(Rust) - Crawl & Convert RSS feeds into static Gemtext
spsg
(Go) - Small Protocol Static Generator - Produces Gemini/Gopher/Nex indexes based on gemini posts.
Tools >Gemtext converters
dioscuri
(JS) - A Gemtext parser with interfaces to transform to and from mdast (markdown ast) and to compile to HTML.
gemgen
(Go) - A Markdown to Gemtext generator.
gemini-pandoc-lua-filter
(Lua) - lua filter for pandoc to output Gemini text.
gemini-to-html
(Node.js) - JavaScript library for parsing Gemini pages, and for rendering them to HTML.
gemtext2latex
(Python) - tool for converting Gemtext to reasonable LaTeX and thence PDF
gemtext2md
(Rust) - tool for converting Gemtext to Markdown
gemtexter
(Bash) - Site generator and blog engine for Gemini. Generates Atom and Gemfeeds , and also does Gemtext to HTML and Markdown conversion.
gmi2html
(Zig) - tiny gemtext to HTML converter with a focus on performance.
gmi-web
(JS) - generate semantic HTML styled for readability and mobile-friendliness.
gmnhg
(Go) - renders a Hugo site to a Gemini site.
Html2GeminiPy
(Python) - Converts Html sites to Gemini sites using markdownify and md2gemini.
html2gmi
(Go) - command line utility to convert HTML to gemtext
md2gemini
(Python) - converter from Markdown to the Gemini text format.
md2txt
(Python) - converter from Markdown to Gemini text (and other formats) that supports FIGlets, alignment, and margins.
Hugo-2-Gopher-and-Gemini
(Python) - A Hugo theme to convert a Hugo site to Gemini or Gopher.
gemini-php
(PHP) - Composer library that includes TLS / socket client, Gemtext parser and DokuWiki tools.
gemitwee
(PHP) - Converts Twine's Twee2 markup to a set of Gemini files for simple choose-your-own-adventure games.
ggemtext
(Rust) - Glib-oriented Gemtext API
Tools >Syntax Highlighting
gemini-vim-syntax
text/gemini syntax highlighting for vim.
gemini.el
text/gemini syntax highlighting for emacs.
gemini.kak
text/gemini syntax highlighting for kakoune.
gemini.nanorc
text/gemini syntax highlighting for nano.
gemini.sublime-syntax
text/gemini syntax highlighting for bat (and maybe Sublime Text).
gemini.yml
text/gemini syntax highlighting for micro.
language_gmi
gemtext syntax highlighting for lite-xl
gemini-intellij-plugin
text/gemini syntax highlighting for IntelliJ IDEs
gemini-zed
text/gemini syntax highlighting for Zed text editor
Web proxies
Bots
Fortune Teller Bot
Generates a fortune gmi file, gemlog/index.gmi, and atom.xml every time the bot is executed
Related lists in Miscellaneous
See categoryAwesome OpenClaw Skills
VoltAgent/awesome-openclaw-skills
The awesome collection of OpenClaw skills. 5,400+ skills filtered and categorized from the official OpenClaw Skills Registry.🦞
Awesome DeepSeek Harness (DSH) Plugin
awesome-dsh-plugin/awesome-dsh-plugin
A curated list of plugins for DeepSeek Harness (dsh) · DeepSeek Harness 插件精选列表
Awesome Guidelines
Kristories/awesome-guidelines
Programming style, best practices, and coding conventions.
Awesome
sindresorhus/awesome
😎 Awesome lists about all kinds of interesting topics [NOTE: Pull requests are temporarily disabled until I have a chance to catch up with the existing ones]
Awesome Prompts
ai-boost/awesome-prompts
Curated list of chatgpt prompts from the top-rated GPTs in the GPTs Store. Prompt Engineering, prompt attack & prompt protect. Advanced Prompt Engineering papers.
Awesome README
matiassingers/awesome-readme
A curated list of awesome READMEs