Termcourse: read 'n post on Discourse instances from the terminal

This is a Terminal App (TUI) and just a bit of fun … and bit experimental at this stage!

:information_source: Summary A terminal UI for browsing and posting to Discourse forums with topic lists, full topic views, replies, likes, search, and a built‑in composer.
:hammer_and_wrench: Repository Link GitHub - merefield/termcourse: A terminal based client to access Discourse instances, supporting API keys, username/password (and with MFA token)
:open_book: Install Guide README.md in the repo (Quickstart section)
:heart: Sponsorship Please consider becoming an ongoing sponsor of my open source work (Sponsor @merefield on GitHub Sponsors · GitHub) at a level that suits your or your organisation’s resources and needs to ensure this project gets the maintenance it deserves and continues to work for your site in the future.

Enjoying termcourse? Please :star: it on GitHub

Overview

> termcourse is a terminal‑based client for Discourse. It behaves like a lightweight browser session with cookie‑based login (username/email + password) and supports TOTP/backup codes for MFA. There’s also an API key fallback for locked‑down or SSO‑only sites.

Features

  • Browse Latest/Hot/New/Unread/Top lists.
  • View full topics with scrollable posts and a position/progress bar.
  • Reply to topics or specific posts.
  • Like/unlike posts with visual indicators.
  • Search posts and jump directly to context.
  • Create new topics and select category.
  • Inline composer with cursor movement, line breaks, and live character count.
  • Emoji substitutions for common :emoji: tokens and :)‑style smiles.

Quickstart

git clone https://github.com/merefield/termcourse
cd termcourse
bundle install

Username/password (recommended)

DISCOURSE_USERNAME="you@example.com" DISCOURSE_PASSWORD=“your_password” 
bundle exec bin/termcourse --login https://your.discourse.host

API key fallback

DISCOURSE_API_KEY=“your_key” DISCOURSE_API_USERNAME=“your_username” 
bundle exec bin/termcourse https://your.discourse.host

Auth Notes

  • Username/password login uses a normal browser‑style session.
  • MFA supported for TOTP and backup codes.
  • API keys are supported as a fallback.

Security

  • Credentials are not stored; cookies are in‑memory only.
  • --login avoids passwords in shell history.
  • Logging is opt‑in and disabled by default.

Limitations

  • I’ve only tested this in the wonderful Windows terminal app so far … macOS next …
4 Likes