1. 项目定位与用途
VVTerm 是面向 Apple 平台(iOS、iPadOS、macOS)的跨平台 SSH 终端客户端,定位于为开发者和运维人员提供专业级的远程服务器访问工具。它整合了高性能终端渲染、安全连接管理、文件传输和跨设备同步能力,旨在统一用户在 Apple 生态系统中的终端工作流,消除平台间体验割裂,提升远程操作效率。
vivy-company/vvterm:VVTerm 是一款面向 Apple 平台的跨平台 SSH 终端应用,基于 Ghostty 提供 GPU 加速渲染,集成 libssh2/Ope本页整理它解决什么问题、适用场景、安装方式和使用方法。
VVTerm 是一款面向 Apple 平台的跨平台 SSH 终端应用,基于 Ghostty 提供 GPU 加速渲染,集成 libssh2/OpenSSL 实现安全连接,支持 CloudKit 同步与 Keychain 凭证管理,为开发者和运维人员提供统一、高效的远程服务器访问体验。
VVTerm 是面向 Apple 平台(iOS、iPadOS、macOS)的跨平台 SSH 终端客户端,定位于为开发者和运维人员提供专业级的远程服务器访问工具。它整合了高性能终端渲染、安全连接管理、文件传输和跨设备同步能力,旨在统一用户在 Apple 生态系统中的终端工作流,消除平台间体验割裂,提升远程操作效率。
传统 SSH 客户端在 Apple 平台上面临体验碎片化、功能单一、凭证管理不安全、设备间配置不同步等问题。VVTerm 通过以下方式解决:使用 Ghostty 提供 GPU 加速渲染,解决终端显示性能与兼容性问题;集中化认证模块支持密码、SSH 密钥、1Password Agent(macOS 计划)等多种方式,凭证存储于 Keychain 并可选生物识别保护;通过 CloudKit 同步服务器列表、工作区、主题等配置,实现 iPhone、iPad、Mac 间的无缝切换;集成 SFTP 浏览器将文件操作嵌入终端上下文,减少工具切换。
VVTerm 适用于需要频繁远程访问服务器的技术场景:开发人员在多台 Mac 和 iOS 设备间进行代码部署与调试;系统管理员执行日常维护、日志监控和故障排查;DevOps 工程师管理云主机或容器环境;学生在实验室环境访问教学服务器。其移动端支持特别适合需要随时响应告警、快速执行命令的运维场景,SFTP 功能则便于远程配置文件的编辑与更新。
用户可通过两种方式获取 VVTerm:从 App Store 下载安装二进制版本(遵循 App Store EULA),这是最便捷的途径,自动接收更新;或从源码构建:在 macOS 13.3+ 系统上安装 Xcode,克隆仓库后打开 VVTerm.xcodeproj 进行编译,也可使用 scripts/build.sh 构建脚本。源码构建需自行处理依赖(Ghostty、libssh2、OpenSSL 的 vendor 版本已包含),并确保目标设备为 Apple Silicon 架构。仓库中未明确给出 Homebrew 或 Swift Package Manager 的集成方式。
首次使用需添加服务器:点击添加按钮,输入主机地址、端口、用户名,选择认证方式(密码、SSH 密钥文件或 1Password SSH Agent,后者仅 macOS),凭证将安全保存至 Keychain。连接后可创建多个标签页或分屏会话,每个会话独立管理连接状态。SFTP 浏览器可通过侧边栏访问,支持文件上传、下载、预览、重命名等操作。在设置中可自定义终端主题、辅助工具栏动作、语音输入模型等偏好,并启用全应用锁或 per-server 生物识别保护。CloudKit 登录后,配置将自动同步至其他 Apple 设备。
VVTerm 采用 feature-first 架构,代码按功能域组织而非技术层,提升模块内聚与可维护性:App 目录处理应用入口与平台容器;Core 提供跨功能基础设施(日志、网络、安全、SSH、同步、终端 UI 原语);Features 包含独立产品功能(连接视图、远程文件、服务器管理、生物识别、终端主题等)。渲染层通过 GhosttyKit 桥接 Ghostty 的 GPU 加速终端;SSH 传输由 libssh2 处理,OpenSSL 提供加密支持;数据持久化结合 CloudKit(同步)与 Keychain(本地凭证);状态呈现系统正在重构以统一多种 UI 模式。项目严格遵循 App Sandbox,macOS 的 1Password Agent 集成采用用户选择文件授权方式访问 socket,避免临时例外权限。所有原生依赖均通过 Vendor 目录提供预编译库,确保构建可重复性。
支持 iOS 16.1+、iPadOS 16.1+ 和 macOS 13.3+,且仅限 Apple Silicon(arm64)架构设备。
私钥存储在系统 Keychain 中,可选择启用生物识别(Face ID/Touch ID)保护。macOS 版本计划支持 1Password SSH Agent 直接签名,无需导入私钥。
支持。登录 CloudKit 后,服务器列表、工作区、终端主题和辅助工具栏配置会自动同步到同一 Apple ID 下的其他设备。
已保存的服务器配置和本地会话状态可离线访问,但建立新 SSH 连接需要网络。SFTP 文件浏览器在连接后可用,离线无法操作远程文件。
当前存在多种独立 UI 状态管理方式,项目正在重构为统一的 presenter 层,以提升视觉一致性和所有权边界清晰度(详见 docs/specs/in-app-status-presentation.md)。