跳到主要内容

← 返回开发日志

从最小 SSH 终端到 SFTP 工作台

已完成 MVP
  • #产品演进
  • #MVP

当时要解决什么

很多 macOS 用户在远程运维时面临一个割裂的选择:要么用一个功能完整但体验沉重、或对 macOS 不够原生的商业 SSH 套件;要么在终端、SFTP 客户端、传输工具和隧道脚本之间来回切换。MobaXterm 在 Windows 上经验顺滑,但 macOS 上没有对应的原生版本。

ConchTerm 的 MVP 想回答一个最小问题:能不能在一个 macOS 桌面窗口里,把 SSH 终端和 SFTP 文件操作放进同一个标签页,并且让传输队列清楚可见?

做了哪些取舍

第一个版本刻意收窄了范围,只保留真正闭环的能力:

  • 每个标签是一个独立的 SSH/SFTP 会话,连接、事件和凭据互不串用。
  • 终端优先,远端文件作为侧栏上下文,传输队列作为可折叠抽屉。
  • 认证只做用户名/密码和用户名/私钥两种最常见路径,配合首次信任(TOFU)和应用私有 known_hosts
  • 文件传输只承诺运行期内的断点续传:只要应用还在运行、会话和授权还在,断线后可以按 offset 继续上传/下载。

明确不在 MVP 范围的事也写进了规格,避免后续被理解成“漏做”:云同步、应用重启后的传输恢复、SSH Agent、ProxyJump、端口转发、Windows/Linux 发布和自动更新都不在 MVP 承诺里。

当前实际能力

MVP 之后的几个阶段在已有工作区上逐步补齐了日常远程工作需要的部分:

  • 安全连接库:profile 组织、收藏和最近连接,凭据通过主进程加密存储,不进渲染层状态。
  • 文件工作台:本地和远端双栏,grant 作用域内的本地文件访问,以及高级 SFTP 操作。
  • 终端生产力:本地终端、命令片段、宏和统一命令面板。
  • SSH 网络工具:SSH Agent、本地/远端/动态端口转发的 UI 和后端。
  • 传输恢复:崩溃安全的任务日志和只读恢复中心已经落地;一键 resume 仍未接通,下面会展开。

这些都是“已经在用”的能力,而不是路线图上的设想。

已知限制

诚实说明几件还没有闭环的事:

  • 应用重启后的传输一键 resume 还没有接通:恢复中心能展示可恢复任务,但用户需要手动重新发起,而不是自动续传。
  • macOS 代码签名和公证仍在准备,所以还没有正式签名分发包。
  • 自动更新的后端代码链路已经接通,但真实端到端分发验证要等签名和发布源就位。

下一步对用户的影响

从 MVP 到工作台的演进,目标是让远程工作流少在工具之间跳转。但在这个阶段,我们更愿意先在自己真实的工作流里把体验打磨稳定,再开放正式下载——这正是 ConchTerm 选择 dogfood 优先的原因。

相关事实源

本文内容可追溯到以下仓库文件:

  • docs/product-specs/conchterm-mvp.md
  • docs/product-specs/index.md