GTL: Gemini Tiny Logs

Goal: A TUI for the tinylogs format on the gemini space.

See screenshots


gtl requires go ≥ 1.16

From Source

git clone
cd gtl
make dependencies
make build

Put the binary in a directory available in your $PATH if you don’t want to type the full path to the program.

From Binaries

You can download binaries for linux here. Binaries are only available for linux 386, amd64, arm and arm64 for now.

PS: I don’t have a Mac or Windows box easily accessible, so any help/patch on this is appreciated :).


Quick start:

Assuming you put the binary in ~/bin:

~/bin/gtl # will create the configuration and subscription files in ~/.config/gtl/ and a subscription path.
[~/bin/gtl add --url gemini://capsule.tld/tinylog.gmi # Adding other entries than just my default one.
[# Repeat add command for all the feeds.]
~/bin/gtl --mode cli --limit 10
# Or use the TUI mode:
~/bin/gtl --mode tui

You can still use gtl “continuously”:

while true; do clear && ~/bin/gtl --mode cli --limit 10 && sleep 1800; done;

Or use the TUI and refresh the timeline when you want.

Global commands:

gtl --help
gtl --version

Use gtl TUI

Screenshot of the TUI below.

gtl --mode tui

or configure the gtl.toml to set mode = tui (see config below).

PS: TUI is the default mode since v0.4.8

TUI Shortcuts:

?: Display help
r: Refresh timeline (refresh all tinylogs)
t: Display timeline (remove all filters like highlights of specific tinylog)
h: Toggle Highligts only / all entries (keep tinylog filter).
s: Toggle hide/show subscription sidebar (left).
Tab: Switch between timeline and subscription list.
Arrow keys up/down or j/k: navigate
ctrl+n: Open tinylog in $EDITOR. (See configuration below.)
q or Ctrl-C: Quit

You can navigate on the subscription list and:

  • left click or press enter: Will filter only entries from this tinylog and hide all entries from other tinylogs. A Status F or 🔎 is indicated.
  • right click or press alt+enter: Will open a menu to mute / unmute a tinylog. A tinylog muted means no entry from this tinylog are displayed. A Status M or 🔕 is displayed.

TUI Emoji Status:

If tui_status_emoji is set to true in the configuration file (see below), emoji will be used for the status. Otherwise, simple ASCII characters will be used.

  • V or : All good 🙂
  • X or : Indicates that the feed format is wrong or that no entries has been found.
  • D or ☠️ : Indicates that the capsule/page is unreachable.
  • S or 🔓: Indicates an error with the SSL certificate.
  • F or 🔎: Indicates that the feed is selected. It means only entries from this tinylog are displayed.
  • M or 🔕: Indicates that the feed is muted. It means no entry of this tinylog will be displayed.

Use gtl CLI

Screenshot of the CLI below.

	--config configFile	Indicate a specific config file.
	--mode {cli,tui}	Select the cli or tui mode.
	--limit X		When using cli mode, display only X item.
	--help			Display this help message.


gtl --mode cli --limit 10
gtl --limit 10 # cli mode is default, so this is the same as above.
gtl --mode cli --limit 10 --config path/to/config/file # with specific path for config file.

If you don’t provide a config file path, gtl will look for it in {homepath}/.config/gtl/gtl.toml

You need a subscription file though with the list of tinylogs to follow. For easier migration, the format is the same as lace:

<div class="snippet-clipboard-content position-relative" data-snippet-clipboard-copy-content=" nameOfTinyLog