MoliShot 详细介绍
产品概述
MoliShot 是一款面向 macOS 的专业截图与 OCR 工具,基于 Swift、AppKit、ScreenCaptureKit 和 Vision 框架构建。它不是简单的"系统截图替代品",而是一套覆盖"捕获、编辑、识别、分享、回看"的完整屏幕信息工作流工具。
系统截图负责轻量、即时、零学习成本的场景;MoliShot 负责高频专业使用场景、跨应用信息整理和内容交付。目标用户包括产品经理、设计师、开发者、测试工程师、内容创作者、讲师和高频办公用户。
功能模块
区域截图
在当前鼠标所在显示器上进行区域选择。支持十字线框选、窗口 hover 高亮、像素级放大镜、pt/px 实时尺寸显示。快捷操作:Space 移动选区、Shift 锁定比例、Option 中心缩放。截图过程不会把 overlay 画面带进最终结果。
全屏截图
一键捕获当前鼠标所在显示器。多显示器场景下,每个显示器可独立输出文件,保持与实际显示像素一致。支持复制到剪贴板、保存到文件、进入编辑器、上传云端等后续动作。
滚动截图
使用 Vision 框架的 VNTranslationalImageRegistrationRequest 进行帧间配准,手动滚动 + 智能拼接。适用于长网页、文档、聊天记录等需要完整捕获的场景。注意:当页面滚动过快、重叠区域过少或内容抖动明显时,拼接可能失败。
标注编辑器
截图完成后自动弹出编辑器窗口。支持的标注类型:
- 箭头 — 指向性标注
- 矩形 / 椭圆 — 区域高亮
- 直线 — 连接线标注
- 画笔 — 自由绘制
- 文字 — 支持双击重新编辑
- 自增编号 — 步骤标注
- 高亮 — 半透明覆盖
- 模糊 / 像素化 — 隐私遮挡
- 裁剪 — 调整截图范围
编辑器支持 ⌘+ / ⌘- 缩放、⌘0 适配窗口、⌘1 实际尺寸。⌘C 复制、⌘S 保存、⌘Z 撤销最后一个标注。状态栏显示当前图片尺寸、标注数量、当前工具和缩放比例。
OCR 文字识别
基于 Vision 框架的文字识别,自动检测语言。识别结果窗口支持查看与编辑,识别文本自动复制到剪贴板。当前为纯文本结果,暂不支持文字框高亮或逐块复制。
贴图悬浮 (Pin)
将截图固定为浮动窗口置顶显示,hover 时显示工具栏。适合在做设计评审、写文档时跨应用对照参考内容。
屏幕取色器
使用系统 NSColorSampler 提供原生取色体验。HEX 值自动复制到剪贴板,HUD 即时提示取色结果。
历史记录
截图自动持久化到 Application Support 目录,支持网格浏览历史记录。方便快速查找和复用过往截图。
全局快捷键
优先使用 CGEventTap 拦截截图热键;未授予辅助功能权限时自动降级到 HotKey 库。默认快捷键:
| 操作 | 快捷键 |
|---|---|
| 区域截图 | ⇧⌘1 |
| 全屏截图 | ⇧⌘3 |
| 滚动截图 | ⇧⌘4 |
| 屏幕取色 | ⇧⌘P |
| OCR 选区识别 | ⇧⌘R |
导出与分享
支持三种导出方式:复制到剪贴板、保存为 PNG 文件、上传到 0x0.st 生成分享链接。
偏好设置
提供快捷键列表配置、屏幕录制/辅助功能权限状态查看、历史记录路径设置等功能。
技术栈
MoliShot 完全基于 Apple 原生框架构建:
- Swift — 主要编程语言
- AppKit — UI 框架,窗口管理、菜单栏、编辑器
- ScreenCaptureKit — 高性能屏幕捕获 API
- Vision — OCR 文字识别、滚动截图帧间配准
- HotKey — 唯一第三方依赖,全局快捷键管理(SwiftPM)
安装指南
方式一:下载 DMG(推荐)
- 从 GitHub Releases 下载最新 DMG
- 打开 DMG,将 MoliShot.app 拖入 Applications 文件夹
- 首次启动时,系统会请求屏幕录制权限:进入"系统设置 → 隐私与安全性 → 屏幕与系统音频录制",勾选 MoliShot
- 完全退出再打开一次 App 以确保权限生效
方式二:从源码构建
# Install XcodeGen
brew install xcodegen
# Clone the repository
git clone https://github.com/gusibi/MoliShot.git
cd MoliShot
# Generate Xcode project
xcodegen generate
# Open the project
open MoliShot.xcodeproj
在 Xcode 中配置签名(Team 选你的 Apple ID),然后 ⌘R 运行。
打包 DMG
./scripts/build-dmg.sh
脚本会自动执行 xcodegen generate、Release 构建,并输出 dist/MoliShot.dmg。
权限说明
- 屏幕录制 — 必需,用于屏幕捕获
- 辅助功能 — 可选,授予后截图时可保持目标 App 的菜单、Popover、tooltip 不被提前关闭
已知限制
- 区域截图当前只在鼠标所在显示器启动,不支持跨显示器自由框选
- 编辑器撤销为轻量级模型,支持取消当前操作或撤销最后一个标注,暂无完整 redo 栈
- 滚动截图依赖手动滚动,过快滚动或重叠不足时可能拼接失败
- OCR 为纯文本结果,暂不支持文字框高亮或逐块复制
- 当前版本不包含录屏功能
常见问题
录屏权限反复弹窗?
不要在启动时主动调用 CGRequestScreenCaptureAccess()。确认系统设置里勾选的是当前路径下的 MoliShot(不同路径的 App 会被系统当成不同条目)。正式发布后把 App 放进 /Applications 并固定签名即可。
xcodebuild 插件错误?
执行 sudo xcodebuild -runFirstLaunch 初始化 Xcode 系统组件,或直接用 Xcode GUI 构建。
支持哪些 macOS 版本?
macOS 14 (Sonoma) 及以上版本。支持 Apple Silicon 和 Intel 芯片。
项目结构
Sources/
├── App/ # 应用入口、菜单栏、全局协调
├── Capture/ # ScreenCaptureKit、区域选择、滚动截图
├── Editor/ # 标注编辑器、各种 Annotation 类型
├── OCR/ # Vision 文字识别
├── Pin/ # 贴图浮动窗口
├── ColorPicker/ # 屏幕取色器
├── Ruler/ # 尺子 / 量角器
├── History/ # 历史记录存储和浏览
├── Hotkeys/ # 全局快捷键管理
├── Preferences/ # 偏好设置窗口
├── Services/ # 上传、导出服务
└── Utilities/ # 权限、扩展、辅助函数 许可证
MoliShot 使用 PolyForm Noncommercial License 1.0.0。代码可自由查看和修改,非商业用途免费使用。