Amfora: a terminal Gemini client with tabs, subscriptions and proxying
A fancy terminal browser for the Gemini protocol.
At a glance
- What is it?
- Amfora is a terminal browser for the Gemini protocol with tabbed browsing, feed subscriptions, proxying and syntax highlighting. It runs on Linux, macOS and Windows, installable via Homebrew, MacPorts or a pre-built binary.
- Who is it for?
- Amfora suits Gemini browsing on Linux or macOS if you want tabs, feed subscriptions, proxying and syntax highlighting in a single TUI. The project entered maintenance mode in 2023 and the latest release is v1.11.0 from 2025-07-14, so feature additions from the author are not planned.
- Can I use it commercially?
- Yes, with conditions. GPL-3.0 is a copyleft licence: if you distribute software that includes it, you must release that software's source code under the same licence. Running it internally without distributing it does not trigger that obligation.
- Is it still maintained?
- Yes. The repository last received commits 11 days ago.
- What is it written in?
- Mainly Go, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 11, 2026, and from our analysis. They are not legal advice.
Editorial analysis
Gemini only: Gopher and HTTP are out of scope, and Bombadillo handles Gopher
Amfora is a terminal client for the Gemini protocol, a minimalist text-focused publishing protocol that differs from the HTTP web in both scope and design. The README is direct about what Amfora does not cover: Gopher and other non-web protocols are explicitly excluded, and Bombadillo is named as the alternative for users who need Gopher access. Every display decision in Amfora, from styled headings and links to ANSI colour code rendering, is built around Gemini's own text document format rather than a broader set of content types. Cross-platform support includes full Windows coverage, though with conditions specific to that platform. The project fully passes Sean Conman's client torture test and the Egsam conformance test, two independent suites for Gemini clients, providing a baseline for protocol compliance before adoption.
Installing from a binary, Homebrew or MacPorts
Pre-built binaries are available on the project's download page. On Unix-based systems, chmod +x makes the downloaded file executable, and moving it to /usr/local/bin/ adds it to the path. For macOS users with Homebrew, installation and future upgrades are:
brew install amfora
brew upgrade amforaMacPorts offers a second macOS path, though the README labels it as community-maintained:
sudo port install amforaLinux users can check repology for distribution-specific packages; Amfora is packaged in many Linux distros. Scoop covers Windows installations for that package manager's users. For Android via Termux, the README explicitly warns that the binary cannot run normally: you must first run `pkg install proot`, then `termux-chroot` before launching amfora, and exit the chroot after closing the browser. Desktop integration on Unix systems is available by installing amfora.desktop from the repository to ~/.local/share/applications/ and running update-desktop-database on that directory.
The README's Go requirement and go.mod disagree, breaking source builds
Anyone building from source will encounter a discrepancy the README does not acknowledge. The source installation section requires both a Go minimum and GNU Make. The go.mod file at the repository root contradicts the stated Go minimum: it sets both a go directive and a toolchain directive far above the README's stated floor, and a build attempted with the README's minimum fails on that directive before the compiler reaches any source file. The Makefile sets CGO_ENABLED=0, so the resulting binary has no C library dependencies and runs portably. Running `amfora -v` after a source install reports the exact commit the binary was built from, a detail absent from pre-built binaries. The Makefile does not intend to support Windows, meaning source builds may face issues there.
Tabs, feed subscriptions, proxying and syntax highlighting across 55-plus charsets
The feature set covers a wide range of Gemini browsing needs within a single TUI. Tabbed browsing includes per-tab forward and backward history. The subscription system handles RSS, Atom and JSON Feed formats and also supports subscribing to a plain Gemini page to detect content changes. Proxying routes Gopher or HTTP content through a Gemini server, which is the documented path to those protocols since Amfora does not implement them directly. Character encoding support covers over 55 charsets. Theming is configurable, and the contrib/themes/ directory in the repository holds user-contributed theme files. The built-in search defaults to geminispace.info. Preformatted code blocks in Gemini pages receive syntax highlighting when their alt text names a language, using the chroma library. Two features noted in the README are available only in the master branch and not in any packaged build: in-page search with Ctrl-F, and custom commands that receive the current URL as an argument.
TOFU certificate storage and client certificate support via Viper
Amfora handles TLS through a TOFU (trust on first use) model. The feature list names TOFU alongside error handling as part of URL browsing, and the Viper configuration library manages both the application configuration and the TOFU certificate storage as flat files. The default configuration file in the repository root is named default-config.toml, indicating the configuration format. Client certificate support is listed as a separate feature from the TOFU model and covers the Gemini protocol's optional authenticated request mechanism. The wiki is the documented entry point for configuring Amfora; no configuration keys appear inline in the project's README, which means the wiki is the necessary stop before any non-default configuration change.
The dependency stack: cview, go-gemini, chroma and gofeed
The TUI layer uses cview, which is a fork of tview with pull requests merged in and described in the README as having active support; cview itself sits on tcell for low-level terminal operations. The Gemini client library is go-gemini, a fork maintained by the same author as Amfora, with SOCKS5 proxy routing in a companion package. Syntax highlighting comes from chroma, which activates when a Gemini page's preformatted block names a language in its alt text. Feed parsing for the subscription feature uses gofeed. Configuration and TOFU storage run through Viper. The clipboard package handles copy operations, and termenv covers terminal environment detection. golang.org/x/text provides the encoding layer behind the 55-plus-charset support. The last push was on 2026-07-03, and the code is licensed under GPL v3.0.
Windows colour gaps and the Termux setup requirement
Windows is a supported platform, but with two conditions the README specifies. First, the default Windows terminal software is not recommended; the README names Windows Terminal as the replacement and links to instructions for enabling UTF-8 in it. Second, even with Windows Terminal and UTF-8 configured, some application colours may not display correctly, though all features continue to work. This makes Windows a usable but visually inconsistent environment relative to Linux or macOS. Users who want a Gemini client without colour rendering caveats should run Amfora on a Unix-based system or under WSL. For Termux users on Android, the proot and termux-chroot steps are not optional; no alternative path is documented and the binary will not run normally without them.
Editorial conclusion
Amfora suits Gemini browsing on Linux or macOS if you want tabs, feed subscriptions, proxying and syntax highlighting in a single TUI. The project entered maintenance mode in 2023 and the latest release is v1.11.0 from 2025-07-14, so feature additions from the author are not planned. On Windows, configure Windows Terminal for UTF-8 before use; some application colours may not display correctly regardless. For a source build, check go.mod first: the minimum Go version it specifies exceeds the README's stated requirement, and a build with that minimum fails on the module directive.
Frequently asked questions
What is Amfora?
Amfora is a terminal browser for the Gemini protocol, written in Go. It offers tabbed browsing, feed subscriptions, proxying, theming and over 55 charset encodings, all within a TUI that runs on Linux, macOS and Windows.
Does Amfora support HTTP or Gopher browsing?
Amfora does not support Gopher or HTTP natively. Gopher and HTTP content can be proxied through a Gemini server using Amfora's built-in proxying feature. The README names Bombadillo as the alternative for users who need a native Gopher client.
Is Amfora still being developed?
Bug fixes will be merged when possible and feature pull requests from others will be reviewed slowly, but no new features from the author are planned.
How do I install Amfora on macOS?
With Homebrew, run brew install amfora and later brew upgrade amfora to update. MacPorts users can run sudo port install amfora, though the README labels that source as community-maintained.
Does Amfora work on Android via Termux?
The README supports Termux but warns the binary cannot run normally without additional setup. You must run pkg install proot first, then termux-chroot before launching amfora, and exit the chroot after closing it.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/makew0rld-amfora)