A fancy terminal browser for the Gemini protocol.
Go to file
2020-09-01 13:55:09 -04:00
.github 🚨 Add .golangci.yml, run gofmt, add PR to changelog 2020-08-27 18:52:38 -04:00
bookmarks 🚨 Fix linting errors and switch to disable-all model 2020-08-25 19:17:06 -04:00
cache 🚨 More linting fixes and unix build fix 2020-08-27 11:47:57 -04:00
client 🐛 Make TOFU warning accurate when proxy enabled 2020-09-01 12:56:44 -04:00
config Custom new tab page (#83) 2020-09-01 13:55:09 -04:00
display Custom new tab page (#83) 2020-09-01 13:55:09 -04:00
logger 🎉 Initial commit, full featured 2020-06-18 16:54:48 -04:00
renderer 🚨 Remove nolints for now-disabled check 2020-08-28 12:22:49 -04:00
structs 🚨 More linting fixes 2020-08-25 21:03:21 -04:00
webbrowser 🚨 More linting fixes and unix build fix 2020-08-27 11:47:57 -04:00
.gitignore 🙈 2020-07-10 19:19:43 -04:00
.golangci.yml 🚨 Disable check, like on feed branch 2020-08-28 12:20:54 -04:00
.travis.yml 💚 Set email notif settings 2020-08-27 23:14:14 -04:00
amfora.desktop 🐛 Removing TryExec helps get Amfora to show up 2020-06-24 19:11:56 -04:00
amfora.go 💄 >9 link texts are in line - fixes #60 2020-08-04 20:44:43 -04:00
CHANGELOG.md 📝 Shorten line 2020-08-29 12:44:36 -04:00
default-config.toml Proxy support 2020-08-27 22:40:40 -04:00
demo-large.gif 📝 Update README with Gif 2020-06-18 19:10:45 -04:00
go.mod 🚨 More linting fixes 2020-08-25 21:03:21 -04:00
go.sum 🐛 Recog. colon-only scheme URLs and add normalizeURL tests 2020-08-27 19:57:06 -04:00
LICENSE Create LICENSE 2020-06-18 16:56:57 -04:00
logo.png 🎉 Initial commit, full featured 2020-06-18 16:54:48 -04:00
NOTES.md 🔖 Release v1.4.0 2020-07-28 19:33:00 -04:00
README.md 📝 Add ANSI bug 2020-08-31 12:09:54 -04:00

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. 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 should also move the binary 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

Arch Linux

Arch Linux users can install Amfora from AUR. It has the package name amfora, and is maintained by @pboyd.

yay -S amfora

Homebrew

If you use Homebrew, you can install the package maintained by @Jackymancs4.

brew install jackymancs4/tap/amfora

You can update it with:

brew upgrade amfora

From Source

This section is for programmers who want to install from source. Make sure you're using Go 1.13 at least, as earlier versions will fail to build.

Install latest release:

go env -w GO111MODULE=on
go get github.com/makeworld-the-better-one/amfora

Install latest commit:

go env -w GO111MODULE=on
go get github.com/makeworld-the-better-one/amfora@master

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
  • Proxying
    • All requests can optionally be sent through another server
    • A gemini proxy server implementation currently does not exist, but Amfora will support it when it does!
  • Subscribe to RSS and Atom feeds and display them
    • Subscribing to page changes, similar to how Spacewalk works, will also be supported
    • In progress on feeds branch
  • Stream support
  • Full client certificate UX within the client
  • Table of contents for pages
  • Search in pages with Ctrl-F
  • Support Markdown rendering
  • 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.

Known Bugs

  • Pasting on Windows is truncated, the full paste content won't be added. (#43)
  • ANSI codes aren't displaying properly (#59)

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.