awesome-gemini
by kr1sp1n
A collection of awesome things regarding the gemini protocol ecosystem.
AI summary
Gemini projects
A curated collection of resources and projects related to the Gemini protocol ecosystem.
- stars
- 1.1K
- forks
- 108
- watching
- 31
- awesome lists
- 2
- entries
- 239
What's in the list
239 links in 14 sections, with live GitHub stats.activeno commit in 2y
Links
Gemini Specification
Clients / Terminal
Amfora
(Go) - "fancy" terminal client. In
- 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
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
Clients / Graphical
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
(PHP-GTK) - Experimental browser for Gemini Protocol based on and
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
- GemiNaut
(C#) - user friendly graphical Gemini client for MS Windows
Jimmy
(SwiftUI) - a lightweight native Gemini client for MacOS
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. 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 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 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
( ) (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
( ) (C++11) - gemini server
gem
(C) - static file server with many features
Services
- https version
( ) - host small Gemini web pages over https and Gemini ( )
- repo
public search provider for Gemini ( )
- repo
Tic Tac Toe game ( )
- repo
translate from en->es and es->en ( )
- gemlog.blue
Gemini hosting from a web frontend
- http version
( ) Another public search provider for Gemini( )
repo
Yggdrasil DokuWiki Satellite ( )
repo
KevaChat clearnet node for Gemini ( )
repo
Observe Kevacoin Universe ( )
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
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
- gmi2html
(Sed) - sed script to convert text/gemini to html
- gmi-web
(JS) - generate 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
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
Web proxies
Bots
Fortune Teller Bot
Generates a fortune gmi file, gemlog/index.gmi, and atom.xml every time the bot is executed
Nothing in this list matches your filter.
Featured in 2 awesome lists
Each link jumps to the spot where the list mentions awesome-gemini.