概念
clip-dock 是 Pinix 在各平台的客户端 App,每个 clip-dock 同时承担两个角色:
- Portal(Client 角色)— 展示 Clip 列表、调用 command、加载 Clip Web UI
- Edge Clip Provider(Provider 角色)— 注册设备原生能力为 Clip
一个 App,两个角色,共享 Hub 连接。
各平台规划
macOS — Menu bar app
clip-dock-macos (menu bar 图标)
├── Standalone 模式
│ 内嵌 pinixd (Hub + Runtime)
│ + macOS Edge Clip Provider
│ + 点击 Open Portal → 浏览器打开 localhost:9000
│
└── Client 模式
macOS Edge Clip Provider → 连远程 Hub
+ 点击 Open Portal → 浏览器打开远程 Hub
macOS Edge Clip 能力:screen capture, clipboard, AppleScript
用户在设置里选模式。Standalone = 个人单机全包,Client = 连远程 Hub(Runtime 在 NAS 上)。
iOS — SwiftUI App
clip-dock-ios
├── Portal (SwiftUI 原生 UI)
│ ListClips, Invoke, GetManifest
│ Clip Web UI (WKWebView)
│
├── Edge Clip Provider (后台)
│ ProviderStream → Hub
│ camera (AVFoundation)
│ health (HealthKit)
│ location (CoreLocation)
│ contacts (Contacts)
│
└── 推送注册
启动时 Invoke("notify", "register", {...})
推送点击 → 深度链接到对应 Clip
iOS 特性:App 前台时设备能力在线,切到后台后 ProviderStream 断开、Clips 从 Hub 消失。推送通道通过 notify Clip 持久化,不受影响。
Windows — System tray app(未来)
类似 macOS,Standalone / Client 两种模式。
Android — Kotlin App(未来)
类似 iOS。
Hub 视角
clip-dock-ios 连入后,Hub 看到:
Provider "iphone-yan" (accepts_manage: false)
├── Clip "camera" (package: pinix-ios-camera)
├── Clip "health" (package: pinix-ios-health)
└── Clip "location" (package: pinix-ios-location)
同时 App 也在调 Hub 的 ListClips、Invoke 做 Portal 展示。Hub 不关心两个角色来自同一个 App。
关系
- clip-dock-desktop(V1 遗留)→ 被 clip-dock-macos 替代
- Portal(pinixd 内嵌 web)→ 继续存在,clip-dock 的 Portal 功能是它的客户端
- notify Clip → clip-dock 启动时注册 device token
优先级
- clip-dock-macos (menu bar + pinixd 整合)
- clip-dock-ios
- clip-dock-windows / android(未来)
概念
clip-dock 是 Pinix 在各平台的客户端 App,每个 clip-dock 同时承担两个角色:
一个 App,两个角色,共享 Hub 连接。
各平台规划
macOS — Menu bar app
macOS Edge Clip 能力:screen capture, clipboard, AppleScript
用户在设置里选模式。Standalone = 个人单机全包,Client = 连远程 Hub(Runtime 在 NAS 上)。
iOS — SwiftUI App
iOS 特性:App 前台时设备能力在线,切到后台后 ProviderStream 断开、Clips 从 Hub 消失。推送通道通过 notify Clip 持久化,不受影响。
Windows — System tray app(未来)
类似 macOS,Standalone / Client 两种模式。
Android — Kotlin App(未来)
类似 iOS。
Hub 视角
clip-dock-ios 连入后,Hub 看到:
同时 App 也在调 Hub 的 ListClips、Invoke 做 Portal 展示。Hub 不关心两个角色来自同一个 App。
关系
优先级