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.
> 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 topic lists, with Top period cycling.
Open topics via arrows + Enter, or number hotkeys (1-0) for the first 10 visible topics.
View full topics with scrollable posts, sticky header/footer, and a post position/progress bar.
Expand selected posts to full content; non-selected posts show compact excerpts.
Reply to entire topics or specific posts.
Create new topics with title, category picker, and inline body composer.
Like/unlike posts with per-post visual heart state.
Search posts and jump directly to the matching topic/post context.
Inline composer supports cursor movement, insertion, new lines, backspace, and live min-length counter.
Markdown-aware rendering, including wrapped links and inline image preview support (chafa / viu).
Emoji substitutions for common :emoji: tokens and :)-style smiles.
Multi-site credential support via env + per-host credentials.yml (with prompt-for-missing login fields).
Cookie-session username/password login with MFA support (TOTP + backup code), plus API-key fallback.
YAML-driven theming with built-ins (default, slate, fairground) and local overrides via theme.yml.
Reactive resize redraw with configurable poll interval (TERMCOURSE_TICK_MS).
Optional debug logging for HTTP/auth and UI render diagnostics.
A note: I’ve found one site that blocks remote username/password so this client will not work in that situation (unless you own it and can set an API key!)- suggestions welcome, but currently no support in those instances.
I’m not sure I’ll use this in the real world, I don’t see the use for me, but I’ve tried it and it’s delightful. I love being able to interact with a next-gen forum platform from a bare-metal, primitive interface.