xdtui
X岛匿名版(xdnmb)的终端(TUI)客户端。基于 Rust 核心 + Python Textual 界面 的混合架构:Rust 核心负责网络请求、缓存、全文检索与本地数据库,Python 端提供终端交互界面,二者在本机通过 gRPC 通信。
功能特性
- 浏览版块 / 时间线,翻页、跳页与按 ID 跳串,查看最新回复
- 串详情阅读:只看 Po、回复、引用跳转、引用列表、防剧透黑幕
- 发新串 / 回复 / 举报,多饼干(Cookie)切换与颜文字快捷插入
- 订阅(Feed)列表与「我的发言」本地记录
- 星标串(Favorites,支持备注,主要是清理豁免)
- 屏蔽串(折叠不想看的串,支持备注)
- 「Tips 酱」语录收集
- 本地全文检索(Tantivy + 仓颉分词,支持自定义分词列表)
- 本地离线缓存(内存 + SQLite 分层存储)
- 图片浏览(缩略图 / 原图查看器)
- 浏览历史(本地记录看过的串)
- 版规查看、存储管理(DB/索引统计、缓存清理、Tips 管理)与设置面板
- 多种主题、动态配色
- 核心服务崩溃自动重启
- 极简模式(隐藏多余 UI)
安装与更新
需要 Python 3.12+。
推荐方式(uv)
推荐使用 uv 进行隔离全局安装,兼顾依赖隔离与全局命令调用的便利:
# 安装
uv tool install xdtui
# 更新
uv tool upgrade xdtui
# 卸载
uv tool uninstall xdtui
传统方式(pip)
# 安装
pip install xdtui
# 更新
pip install -U xdtui
# 卸载
pip uninstall xdtui
安装后直接在终端运行:
xdtui
系统依赖
支持平台:Windows、Linux(x86_64 / aarch64)。
- Windows:开箱即用,二维码解码库(zbar)已随包附带,无需额外安装。
- Linux:需系统提供 zbar 库,否则扫码功能会报错:
- Debian/Ubuntu:
sudo apt install libzbar0 - Fedora:
sudo dnf install zbar
- Debian/Ubuntu:
键盘快捷键
全局
| 按键 | 功能 |
|---|---|
ctrl+q / q |
退出 |
z |
极简模式(隐藏多余 UI) |
主界面(版块 / 串列表)
| 按键 | 功能 |
|---|---|
j / ↓ |
下一项 |
k / ↑ |
上一项 |
h / ← |
上一页 |
l / → |
下一页 |
space |
首页(回到第 1 页并刷新) |
enter |
打开当前串 / 版块 |
s |
跳页 |
r |
刷新本页 |
b |
版块侧栏 |
/ |
搜索 |
n |
发新串 |
m |
发言 |
f |
订阅 |
B |
展开/折叠屏蔽 |
alt+h |
浏览历史 |
alt+t |
跳串(按 ID) |
alt+g |
版规 |
alt+r |
引用列表 |
t |
看图(仅含图卡片可用;无图模式或配置缺失时禁用) |
版块侧栏内:↑/↓(或 k/j)移动焦点,←/→(或 h/l)展开/折叠组节点(在版块或时间线叶子节点上按 Enter / → / l 均可直接加载该版块);r 重新加载侧栏、e 全部展开/折叠、esc 返回列表。
串详情界面
| 按键 | 功能 |
|---|---|
esc |
返回 |
/ |
搜索 |
o |
只看 Po |
p |
回复 |
P |
引用回复 |
f |
订阅 |
S |
星标 |
B |
屏蔽 |
R |
举报 |
t |
看图(仅含图楼层可用;无图模式或配置缺失时禁用) |
发串 / 回复 / 举报 弹窗
| 按键 | 功能 |
|---|---|
esc |
取消 |
ctrl+g |
快捷插入(颜文字) |
ctrl+enter |
快捷回复 |
模态窗口 / 确认弹窗
所有带明确确认/取消或关闭按钮的模态窗口(如二次确认、跳页、岛公告、选择饼干、选择订阅 UUID、版规、帮助、关于等):
| 按键 | 功能 |
|---|---|
y |
快捷确认 / 同意 / 知道了 |
n |
快捷取消 / 拒绝 / 关闭 |
esc |
取消 / 关闭 |
注:含有文本输入框的弹窗(如发串/回复、搜索输入框、星标备注)在焦点处于输入框时优先响应文本输入,不影响字符输入。
引用弹窗
在串详情中点击某条引用(或按 alt+r 打开引用列表后选中某条)弹出的引用查看窗口。此外,串详情中每条「最新回复」的单行文本也可直接点击,以同样方式弹出该条回复的完整图文(零延迟本地渲染)。
| 按键 | 功能 |
|---|---|
g |
跳转到被引用的原串 |
esc |
关闭 |
历史界面
| 按键 | 功能 |
|---|---|
c |
清空浏览历史 |
esc |
返回 |
搜索
| 按键 | 功能 |
|---|---|
enter / ctrl+s |
搜索 / 重新搜索(焦点在结果卡片时回车打开串或回复) |
/ |
聚焦搜索栏 |
← / h |
上一页 |
→ / l |
下一页 |
space |
首页 |
s |
跳页 |
r |
刷新本页 |
esc |
关闭 |
其他界面与鼠标快捷操作
- ESC 返回:订阅、历史、我的发言、设置、存储管理、图片查看以及各类模态弹窗均支持按
esc返回 / 关闭。 - 全屏中键快捷返回:在系统设置中开启「中键返回」(默认开启)后,在所有支持
esc返回的界面及弹窗中,在全屏任意位置点击鼠标中键(滚轮按下)均等价于按esc;在各类y/n确认弹窗中中键等价于「取消」。 - 主界面中键表现:在无
esc返回的主界面中,鼠标中键保持原始行为(与左键/右键一致;若已聚焦版块树时中键等价于按esc聚焦回串列表)。 - 空白处关闭:模态窗口(除发串编辑器外)均支持点击遮罩空白处直接关闭。
数据与日志位置
应用数据(配置 config.toml、本地数据库 data.db、全文检索索引)统一存放在:
- Windows:
%APPDATA%\xdtui\xdtui\config\ - Linux:
~/.config/xdtui
运行日志 app.log 位于数据目录下的 cache/ 子目录:
- Windows:
%APPDATA%\xdtui\xdtui\config\cache\app.log - Linux:
~/.config/xdtui/cache/app.log
许可证
本项目以 MIT 许可证 发布。
Metadata
Release files for xdtui 0.1.49
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| xdtui-0.1.49-cp312-abi3-win_arm64.whl | CPython 3.12 | abi3 | Windows ARM64 | Details |
| xdtui-0.1.49-cp312-abi3-win_amd64.whl | CPython 3.12 | abi3 | Windows x86-64 | Details |
| xdtui-0.1.49-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.12 | abi3 | Linux glibc 2.17+ x86-64 | Details |
| xdtui-0.1.49-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl | CPython 3.12 | abi3 | Linux glibc 2.17+ ARM64 | Details |
Total release size: 55.6 MB
Release files / xdtui-0.1.49-cp312-abi3-win_arm64.whl
| Download URL | xdtui-0.1.49-cp312-abi3-win_arm64.whl |
|---|---|
| Size | 13.2 MB |
| Tags | CPython 3.12 Windows ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
ca6ea90180197e3fd9d314cf7a8936183f3ef1e104d2995b29e49ec7a7e606c2
|
|
BLAKE2b-256 checksum How to use checksums |
2b4bbd83a48b4a8a51c12deb1e5fe5a2b7bc37530ad7ca3d745819060a00eeba
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.16 {"installer":{"name":"uv","version":"0.12.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / xdtui-0.1.49-cp312-abi3-win_amd64.whl
| Download URL | xdtui-0.1.49-cp312-abi3-win_amd64.whl |
|---|---|
| Size | 13.5 MB |
| Tags | CPython 3.12 Windows x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
5f0e64501f42bcde95b62d9549fa9ab59b7edd9c320e73a39b0c7c5e2dfc39f8
|
|
BLAKE2b-256 checksum How to use checksums |
14fad1c8c93155b2cae056a32989d4780b1a7fb562959c7267a0d9e947b22623
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.16 {"installer":{"name":"uv","version":"0.12.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / xdtui-0.1.49-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | xdtui-0.1.49-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 14.8 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 abi3 |
|
SHA-256 checksum How to use checksums |
334f2aa7ec164084ab9f0cdd6f518e450d934362af0ea5a24435816be210ba90
|
|
BLAKE2b-256 checksum How to use checksums |
2a85811d6e6b3e042a833edfc2b0717e793122582e4b4e046df7f688fd43671c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.16 {"installer":{"name":"uv","version":"0.12.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|
Release files / xdtui-0.1.49-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
| Download URL | xdtui-0.1.49-cp312-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl |
|---|---|
| Size | 14.1 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ ARM64 abi3 |
|
SHA-256 checksum How to use checksums |
818e16b0c6d401f4be4fbf2f204a9bae3b432d912446a15d5c6320db456152a1
|
|
BLAKE2b-256 checksum How to use checksums |
03a1f8fdfad8bb698a082f0e70830ebf91054a5499aa529a81654e1ddf35358c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.16 {"installer":{"name":"uv","version":"0.12.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
|