This is a Terminal App (TUI) and just a bit of fun … and bit experimental at this stage!
| 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. | |
| Repository Link | GitHub - merefield/termcourse: A terminal based client to access Discourse instances, supporting API keys, username/password (and with MFA token) | |
| Install Guide | README.md in the repo (Quickstart section) | |
| 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
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.
--loginavoids 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 …
