sabiql - 用 psql 驱动的 PostgreSQL 终端浏览器
很多数据库工具都在做同一件事:把数据库连接、查询、结果表、结构信息和编辑动作放进一个图形界面里。DBeaver、DataGrip 这类工具功能完整,但也意味着更重的安装、更复杂的连接配置,以及离开终端工作流。
今天推荐的 riii111/sabiql 走的是另一条路:它是一个 PostgreSQL TUI,不自己实现数据库驱动,而是包在你已经安装好的 psql CLI 外面。你继续复用现有的 .pgpass、SSL、连接配置和 PostgreSQL 客户端环境,但得到一个更适合浏览、查询和轻量编辑的终端界面。
发布时 GitHub 页面显示项目约 198 stars、9 forks,主要语言是 Rust,许可为 MIT。项目创建于 2025-12,仍在活跃迭代;最新 release 是 v1.12.3,发布时间为 2026-06-07。
项目概览
| 属性 | 详情 |
|---|---|
| 仓库 | riii111/sabiql |
| 定位 | PostgreSQL terminal UI |
| Stars | 约 198 |
| Forks | 9 |
| 主要语言 | Rust |
| 许可 | MIT |
| Latest release | v1.12.3 |
它把 psql 变成了交互式工作台
psql 很可靠,但它更像一把命令行工具刀。你可以执行 SQL、切换数据库、查看表结构,但当你需要来回浏览表、看列信息、查外键关系、导出结果或做一点小编辑时,纯命令行会变得不够顺手。
sabiql 的核心价值是把这些动作组织进一个 TUI。它不要求你把连接配置搬进另一个应用,也不引入 Rust 数据库驱动和连接池。换句话说,它没有试图取代 psql,而是把 psql 变成更可导航的数据库工作台。
这对已经习惯终端的开发者很实用。你可以在同一个 shell 环境里保持 SSH、代理、凭证和项目上下文,不必为了看一张表临时打开完整 GUI。
Vim-first 的操作适合高频浏览
sabiql 明确强调 Vim-first。表列表、结果区域、搜索和删除等操作都尽量贴近 Vim 用户的肌肉记忆,比如 j/k 移动、/ 搜索、dd 删除。
这类设计不一定适合所有人,但对终端用户来说,它能减少在键盘、鼠标和不同窗口之间切换的成本。数据库浏览本身经常是高频的细碎动作:找表、看列、扫几行数据、改一个筛选条件、再看执行计划。如果每一步都要离开键盘,工具的摩擦会很明显。
README 还提到它受 oil.nvim 的界面哲学影响:界面元素只在需要时出现,不长期占用屏幕。这也是它和传统数据库 GUI 的差异。sabiql 不是要把所有功能同时摊开,而是尽量把屏幕留给当前数据和当前查询。
安全编辑比“能编辑”更重要
数据库 TUI 如果支持编辑,真正要看的不是能不能改,而是怎样避免误改。
sabiql 在这点上比较克制。它支持 inline cell editing,也支持行删除,但这些破坏性操作会先给出 preview,再真正执行。它还提供只读模式,可以在应用侧和 PostgreSQL session 侧阻止写入。
这类 guardrail 对生产数据库尤其重要。很多时候你只是想临时看一眼数据,但工具一旦提供编辑能力,就会带来误触风险。只读模式让 sabiql 更适合日常浏览,也让“偶尔需要编辑”的场景有一个明确的开关。
当然,这不代表可以直接把它当成生产变更工具。更稳妥的做法仍然是:默认只读,修改前确认连接目标、事务边界、WHERE 条件和备份策略;sabiql 的 preview 是提醒,不是替代 review 的流程。
SQL modal 和 EXPLAIN 工作流是亮点
除了表浏览,sabiql 也提供 SQL modal。你可以写 ad-hoc query,并使用表名、列名和关键字补全。查询结果可以浏览,历史查询也可以召回。
更值得注意的是 EXPLAIN 工作流。README 里提到它可以在同一个 modal 里查看执行计划,并支持对比两个 plan。这个功能很贴近日常调优:很多时候你不是要写一份完整性能报告,只是想快速确认某个索引有没有被用上、某个 join 的代价是否异常、改写 SQL 前后计划有没有变化。
如果一个终端工具能把“写 SQL -> 看结果 -> 看 plan -> 调整 SQL”的循环压缩在一个界面里,它就不只是漂亮的表浏览器,而是能进入真实调试流程。
ER 图和 inspector 补齐结构理解
数据库问题经常不是单表问题,而是关系问题。sabiql 提供 ER diagram 功能,通过 Graphviz 生成关系图并在浏览器中打开。它还提供 inspector pane,用来查看表的列、类型、约束和索引。
这两个功能降低了“先查 schema 再写 query”的成本。尤其是接手旧系统时,你可能并不熟悉每张表之间的关系。GUI 数据库工具通常在这方面很强,而轻量 CLI 工具常常缺一块。sabiql 把这部分补进终端工作流,是它比普通 psql wrapper 更有价值的地方。
需要注意的是,ER 图依赖 Graphviz;如果只是安装 sabiql 而没有准备 Graphviz,这部分体验不会完整。
安装路径覆盖得比较广
sabiql 的 README 给了多种安装方式:Homebrew、Cargo、Arch Linux AUR、Void Linux 非官方源、FreeBSD ports,以及 install script。运行时要求安装 PostgreSQL client,也就是 psql。ER diagram 则额外需要 Graphviz。
这说明它的目标用户比较明确:已经有终端环境、愿意管理本机开发工具、并且经常接触 PostgreSQL 的开发者或运维人员。它不是无门槛的“点击即用”桌面应用,而是一个让终端用户少开一个重量级数据库 GUI 的工具。
最新 v1.12.3 release 主要围绕平台兼容性、外部工具打开路径和 release pipeline 做改进。README 也提到 Android / Termux 目前偏向 build-only 支持,不是完整平台支持;如果你在非常规平台使用,需要先验证自己的 clipboard、浏览器打开和 psql 行为。
适合什么人先试
我会优先把 sabiql 推荐给这几类用户:
- 日常主要在终端里工作,但需要频繁查看 PostgreSQL 数据。
- 已经配置好
psql、.pgpass、SSL 或跳板环境,不想在 GUI 工具里再配一遍。 - 喜欢 Vim 风格键位,希望数据库浏览也保持键盘驱动。
- 想要比
psql更好的表浏览、结构查看、查询历史和 EXPLAIN 体验。 - 接受早期工具的边界,愿意先在开发库或只读连接上试用。
如果你需要的是完整 IDE 级数据库管理、跨多种数据库类型、复杂数据导入导出、图形化建模或团队权限管理,sabiql 还不是这类工具的替代品。它更像一个窄而顺手的终端工具:针对 PostgreSQL,把常见查看和查询动作做得更连贯。
小结
riii111/sabiql 的设计判断很清楚:不重造 PostgreSQL 连接层,而是复用 psql;不做厚重 GUI,而是在终端里提供浏览、查询、编辑保护、ER 图和 EXPLAIN 工作流。
这种工具的价值不在功能清单多长,而在它是否能贴住开发者真实的数据库查看流程。如果你经常在终端和 PostgreSQL 之间来回切换,sabiql 值得试一试。先用只读模式连开发库,看看它能不能替代你打开大型数据库 GUI 的那部分高频动作。