• Stars
    star
    1,139
  • Rank 40,911 (Top 0.9 %)
  • Language
    Go
  • License
    GNU General Publi...
  • Created over 4 years ago
  • Updated 4 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

A fancy terminal browser for the Gemini protocol.

Amfora

amphora logo

Image modified from: amphora by Alvaro Cabrera from the Noun Project

go reportcard license GPLv3

Demo GIF
Recording of v1.0.0

Amfora aims to be the best looking Gemini client with the most features... all in the terminal. It does not support Gopher or other non-Web protocols - check out Bombadillo for that.

It also aims to be completely cross platform, with full Windows support. If you're on Windows, I would not recommend using the default terminal software. Use Windows Terminal instead, and make sure it works with UTF-8. Note that some of the application colors might not display correctly on Windows, but all functionality will still work.

It fully passes Sean Conman's client torture test, as well as the Egsam one.

Installation

Binary

Download a binary from the releases page. On Unix-based systems you will have to make the file executable with chmod +x <filename>. You can rename the file to just amfora for easy access, and move it to /usr/local/bin/.

On Windows, make sure you click "Advanced > Run anyway" after double-clicking, or something like that.

Unix systems can install the desktop entry file to get Amfora to appear when they search for applications:

curl -sSL https://raw.githubusercontent.com/makeworld-the-better-one/amfora/master/amfora.desktop -o ~/.local/share/applications/amfora.desktop
update-desktop-database ~/.local/share/applications

Make sure to click "Watch" in the top right, then "Custom" > "Releases" to get notified about new releases!

Linux

Packaging status

Amfora is packaged in many Linux distros. It's also on Scoop for Windows users.

macOS (Homebrew)

If you use Homebrew, you can install Amfora with:

brew install amfora

You can update it with:

brew upgrade amfora

macOS (MacPorts)

On macOS, Amfora can also be installed through MacPorts:

sudo port install amfora

You can update it with:

sudo port selfupdate
sudo port upgrade amfora

NOTE: this installation source is community-maintained. More information here.

Termux

If you're using Termux on Android you can't just run Amfora like normal. After installing Amfora, run pkg install proot. Then run termux-chroot before running the Amfora binary. You can exit out of the chroot after closing Amfora. See here for why this is needed.

From Source

This section is for advanced users who want to install the latest (possibly unstable) version of Amfora.

Click to expand

Requirements:

  • Go 1.15 or later
  • GNU Make

Please note the Makefile does not intend to support Windows, and so there may be issues.

git clone https://github.com/makeworld-the-better-one/amfora
cd amfora
# git checkout v1.2.3 # Optionally pin to a specific version instead of the latest commit
make # Might be gmake on macOS
sudo make install # If you want to install the binary for all users

Because you installed with the Makefile, running amfora -v will tell you exactly what commit the binary was built from.

Arch Linux users can also install the latest commit of Amfora from the AUR. It has the package name amfora-git, and is maintained by @lovetocode999

yay -S amfora-git

MacOS users can also use Homebrew to install the latest commit of Amfora:

brew install --HEAD amfora

You can update it with:

brew upgrade --fetch-HEAD amfora

Features / Roadmap

Features in italics are in the master branch, but not in the latest release.

  • URL browsing with TOFU and error handling
  • Tabbed browsing
  • Support ANSI color codes on pages, even for Windows
  • Styled page content (headings, links)
  • Basic forward/backward history, for each tab
  • Input (Status Code 10 & 11)
  • Multiple charset support (over 55)
  • Built-in search (uses geminispace.info by default)
  • Bookmarks
  • Download pages and arbitrary data
  • Theming
  • Proxying
    • Schemes like Gopher or HTTP can be proxied through a Gemini server
  • Client certificate support
  • Subscriptions
    • Subscribing to RSS, Atom, and JSON Feeds are all supported
    • So is subscribing to a page, to know when it changes
  • Open non-text files in another application
    • Ability to stream content instead of downloading it first
  • Highlighting of preformatted code blocks that list a language in the alt text
  • Stream support
  • Table of contents for pages
  • Search in pages with Ctrl-F
  • Persistent history

Usage & Configuration

Please see the wiki for an introduction on how to use Amfora and configure it.

Libraries

Amfora ❀️ open source!

License

This project is licensed under the GPL v3.0. See the LICENSE file for details.

More Repositories

1

dither

A fast, correct image dithering library in Go.
Go
360
star
2

didder

An extensive, fast, and accurate command-line image dithering tool.
Go
351
star
3

md2gemini

File converter from Markdown to Gemini.
Python
163
star
4

merkdir

Create Merkle trees from your directories.
Go
103
star
5

gemget

Command line downloader for the Gemini protocol.
Go
68
star
6

go-gemini

Client and server library for the Gemini protocol, in Go.
Go
59
star
7

gemlikes

A liking and comment system for the Gemini protocol.
Go
51
star
8

neartalk

NearTalk is chat platform to talk to people nearby.
Go
22
star
9

fmrl

A protocol for status messages. See what your friends are up to!
20
star
10

days

Command-line tool for calculating the number of days between given dates: days until, days since, days from
Go
13
star
11

wordle-badger2040

Wordle on the Badger 2040
Python
13
star
12

lannet

A little web on the LAN
Go
10
star
13

geohashing

xkcd geohashing, but it actually works.
Python
9
star
14

go-isemoji

Go library to test if a string is an emoji.
Go
8
star
15

live-glitch

Realtime glitch art effects with Python and OpenCV.
Python
6
star
16

tiktok-link

Reddit bot that runs OCR on TikTok videos and links back to the creator's page
Python
5
star
17

whatsup

The reference server implementation for the fmrl protocol.
Go
5
star
18

go-gemini-socks5

SOCKS5 proxy for go-gemini
Go
4
star
19

ipfs-demo

A offline, mesh-networking demo of IPFS, for use by tomesh.net
Python
3
star
20

makeworld.space

HTML
2
star
21

rfcts

Bash scripts for RFC 3161 trusted timestamping
Shell
2
star
22

homebrew-tap

Ruby
1
star
23

reddit-news-skill

Reads out news headlines from r/worldnews on reddit
Python
1
star
24

processing

Code I've written in Processing (Java) that isn't a major project
Processing
1
star