A fancy terminal browser for the Gemini protocol https://github.com/makew0rld/amfora
Go to file
makeworld ef23d9e45f Logging removed 2020-12-06 21:02:41 -05:00
.github 👷 Move GitHub actions to correct dir 2020-11-02 18:48:25 -05:00
bookmarks 🚨 Fix linting errors and switch to disable-all model 2020-08-25 19:17:06 -04:00
cache 🚧 Allow caching, increase curDay initial" 2020-11-17 11:59:06 -05:00
client Merge branch 'master' into feeds 2020-11-23 21:11:51 -05:00
config Add pagination 2020-12-06 20:57:57 -05:00
contrib/themes 💄 Add dracula theme 2020-11-23 13:19:05 -05:00
display Logging removed 2020-12-06 21:02:41 -05:00
logger 🎉 Initial commit, full featured 2020-06-18 16:54:48 -04:00
renderer Merge branch 'master' into feeds 2020-11-23 21:11:51 -05:00
structs 🚧 Adding & displaying feeds/pages works 2020-11-17 20:56:15 -05:00
subscriptions Logging removed 2020-12-06 21:02:41 -05:00
webbrowser Implement a more robust algorithm for opening web links on unices (#93) 2020-10-01 17:06:50 -04:00
.gitignore Makefile 2020-09-02 11:05:14 -04:00
.golangci.yml 🚨 Fix lint issues 2020-09-01 16:30:06 -04:00
.goreleaser.yml 🔧 Disable automatic homebrew 2020-09-06 13:56:49 -04:00
CHANGELOG.md ⬆️ go-gemini v0.9.3 2020-11-23 21:09:48 -05:00
LICENSE Create LICENSE 2020-06-18 16:56:57 -04:00
Makefile 🔀 Merge branch 'master' into feeds 2020-10-10 20:11:00 -04:00
NOTES.md Logging removed 2020-12-06 21:02:41 -05:00
README.md Add pagination 2020-12-06 20:57:57 -05:00
THANKS.md 📝 Doc for #117 2020-11-22 16:27:34 -05:00
amfora.desktop 🐛 Removing TryExec helps get Amfora to show up 2020-06-24 19:11:56 -04:00
amfora.go Logging removed 2020-12-06 21:02:41 -05:00
default-config.toml Add pagination 2020-12-06 20:57:57 -05:00
demo-large.gif 📝 Update README with Gif 2020-06-18 19:10:45 -04:00
go.mod Merge branch 'master' into feeds 2020-11-23 21:11:51 -05:00
go.sum Merge branch 'master' into feeds 2020-11-23 21:11:51 -05:00
logo.png 🎉 Initial commit, full featured 2020-06-18 16:54:48 -04:00

README.md

Amfora

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

travis build status 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, including the new Unicode tests. It mostly passes the Egsam test.

Installation

Binary

Download a binary from the releases page. On Unix-based systems you might 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" > "Releases only" in the top right to get notified about new releases!

Arch Linux

Arch Linux users can install Amfora using pacman.

sudo pacman -S amfora

Homebrew

If you use Homebrew, you can install Amfora through the official tap.

brew tap makeworld-the-better-one/tap
brew install amfora

You can update it with:

brew upgrade amfora

From Source

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

Requirements:

  • Go 1.13 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.

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

brew tap makeworld-the-better-one/tap
brew install --HEAD amfora

You can update it with:

brew upgrade --fetch-HEAD amfora

Usage

Just call amfora or amfora <url> on the terminal. On Windows it might be amfora.exe instead.

To determine the version, you can run amfora --version or amfora -v.

The project keeps many standard terminal keybindings and is intuitive. Press ? inside the application to pull up the help menu with a list of all the keybindings, and Esc to leave it. If you have used Bombadillo you will find it similar.

It is designed with large terminals in mind, but should look and work well at any reasonable terminal size.

It was tested with left-to-right languages, and will likely not work as well with right-to-left languages like Arabic.

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 GUS by default)
  • Bookmarks
  • Download pages and arbitrary data
  • Theming
  • Emoji favicons
    • See gemini://mozz.us/files/rfc_gemini_favicon.gmi for details
    • Disabled by default, enable in config
  • Proxying
    • Schemes like Gopher or HTTP can be proxied through a Gemini server
  • Client certificate support
  • Subscriptions
    • RSS, Atom, and JSON Feeds are all supported
    • So is tracking a page, to know when its content changes
  • Stream support
  • Table of contents for pages
  • History browser

Configuration

The config file is written in the intuitive TOML file format. See default-config.toml for details. By default this file is available at ~/.config/amfora/config.toml, or $XDG_CONFIG_HOME/amfora/config.toml, if that variable is set.

On Windows, the file is in %APPDATA%\amfora\config.toml, which usually expands to C:\Users\<username>\AppData\Roaming\amfora\config.toml.

Client Certificates

Amfora has early support for client certs. Eventually Amfora will be able to generate them itself, but for you can do it by using OpenSSL:

openssl req -new -subj "/CN=username" -x509 -newkey ec -pkeyopt ec_paramgen_curve:prime256v1 -days 1825 -nodes -out cert.pem -keyout key.pem

This will create a certificate and key file, that can be renamed and moved as you like. See the configuration section above for how to edit your config file to tell Amfora about them.

Known Bugs

  • Pasting on Windows is truncated, the full paste content won't be added. (#43)

You can also check out all the issues with the bug label.

Libraries

Amfora ❤️ open source!

License

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