• Stars
    star
    212
  • Rank 186,122 (Top 4 %)
  • Language
    Go
  • License
    GNU General Publi...
  • Created almost 2 years ago
  • Updated over 1 year ago

Reviews

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

Repository Details

Neon Modem Overdrive

Neon Modem Overdrive

Chat on Matrix

Neon Modem Overdrive

Neon Modem Overdrive is a BBS-style command line client that supports Discourse, Lemmy, Lobsters and Hacker News as backends, and seamlessly integrates all of them into a streamlined TUI. And yes, you heard that right, I really did call it Neon Modem Overdrive.

Neon Modem is built in Go, using Charm's Bubble Tea TUI framework, but implements an own window manager (or compositor if you want) that allows it to use a third dimension, on top of the two dimensional rendering that Bubble Tea offers today. With that it is possible to display dialogs on top of one another, in order to offer a smoother UI experience.

More info here!

Support

System Available List Forums List Posts List Replies Create Post Create Reply
Discourse ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Lemmy ✔️ ✔️ ✔️ ✔️ ✔️ ✔️
Lobsters ✔️ ✔️ ✔️ ✔️
Hacker News ✔️ ✔️ ✔️ ✔️
RSS+Disqus/Isso(?)
Superhighway84
NNTP

Installation

From Release

Download the latest release and unpack it:

$ tar -xzf ./neonmodem_*.tar.gz

The binary is called neonmodem. Feel free to move it to e.g. /usr/local/bin.

From Sauce

Clone this repository

Then cd into the cloned directory and run:

make

The binary is called neonmodem. Feel free to move it to e.g. /usr/local/bin.

For Arch Linux an AUR package is available here: https://aur.archlinux.org/packages/neonmodem

Install with your favorite AUR helper.

Configuration

Before launching Neon Modem Overdrive it requires initial setup of the services (a.k.a. systems). Run neonmodem connect --help to find out more.

Connecting a service will add it to the configuration TOML.

Linux/Unix

~/.config/neonmodem.toml

MacOS

$HOME/Library/Application\ Support/neonmodem.toml

Systems

Discourse

For connecting to a Discourse instance you'll need to have an active account on that instance. Neon Modem will store the instance URL, username and a user key, but no password.

neonmodem connect --type discourse --url https://www.keebtalk.com

Lemmy

For connecting to a Lemmy instance you'll need to have an active account on that instance. Neon Modem will store the instance URL, username and password.

neonmodem connect --type lemmy --url https://lemmy.ml

Lobsters

For connecting to a Lobsters instance you won't need an account, as the integration is read-only. Neon Modem will store the instance URL.

neonmodem connect --type lobsters --url https://lobste.rs

Hacker News

For connecting to Hacker News you won't need an account, as the integration is read-only.

neonmodem connect --type hackernews

UI

The UI can be fully customized via the Theme section in the configuration file. To reset settings, all theme related configurations can simply be deleted from the configuration.

Run

After setup Neon Modem can be launched by calling neonmodem without any arguments. It will briefly display a splash screen, then switch to the posts list, which will aggregate the latest posts from all connected systems. A progress icon will be visible in the header while network requests are loading.

Usage

Neon Modem Overdrive

Navigation

In the posts list:

  • j: Scroll down
  • k: Scroll up
  • r/enter: Open selected post
  • n: Write new post in on the system/forum of the current selected post
  • C-e: Open system selector
  • C-t: Open forum selector
  • q/esc: Quit

In the post view dialog:

  • r: Reply to post
  • #r: Reply to specific comment # in post, e.g. 3r to reply to the reply #3
  • z: Load older replies (if available)
  • esc: Close dialog

In the new post / new reply dialog:

  • tab: Switch between elements (only in new post dialog)
  • C-s: Submit post/reply
  • esc: Close dialog

FAQ

  • Q: The post view is really slow when using a large terminal.
    A: Turning off image rendering will improve performance significantly on very large terminal windows and can be done by setting RenderImages = false in the configuration.
  • Q: Can I haz Reddit?
    A: I won't do the heavy lifting of integrating a proprietary platform with a $15 billion valuation that can't even be bothered to maintain a solid set of client API libraries. If you feel like, go ahead and PR!

More Repositories

1

superhighway84

USENET-inspired, uncensorable, decentralized internet discussion system running on IPFS & OrbitDB
Go
580
star
2

journalist

Journalist. An RSS aggregator.
Go
246
star
3

reader

reader is for your command line what the “readability” view is for modern browsers: A lightweight tool offering better readability of web pages on the CLI.
Go
166
star
4

zeit

Zeit, erfassen. A command line tool for tracking time spent on activities.
Go
137
star
5

canard

Canard. A command line TUI client for the journalist RSS aggregator.
Go
126
star
6

gomphotherium

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

mercator

OpenStreetMap but as terminal user interface (TUI) program
Go
63
star
8

kiwi

