Awesome Gemini List

A list of awesome Gemini things. Automatically generated from Awesome Gemini list at https://github.com/kr1sp1n/awesome-gemini

Clients

Terminal

Amfora](https://github.com/makeworld-the-better-one/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](https://git.sr.ht/~rafael/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

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

vimini (Rust) - Desktop gemini browser inspired by qutebrowser and Vim.

Graphical

Cross-platform

Agregore - (Electron.js) - peer to peer web browser with support for loading Gemini pages.

Alrisha (QML) - QML-based Gemini client.

Castor (Rust) - graphical Gemini client using GTK.

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

Lagrange (C) - desktop GUI client with inline image viewing, 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.

Yoda](https://github.com/YGGverse/Yoda) (PHP-GTK) - Experimental browser for Gemini Protocol based on => https://github.com/scorninpc/php-gtk3 PHP-GTK and [gemini-php.

Mobile

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.

Xenia (Java) - Gemini proxy for 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.

Windows

GemiNaut (C#) - user friendly graphical Gemini client for MS Windows.

MacOS

Jimmy (SwiftUI) - a lightweight native Gemini client for MacOS

AmigaOS

AmiGemini

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](https://deno.land/x/qgeminiserver) (Deno/TypeScript) - framework for server applications. [kaksik fork and bug-fix.

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.

phos (Common Lisp) - Gemini client library and experimental GUI

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) - Server for Linux, Mac, Raspberry Pi. Supports SNI for multiple domains on the same server, has Docker image.

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.

doc-server (Deno/Typescript) - A Gemini server for serving JSDoc documentation. Built on the Kaksik library.

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.

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.

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.

jemini(Java) - dual gemini/http server on top of jetty with spring-boot integration

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.

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.

Windmark (Rust) - An elegant and highly performant async Gemini server framework

SpaceBeans (Scala) - supports virtual hosting, user directories, classic CGI.

StaticGeminiServer](https://github.com/marek22k/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

vostok (__gemini://vostok.any-key.press/__) (C++11) - gemini server

gem (C) - static file server with many features

Services

Geminispace aggregator

interactive link service (with comments).

free platform as a service (PaaS) that runs any Gemini server (packaged as a Docker image) in the cloud.

interface for the OpenBSD ports collection.

experimental Search Engine for Gemini written in Go

public search provider for Gemini

make words with specified letters

a wordle-like game

A public wall where you can leave a message

Daily news feeds proxied to gemini.

Play othello/reversi against a computer opponent over gemini.

US weather reports by zip code.

weather forecast powered by wttr.in

gemlog.blue - Gemini hosting from a web frontend.

A simple tool to check if a capsule is up or not

Explore gemspace by hopping from one random interesting page to the next.

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.

cl-yag (Common-Lisp) - Static site generator producing gemini, gopher and html.

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 Aggregator for Gemini Protocol

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.

gmi2html (Sed) - sed script to convert text/gemini to html.

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

md2gmn (Go) - renders Markdown text to Gemini pages.

md2gemini (Python) - converter from Markdown to the Gemini text format.

Hugo-2-Gopher-and-Gemini (Python) - A Hugo theme to convert a Hugo site to Gemini or Gopher.

gemini-php (PHP) - Composer library for Gemini - includes DokuWiki converter, file-system operations and other API

gemitwee (PHP) - Converts Twine's Twee2 markup to a set of Gemini files for simple choose-your-own-adventure games.

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

Web proxies

Mozz.us portal

Soweli Lukin

Vulpes proxy

koyu.space GemProxy

Wobbly

Tildeverse Gemini Proxy

yah2g: yet another http-to-gemini

Bots

Fortune Teller Bot - Generates a fortune gmi file, gemlog/index.gmi, and atom.xml every time the bot is executed