Gomphotherium (/ˌɡɒmfəˈθɪəriəm/; "welded beast"), a command line Mastodon client.

Overview

Gomphotherium

Gomphotherium (/ˌɡɒmfəˈθɪəriəm/; "welded beast"), a command line Mastodon client.

Description

Gomphotherium is a Mastodon client for the command line, offering a CLI as well as a TUI with a usage similar to rainbowstream. It is intended to be used at 80 characters width maximum, but ideally inside tmux as a sidebar-style program.

Gomphotherium

Installation

Download a binary from the releases page.

Or build it yourself (requires Go 1.16+):

make

User Manual

Authentication

To authenticate with your Mastodon instance, run the following command and follow the instructions:

gomphotherium authenticate https://YOUR-MASTODON-SERVER-URL-HERE.com

TUI

Launch the TUI with the following command:

gomphotherium tui

Note: If you haven't exported the required environment variables that were shown to you during the [Authentication][#authentication], please do so first or use the CLI flags (gomphotherium -h) instead.

Modes

The TUI can be operated in two modes: Normal and Command.

In Normal mode no interaction is possible apart from scrolling and refreshing the timeline and quitting Gomphotherium. The shortcuts can be looked up on the cheatsheet

In Command mode, the command input becomes available and scrolling the timeline is not possible anymore. Commands can then be issued to interact with the Mastodon instance.

Cheatsheet

Shortcuts

This is a list of supported keyboard shortcuts. The information in box brackets tells to which mode the shortcut applies.

: [normal]
Enter Command mode

Esc [command]
Leave Command mode

ArrowUp / k, ArrowDn / j [normal]
Scroll timeline in either direction by one line

PgUp/b & PgDn/f [normal]
Scroll timeline in either direction by one page

u & d [normal]
Scroll timeline in either direction by half a page

g, G [normal]
Scroll timeline to the very top/bottom

Ctrl + R [any]
Refresh timeline

Ctrl + Q [any]
Quit Gomphotherium

Commands

home
local
public
notifications
hashtag tag [local]
Switch between timelines

whois user
Switch to user profile and timeline

t content ...
toot content ...
Publish a new public toot

tp content ...
tootprivate content ...
Publish a new private toot

tu content ...
tootunlisted content ...
Publish a new unlisted toot

td content ...
tootdirect content ...
Publish a new direct toot

re toot-id content ...
reply toot-id content ...
Reply to a toot publicly

rep toot-id content ...
replyprivate toot-id content ...
Reply to a toot privately

reu toot-id content ...
replyunlisted toot-id content ...
Reply to a toot unlisted

red toot-id content ...
replydirect toot-id content ...
Reply to a toot directly

rt toot-id
retoot toot-id
boost toot-id
Boost a toot

ut toot-id
unretoot toot-id
unboost toot-id
Undo boosting a toot

fav toot-id
Fav a toot

unfav toot-id
Undo fav-ing a toot

open toot-id
Open toot in system browser

share toot-id
Copy toot URL to the clipboard

help
?
Show help page

quit
exit
bye
Quit Gomphotherium

Info: \

  • content ... describes the text content of a toot, including inline shortcodes
  • toot-id describes the toot ID (number) visible on the right side of each toot in the timeline
Inline Shortcodes

Inline shortcodes allow to add additional info to toots. They can be added anywhere in the toot content as they get filtered from the toot before publishing.

~!!
Mark toot as sensitive; one-time shortcode

~#[text ...]
Add content warning (spoiler) text to toot; one-time shortcode

~:[/path/to/file]
Add media by file path to toot; can be specified multiple times

Usage Examples

home
Switch to the home timeline

hashtag theStudio local
Switch to the hashtag timeline and search for the hashtag #theStudio on only the local instance

hashtag lol
Switch to the hashtag timeline and search for the hashtag #lol globally

whois [email protected]
Switch to the profile of [email protected] and list his toots

t Hello World!
Publish a new public toot that says Hello World!

tp Mondays are fine. It’s your life that sucks. ~#[Controversial joke]
Publish a new private toot that says Mondays are fine. It’s your life that sucks. with a content warning that says Controversial joke

tu Check out my mustache! ~:[/home/user/Photos/awesome_mustache.jpg] ~!!
Publish a new unlisted toot with a photo attached to it, that is flagged sensitive

re 11 I think so, @brain, but aren't we out of shaving cream?
Publicly reply to toot with ID 11 with I think so, @brain, but aren't we out of shaving cream?

rt 11
Retoot/boost toot with ID 11

help
Show this help

bye
Goodbye!

CLI

The CLI interface allows for exectuion of commands right from the terminal prompt. Not all commands are supported.

Usage Examples

gomphotherium cmd home
Render the home timeline

gomphotherium cmd t Hello World!
Publish a new public toot that says Hello World!

You might also like...
A client for managing authzed or any API-compatible system from your command line.

zed A client for managing authzed or any API-compatible system from your command line. Installation zed is currently packaged by as a head-only Homebr

dog is a command-line DNS client, like dig.
dog is a command-line DNS client, like dig.

dog is a command-line DNS client, like dig. It has colourful output, understands normal command-line argument syntax, supports the DNS-over-TLS and DNS-over-HTTPS protocols, and can emit JSON.

A simple command-line client for Clash.

Clashcli A simple command-line client for Clash. Interacts with Clash using its REST API. Select nodes for groups Run latency test for a node Help $ c

