Navop:把数据库、SSH、SFTP 和 Agent 收进一个 Rust + GPUI 原生窗口
Navop 是一个原生桌面运维工作台,把数据库连接、服务器终端、文件传输、远程桌面、监控和 AI Agent 收进同一套窗口与连接上下文里。当前版本 v0.17.0,用 Rust + GPUI 构建,GPU 渲染,不依赖 WebView。
- 官网:https://navop.dev/zh-CN
- 文档:https://docs.navop.dev
- 主仓库:https://github.com/feigeCode/navop
- Releases:https://github.com/feigeCode/navop/releases
- 扩展仓库:https://github.com/feigeCode/navop-extensions
- Public MCP / CLI 仓库:https://github.com/feigeCode/navop-mcp
解决什么
平时做运维和开发,连接信息散在好几个工具里:数据库归客户端,SSH 归终端,传文件再开一个 SFTP 工具,远程桌面又是另一个入口。切换一次就要重新找回上下文,Agent 也只能对着剪贴板工作。Navop 的做法是把连接导航、数据库操作、远程排查和 Agent Hub 组织在一个工作台里,让 Agent 直接贴近真实连接、查询结果和命令输出,而不是隔着一段粘贴文本。
技术选型
界面用 Rust 与 GPUI 写,走 GPU 渲染,没有 WebView 这一层。Rust 2024 edition,需要按平台装系统依赖。主题支持浅色、深色、跟随系统,可导入应用和终端主题、设置强调色和窗口透明度。首页是统一网格布局加树视图,支持最近连接、批量连接管理和工作区拖拽排序;设置按数据库、终端、Agent、MCP 分页。界面有英文、简体中文、繁体中文三套。
数据库与数据工具
内置支持 MySQL、PostgreSQL、SQLite、DuckDB、SQL Server、Oracle、ClickHouse,TDengine 通过官方 taos WebSocket 驱动接入。达梦 DM、金仓 KingbaseES、GBase 8s、OceanBase、openGauss、Apache IoTDB、Oscar 走扩展驱动。
SQL 工作区可以浏览库表、字段、视图、函数,执行 SQL 并看执行计划、管理事务,在同一页面查看和编辑结果;表数据页支持批量编辑选中单元格、按日期/时间/数值类型提供编辑器,右键可复制表名或列名;还支持数据导入导出、结构设计与数据库比较同步、ER 图。Redis 的 Key、值与集群,MongoDB 的集合、文档与查询,以及 MQTT 订阅、消息、发布都有独立界面(MQTT 3.1.1 over rustls,支持 SSH 隧道和自动重订阅)。
SSH、SFTP 与远程访问
终端用本地 Profile、标签页和原生分屏组织,支持广播输入、快捷命令、shell 集成、会话锁定、录制回放,会话日志可搜索、批量删除、增量加载;Telnet 和串口连接也在支持范围内。SFTP 提供上传下载、搜索、收藏、远程编辑(大小限制和默认编辑器可配)、拖拽和 ZMODEM 传输,以及服务器到服务器直接复制。端口转发支持本地、远程(ssh -R)和动态 SOCKS,另有 X11 转发;host key 变更会带指纹警告,Known Hosts 页可查看、导入、删除受信任主机密钥,也支持可选的传统 SSH 算法和 SecureCRT 会话导入。远程桌面方面,跨平台用纯 Rust 的 IronRDP canvas 后端渲染;Windows 上则通过 C++ host 把 Microsoft RDP ActiveX 控件直接嵌进应用,可以在标签页里用、开全屏窗口,或直接拉起原生 mstsc.exe。
Agent Hub 与 Public MCP
Agent Hub 把终端 Agent、项目文件树、Git 分支、变更列表和并排 Diff 放在同一工作区。资源管理器可以手动选目录,也可以跟随终端路径,按需显示隐藏文件和 Git 忽略文件;在工作区内搜索、新建、拉取、推送、切换本地或远程分支,Agent 改完之后定位变更文件,对照 HEAD 与工作区差异,确认再提交。外部 Agent 通过 ACP 接入 Codex、Claude Code、OpenCode。
Public MCP 是把选定的主机侧工具暴露给外部 Codex、Claude、MCP 客户端和自动化流程。在 Settings > General > MCP > MCP Server 打开服务,选权限配置(Safe / Confirm / Auto),在 Tool Exposure 里勾选要暴露的工具组。运行时只监听动态的 loopback 端口,用 user-only 的 discovery token 认证客户端;实时工具、schema、权限、审批和审计记录仍然由 Navop 掌握。
终端类 Agent 可以装 CLI 和随附的 Navop Skill:
npm install -g @navop/cli@latest
navop skill install --target codex --scope user # 或 --target agents
独立的 @navop/mcp 包只是给原生 MCP 客户端用的 stdio 桥:npx -y @navop/mcp@latest。
从源码构建
./script/bootstrap # Linux 依赖
cargo run -p main # 运行应用
Windows 用 .\script\install-window.ps1。常用检查:
cargo build
cargo test --all
cargo clippy --workspace --all-targets
cargo fmt --check
安装
从 GitHub Releases 下载,每个 release 带 sha256sums.txt 可校验,产物命名是 navop-- -.:macOS 有 DMG 和 tar.gz(Apple Silicon / Intel),Windows 有 MSI、EXE 安装包以及标准版和便携版 ZIP,Linux 有 tar.gz、deb、rpm、AppImage。macOS 如果 Gatekeeper 提示无法检查应用:
sudo xattr -rd com.apple.quarantine /Applications/Navop.app
Windows 走 Scoop:
scoop bucket add extras
scoop install navop
Flatpak(社区 FlatPark):
flatpak --user remote-add --if-not-exists flatpark https://dl.flatpark.org/flatpakrepo
flatpak --user install flatpark dev.navop.Navop
Oracle Instant Client 与纯 Go 驱动的说明在 安装与更新指南。
许可证要注意的地方
Navop 源码是 Apache License 2.0,但 Navop 自己编写的部分另外受 Navop Supplementary License 约束:允许通过免费分发渠道(GitHub Releases、Flatpak 仓库、免费应用商店等)自由再分发,但禁止商业转售、收取费用、用于竞品产品或服务,以及放到付费分发平台上。第三方组件仍按各自许可证执行。如果有自建分发渠道的计划,先对着这两层许可自查一遍再动手,别只看 Apache-2.0 就默认可以随便打包售卖。
边界
如果数据库查询、快捷键和片段已经沉淀在 DataGrip 或 Navicat 里,迁移成本主要落在连接配置和操作习惯上,值不值得换取决于你要不要顺带把 SSH、SFTP、远程桌面和 Agent 拉进同一个窗口。Windows 上如果只是偶尔连一次远程桌面、不需要标签页和连接上下文,原生 mstsc.exe 本身够用,ActiveX 嵌入带来的收益有限。对 WebView 的内存占用和渲染流畅度本来就不敏感,只关心功能清单的团队,原生 GPUI 渲染也不是决定性因素。项目由独立维护者开发,问题反馈走 GitHub issues,另有 QQ 群 860670605,旧仓库为 feigeCode/onetcli。ER 图渲染基于 ferrum-flow。