这是一个终端应用(TUI),纯粹为了好玩……目前还处于实验阶段!
| 摘要 | 一个用于浏览和发帖到 Discourse 论坛的终端 UI,具有主题列表、完整主题视图、回复、点赞、搜索和一个内置的撰写器。 | |
| 仓库链接 | GitHub - merefield/termcourse: A terminal based client to access Discourse instances, supporting API keys, username/password (and with MFA token) | |
| 安装指南 | 仓库中的 README.md(快速入门部分) | |
| 赞助 | 请考虑以适合您或您组织资源和需求的方式,成为我开源工作的持续赞助者(https://github.com/sponsors/merefield),以确保此项目获得应有的维护,并能继续为您的网站服务。 |
喜欢 termcourse 吗?请在 GitHub 上
它
概述
> termcourse 是一个基于终端的 Discourse 客户端。它的行为类似于一个轻量级的浏览器会话,支持基于 cookie 的登录(用户名/电子邮件 + 密码),并支持 MFA 的 TOTP/备份代码。对于锁定或仅 SSO 的站点,还有一个 API 密钥备用方案。
特性
- 浏览“最新”、“热门”、“新”、“未读”、“最热”主题列表,并循环切换“最热”的时间范围。
- 通过箭头键 + Enter 或数字快捷键 (1-0) 打开前 10 个可见的主题。
- 查看完整主题,带有可滚动的帖子、固定的页眉/页脚以及帖子位置/进度条。
- 将选定的帖子展开为完整内容;未选中的帖子显示紧凑的摘要。
- 回复整个主题或特定帖子。
- 创建新主题,包括标题、分类选择器和内联正文撰写器。
- 对帖子进行点赞/取消点赞,并具有每个帖子的视觉心形状态。
- 搜索帖子并直接跳转到匹配的主题/帖子上下文。
- 内联撰写器支持光标移动、插入、换行、退格键和实时最小长度计数器。
- 兼容 Markdown 的渲染,包括换行链接和内联图像预览支持 (chafa / viu)。
- 常见
:emoji:标记和:-)风格笑脸的表情符号替换。 - 通过环境变量 + 每个主机的 credentials.yml(带有提示缺失登录字段的功能)支持多站点凭证。
- Cookie 会话用户名/密码登录,支持 MFA(TOTP + 备份代码),以及 API 密钥备用。
- YAML 驱动的主题设置,内置主题(默认、板岩、fairground)和通过 theme.yml 进行本地覆盖。
- 响应式大小调整重绘,具有可配置的轮询间隔 (TERMCOURSE_TICK_MS)。
- 用于 HTTP/身份验证和 UI 渲染诊断的可选调试日志记录。
快速入门
有关更多信息,请参阅最新的 README
git clone https://github.com/merefield/termcourse
cd termcourse
bundle install
用户名/密码(推荐)
bundle exec bin/termcourse your.discourse.host
API 密钥备用
DISCOURSE_API_KEY=“your_key” DISCOURSE_API_USERNAME=“your_username” \
bundle exec bin/termcourse your.discourse.host
身份验证说明
- 用户名/密码登录使用正常的浏览器式会话。
- 支持 TOTP 和备份代码的 MFA。
- 支持 API 密钥作为备用方案。
安全性
- 不存储凭据;Cookie 仅在内存中。
- 环境变量或回复提供的提示可避免密码出现在 shell 历史记录中。
- 日志记录是选择加入的,默认禁用。
限制
- 由于某些站点禁止远程提示,因此它们与用户名/密码不兼容
- 它存在于终端中
致谢
部分灵感来源于 Dumbcourse – Old-browser friendly UI at /dumb (D-pad + small screens) ![]()