Command line tool for processing client transaction data in CSV format

command line tool for processing client transaction data in CSV format. thank you for looking! build instructions: $ git clone https://github.com/lnit

Command -line graphql client written in golang

go-graphql-cli Command -line graphql client written in golang.

Command-line tool to customize the official Spotify client. Supports Windows, MacOS and Linux.
Command-line tool to customize the official Spotify client. Supports Windows, MacOS and Linux.

Command-line tool to customize the official Spotify client. Supports Windows, MacOS and Linux. Features Change colors whole UI Inject CSS for advanced

Gowebdav - A golang WebDAV client library and command line tool.

GoWebDAV A golang WebDAV client library. Main features gowebdav library allows to perform following actions on the remote WebDAV server: create path g

LINE account link: Sample code for LINE account link
LINE account link: Sample code for LINE account link

LINE account link: Sample code for LINE account link This is sample code to demostration LINE chatbot account link, refer to document https://develope

argv - Go library to split command line string as arguments array using the bash syntax.

Argv Argv is a library for Go to split command line string into arguments array. Documentation Documentation can be found at Godoc Example func TestAr

Comments
  • gomphotherium does not use $BROWSER envvar

    gomphotherium does not use $BROWSER envvar

    First: love your app! Awesome vim like keybindings and the picture rendering is so awesome! 👍

    However i am using it in a wsl instance, and instead of opening toots with my windows chrome.exe which i set in my .profile via export $BROWSER, it opens a linux firefox in a forwarded x session. Is there any way to customize the used browser, or could you default to $BROWSER?

    PS: d / u or f / b as shortcuts for scrolling pages would also be reeeeally nice!

    bug enhancement 
    opened by johannboehme 2
  • timeline strange output

    timeline strange output

    When I run gomphotherium timeline from my bash shell, I get a lot of output and it ends like the following:

    ]▄[:#d6d8d7][#cccecd:]▄[:#d6d8d7][#cccecd:]▄[:#d6d8d7][#cccecd:]▄[:#d6d8d7][#cccecd:]▄[:#d6d8d7][#cccecd:]▄[:#d6d8d7][#cccecd:]▄[:#d6d8d7][#cccecd:]▄[:#d6d8d7][#cccecd:]▄[:#d6d8d7][#cccecd:]▄[:#d6d8d7][#cccecd:]▄[:#d6d8d7][#cccecd:]▄[:#d6d 8d7][#cccecd:]▄[:#d6d8d7][#cccecd:]▄[:#d6d8d7][#cccecd:]▄[:#d6d8d7][#cccecd:]▄[-:-:-]

    [purple]↫ 0[-] [green]↻ 2[-] [yellow]★ 0[-] [grey]on Apr 7 at 11:10[-]

    Running gomphotherium tui, I'm presented with a blank interface, but I assume that will be solved, once the issue above is solved.

    I'm running Ubuntu 20.04 with awesome wm, st and bash. Which setting should I tweak and/or how can I get this awesome mastodon client running? Thanks in advance.

    opened by sebastianschauenburg 1
Releases(v0.3.2)
A command line tool that builds and (re)starts your web application everytime you save a Go or template fileA command line tool that builds and (re)starts your web application everytime you save a Go or template file

# Fresh Fresh is a command line tool that builds and (re)starts your web application everytime you save a Go or template file. If the web framework yo

null 0 Nov 22, 2021
A command line tool to prompt for a value to be included in another command line.

readval is a command line tool which is designed for one specific purpose—to prompt for a value to be included in another command line. readval prints

Venky 0 Dec 22, 2021
Go package to make lightweight ASCII line graph ╭┈╯ in command line apps with no other dependencies.

asciigraph Go package to make lightweight ASCII line graphs ╭┈╯. Installation go get github.com/guptarohit/asciigraph Usage Basic graph package main

Rohit Gupta 2.1k Nov 28, 2022
git-xargs is a command-line tool (CLI) for making updates across multiple Github repositories with a single command.

Table of contents Introduction Reference Contributing Introduction Overview git-xargs is a command-line tool (CLI) for making updates across multiple

Gruntwork 685 Nov 21, 2022
git-xargs is a command-line tool (CLI) for making updates across multiple GitHub repositories with a single command

git-xargs is a command-line tool (CLI) for making updates across multiple GitHub repositories with a single command. You give git-xargs:

Maxar Infrastructure 1 Feb 5, 2022
Package command provide simple API to create modern command-line interface

Package command Package command provide simple API to create modern command-line interface, mainly for lightweight usage, inspired by cobra Usage pack

chenen 0 Jan 16, 2022
A command line tool for simplified docker volume command built with go

dockervol A command line tool for simplified docker volume command built with go. Features: Remove anonymous volume (beta) Remove volume by matching n

Moh Achun Armando 0 Dec 18, 2021
Watcher - A simple command line app to watch files in a directory for changes and run a command when files change!

Watcher - Develop your programs easily Watcher watches all the files present in the directory it is run from of the directory that is specified while

Geet Sethi 1 Mar 27, 2022
Basic command line example using golang grpc client tools

This is a basic command line interface that demonstrates using the golang GRPC API. The API is reused between dishy and the wifi router, however both

null 40 Nov 7, 2022
Canard. A command line TUI client for the journalist RSS aggregator.

Canard Canard. A command line TUI client for the Journalist RSS aggregator. Installation Download a binary from the releases page. Or build it yoursel

マリウス 100 Nov 22, 2022