Pimoroni Keybow based, WiFi-enabled Macro Pad (a.k.a. poor-man's Elgato Stream Deck)
Elixir
54
star
9

planor

The Cloud Aviator: TUI client for cloud services (AWS, Vultr, Heroku, Render.com, Fleek, ...)
Go
49
star
10

dotfiles

dotfiles
Vim Script
48
star
11

lemon

Lemon – LED Monitor – is a $79.43 opensource alternative to LaMetric that supports GitHub-, IFTTT- and Zapier-webhooks and even integrates with Pushover!
Python
47
star
12

snoo

A Reddit command line client written in Node.js, using modern ES-features
JavaScript
41
star
13

ninjaberry

Ninjaberry: Raspberry Pi UI for @Bettercap
Python
39
star
14

palm-webos-development-tmbundle

Palm webOS (formerly Palm Pre) Development Bundle for TextMate
33
star
15

geld

Geld. A command line tool for tracking money and budgets.
Go
32
star
16

xbsapi

Alternative xBrowserSync API that is a single binary and supports SQLite3, PostgreSQL and MySQL
Go
27
star
17

addrb

addrb: A lightweight CLI / TUI address book that supports CardDAV
Go
26
star
18

conclusive

Conclusive. A command line client for Plausible Analytics.
Rust
24
star
19

node-socket-laravel-session

This is an example of how to check a Laravel request for a valid session within Node.js/Socket.io
JavaScript
22
star
20

wth

What The Heck: The better personal information dashboard for your terminal
Go
22
star
21

caldr

A lightweight CLI / TUI calendar that supports CalDAV
Go
20
star
22

lbaction-npm

NPM (LauchBar 6 Action)
JavaScript
17
star
23

cexec

Execute any command, cache its output and get cached output on subsequent execution
Go
14
star
24

synology-btsync-fix

Synology BitTorrent Sync (btsync) Fix
Shell
12
star
25

torqer

Ready-to-use Tor proxy Docker container, with privoxy on top.
Shell
10
star
26

cloudcash

Check your cloud spending from the CLI, from Waybar, and from the macOS menu bar!
Go
9
star
27

hue2influx

Sync Philips Hue component states to InfluxDB.
Python
9
star
28

bookmarkdown

A super lightweight tool for accessing links from a markdown file
Go
6
star
29

melon

Melon – Multimedia- & Entertainment Linking and Operation Node – is a daemon that allows linking media devices (e.g. Sonos, Televisions) and operating them through one API
Python
5
star
30

lbaction-stockprice

Stock Price (LaunchBar 6 Action)
JavaScript
5
star
31

pushover-to-xmpp

Tiny Pushover to XMPP bridge written in Go
Go
5
star
32

paperknife.js

paperknife.js is a RFC 2822 compliant e-mail address parser/validator developed with PEG.js.
PEG.js
5
star
33

go-poolsuite

Poolsuite FM player as Go module
Go
5
star
34

uveira

Offline Wikipedia CLI for dumpster-dive MongoDB imports
Go
4
star
35

mrusme

@mrusme
4
star
36

tdrs

Weltraum TDRS is a lightweight ZeroMQ-based event hub.
C++
4
star
37

lbaction-ssh

SSH (LaunchBar Action)
JavaScript
4
star
38

fpmail

Fetch- & Procmail Docker Container
Dockerfile
4
star
39

marine_diesel

Elixir client library for the Docker API.
Elixir
4
star
40

primacorn

Test your crappy [Primacom](https://www.primacom.de) cable internet connection for packet losses and automatically report them to Primacom.
Ruby
4
star
41

RIOT-drivers

This repository contains of implementations of various sensor/device drivers for @RIOT-OS
C
3
star
42

tdrs-node

TDRS Node.js client reference implementation
JavaScript
3
star
43

symmetry454

A Go implementation of the Symmetry454 calendar.
Go
3
star
44

cmdr

A minimalistic single-binary tool that can be used as Docker ENTRYPOINT to run multiple commands simultaneously
Rust
3
star
45

deb-builder

Idiomatic Debian Package Builder
Dockerfile
2
star
46

distccd

distcc (daemon) docker container
Dockerfile
2
star
47

mrusme.github.io

About @mrusme
2
star
48

xbscli

Command line interface for xbsapi and the official xBrowserSync API
Go
2
star
49

aieq

Adafruit/Arduino Indoor Environmental Quality
C++
2
star
50

go-fleek

Tiny Go client library for the Fleek API
Go
2
star
51

go-render

Tiny Go client library for the Render.com API
Go
2
star
52

pieq

(Raspberry) Pie Indoor Environmental Quality
Python
2
star
53

image2kiwi

Converter from Images (JPEG, PNG, GIF, ...) into Kiwi `frames` JSON-arrays.
Python
2
star
54

overpush

A self-hosted, drop-in replacement for Pushover, that uses XMPP as delivery method and offers the same API for submitting messages, so that existing setups (e.g. Grafana) can continue working and only require changing the API URL.
Go
2
star