# terminalX 原生苹果生态终端运维 / vibe coding 工具。平台优先级:**iPadOS > iOS > macOS(Apple Silicon)**。 核心选型:**libghostty**(终端引擎) · **mosh** · **Tailscale (tsnet 用户态)** · **tmux control mode hook**。 > **接手/继续开发先读 [`docs/HANDOFF.md`](docs/HANDOFF.md)**(项目全貌 + 里程碑 + 代码地图 + 下一步)与 [`CLAUDE.md`](CLAUDE.md)(构建/验证命令 + 环境约束 + 坑)。 ## 当前进展(2026-07-24,均 iOS 模拟器验证,未上真机/未签名) - **M0** SSH 直连终端(libghostty 渲染/键盘/CJK、会话状态机+自动重连)✅ - **M1** tsnet 用户态 + SSH-over-tsnet(fd 桥)✅ - **M1.5 / tmux** control-mode 原生 tab + **多 pane 分屏 + iPadOS 动态 resize** ✅ - **M2** mosh over tsnet(自编 `MoshCore.xcframework` + UDP relay)✅ 端到端验证 - **M3** mosh 挂起→恢复 <3s(唤醒脉冲 + 会话状态机三相)✅ - **M4** 安全:host key TOFU pin(MITM 防护)+ publickey 认证(SE 优先/软件回退)✅ - **M5** 合规提审 ⏸️ 暂缓 - **UI 产品化(进行中)** 对标 Moshi:深蓝黑 + 终端绿 + Catppuccin;主机管理页/终端 chrome/统一主题切换(app+终端同源,4 套 Catppuccin) ✅;会话缩略卡/设置细化待续。见 `docs/HANDOFF.md §10`。 四大核心需求(libghostty / tailscale / tmux / mosh)均已端到端验证。 ## 仓库结构(实际) ``` packages/ TXCore 零依赖纯逻辑:tmux 解析器/layout、SessionMachine(状态机+重连+mosh三相)、 MoshConnect(解析)、SSH(线格式/ECDSA/host key)。50 单测。 TXTransport SSHSession(libssh2)、MoshSession(mosh_main 桥)、Transport 协议; C shim: CSSH+CSSHCore(libssh2)、CMosh+MoshCore(mosh)。 apps/TerminalX iOS app(XcodeGen 生成):SSHTerminalModel(编排)/ContentView(主机管理页+ 终端 chrome+设置)/TmuxController(pane-per-surface 网关)/Theme(TXPalette+ 主题管理)/HostStore(主机持久化)/SigningKeyProvider/KeychainKnownHostsStore。 vendor/ 非 Swift 依赖本地化(认证代理不支持 SwiftPM,全 vendor): libghostty-spm、libssh2、mbedtls、tsnet-bridge(Go)、mosh、protobuf。 artifacts/ 预编译 xcframework(CSSHCore/TsnetBridge/MoshCore,**有意提交**,克隆即可构建)。 ``` > 计划中的 `TXTailnet/TXSecurity/TXPTY/TXUI` 未单独成包——tsnet 逻辑在 app 的 `TsnetManager`、 > 安全在 app 的 `SigningKeyProvider`/`KeychainKnownHostsStore`、UI 直接在 app。macOS 本地 PTY 未建。 ## 快速开始 ```sh # 纯逻辑单测(无需 Xcode/模拟器) swift test --package-path packages/TXCore # 50 tests # 构建 app(模拟器)——详见 CLAUDE.md cd apps/TerminalX && xcodegen generate --spec project.yml xcodebuild -project TerminalX.xcodeproj -scheme TerminalX \ -destination 'platform=iOS Simulator,id=' -clonedSourcePackagesDirPath /tmp/tx-spm build ``` ## 工具链 Xcode 26 / Swift 6.3 · Go 1.26(`~/.local/go`)+gomobile · CMake+Ninja+zig(vendor 构建)。构建命令与环境约束见 `CLAUDE.md`。