# \> termcourse: read & post on Discourse instances from the terminal

**URL:** https://meta.discourse.org/t/termcourse-read-post-on-discourse-instances-from-the-terminal/395285
**Category:** Extras
**Tags:** experimental
**Created:** [February 5, 2026, 1:50pm UTC](https://meta.discourse.org/t/termcourse-read-post-on-discourse-instances-from-the-terminal/395285 "2026-02-05T13:50:49Z")
**Posts on this page:** 1
**Showing post:** 27

<div class="post-metadata">

### Author: ![merefield](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/merefield/32/176214_2.png) [@merefield](https://meta.discourse.org/u/merefield)
#### Post date: [August 17, 2026, 8:41pm UTC](https://meta.discourse.org/t/termcourse-read-post-on-discourse-instances-from-the-terminal/395285/27 "2026-08-17T20:41:49Z")

</div>

Well …

… I migrated `> termcourse` to Go

> <https://github.com/merefield/termcourse/pull/12>
>
> \## What changed
> 
> \- replace the Ruby implementation with a Go 1.26.6 application
> …- preserve the complete browsing, posting, authentication, realtime MessageBus, localization, theming, search, notification, and image feature set
> \- move terminal rendering onto the current Charm v2 stack
> \- add responsive incremental rendering, stronger color handling, and Kitty-first inline/fullscreen images with colored Chafa fallback
> \- retain the existing locale and screenshot assets
> \- replace Bundler/Ruby CI with formatting, vet, race-test, and build checks for Go
> 
> \## Why
> 
> The Go migration provides a single compiled executable, lower runtime overhead, stronger concurrency and lifecycle handling, and substantially more terminal behavior delegated to maintained Charm components instead of bespoke rendering code.
> 
> \## User impact
> 
> Existing configuration, credentials, themes, languages, navigation, posting, likes, search, notifications, realtime updates, and image controls remain available. The build and installation workflow changes from Ruby/Bundler to Go 1.26.6.
> 
> \## Validation
> 
> \- \`go test ./...\`
> \- \`go test -race ./...\`
> \- \`go vet ./...\`
> \- \`go mod tidy -diff\`
> \- \`gofmt\` clean
> \- Linux amd64 build
> \- Windows amd64 cross-build
> \- macOS arm64 cross-build

## **Why**

The Go migration provides a single compiled executable, lower runtime overhead, stronger concurrency and lifecycle handling, and substantially more terminal behavior delegated to maintained Charm components instead of bespoke rendering code.

This brings a big cleanup of the interface and allows mouse control, even on the topic progress bar!

Installation/run instructions updated here: [GitHub - merefield/termcourse: A terminal based client to access Discourse instances, supporting API keys, username/password (and with MFA token) · GitHub](https://github.com/merefield/termcourse#install-and-run)

 ![image](https://global.discourse-cdn.com/meta/original/4X/2/8/6/2864d986fc152c793d39abd7e2668b727c03d9a1.png)

---

_[View the full topic](https://meta.discourse.org/t/termcourse-read-post-on-discourse-instances-from-the-terminal/395285)._
