自动化 OhMyShot
更新于 2026 年 10 月 24 日
OhMyShot 有三种驱动方式:ohmyshot:// URL 协议、快捷指令(它也会把操作放进聚焦搜索),以及一个 Raycast 扩展。三者运行的都是菜单和键盘快捷键所运行的功能。
URL 命令
命令和参数都与 CleanShot X 的相同。为 CleanShot 写的脚本,把 cleanshot:// 改成 ohmyshot:// 就能用,不认识的参数会被忽略。Debug 版响应的是 ohmyshot-dev://。
批准 App
某个 App 或脚本第一次发送命令时,OhMyShot 会询问是否允许。App 逐个批准。不是 App 的工具(open、osascript、shell 脚本)无法区分,所以会作为一组被批准或拒绝。拒绝在 App 退出前一直有效。每个命令都需要批准,上传目标也绝不会来自 URL。
区域
x、y、width 和 height 要么一起出现,要么都不出现。它们是某一块显示器上的点,从显示器左下角算起。display 从 1(主显示器)开始给显示器编号;省略时,区域在指针所在的显示器上。超出显示器的区域会被裁剪到合适大小。
截图后:action
action 可以是 copy、save、annotate、upload 或 pin,会在“设置”规定的截图后操作之外额外执行。save 存到导出文件夹,不询问文件名;annotate 打开编辑器,不显示卡片;upload 需要已设置默认上传目标;pin 把截图留在原位贴在屏幕上。
文件路径
filepath 必须是绝对路径;开头的 ~ 会被展开。路径需要百分号编码。+ 会被当作加号,而不是空格。
全部命令
all-in-one · 区域
打开多合一。带区域时,区域会带着多合一的工具栏框好,可调整后截图、拷贝、存储、标注、贴图、上传、读取文字、滚动截图或录制。
open "ohmyshot://all-in-one?x=100&y=100&width=800&height=600"
capture-area · 区域, action
打开截取区域。带区域时,不显示选区界面,立即截取;这个区域也会成为下一次的“截取上次区域”。
open "ohmyshot://capture-area?action=copy"
capture-previous-area · action
按屏幕当前的样子再次截取上一次选择的区域。启动后还没选过区域时会发出提示音。
open "ohmyshot://capture-previous-area?action=save"
capture-fullscreen · action
截取指针所在的显示器。
open "ohmyshot://capture-fullscreen?action=upload"
capture-window · action
打开截取窗口。
open "ohmyshot://capture-window?action=annotate"
self-timer · action
打开截取区域;你选好的内容会在定时器倒计时结束后截取。
open "ohmyshot://self-timer?action=pin"
scrolling-capture · 区域, start, autoscroll
打开滚动截图。带区域时,滚动工具栏会出现在区域周围。有区域时,start=true 不显示工具栏、立即开始;autoscroll=true 让 App 自动滚动(需要辅助功能权限)。滚动截图进行中时,它会结束截图。
open "ohmyshot://scrolling-capture?autoscroll=true"
pin · filepath
把 filepath 处的图片贴到屏幕上;不带路径时会让你选择文件。
open "ohmyshot://pin?filepath=$HOME/Desktop/plan.png"
record-screen · 区域
打开录制屏幕。带区域时,录制工具栏会出现在区域周围。正在录制时,它会停止录制。
open "ohmyshot://record-screen"
capture-text · filepath, 区域, linebreaks
打开截取文字。带区域时立即读取;带 filepath 时读取图片里的文字,但不显示图片。文字会被拷贝。linebreaks=false 合并折行,true 保留换行;省略时遵循“设置 › 工具 › 图片中的换行”。
open "ohmyshot://capture-text?filepath=$HOME/Desktop/receipt.png&linebreaks=false"
capture-formula · filepath, 区域
OhMyShot 独有,CleanShot 没有对应命令。打开截取公式,需要“数学公式”模型包;没有安装时 OhMyShot 会发出提示音。公式的 LaTeX 会原样拷贝,两边不加 $。
open "ohmyshot://capture-formula?filepath=$HOME/Desktop/equation.png"
open-annotate · filepath
在编辑器中打开 filepath 处的图片或 .ohmyshot 项目;不带路径时会让你选择文件。
open "ohmyshot://open-annotate?filepath=$HOME/Desktop/plan.png"
open-from-clipboard
在编辑器中打开剪贴板里的图片。
open "ohmyshot://open-from-clipboard"
toggle-desktop-icons, hide-desktop-icons, show-desktop-icons
用一张壁纸图片盖住桌面图标,或移除这层遮盖。
open "ohmyshot://toggle-desktop-icons"
add-quick-access-overlay · filepath (必填)
把图片、MP4 或 MOV、GIF 的副本加入截图历史,并显示它的快速访问卡片。原文件留在原处。
open "ohmyshot://add-quick-access-overlay?filepath=$HOME/Movies/demo.mp4"
open-history
打开截图历史。
open "ohmyshot://open-history"
restore-recently-closed
恢复最近关闭的那张卡片的截图。
open "ohmyshot://restore-recently-closed"
open-settings · tab
打开设置。OhMyShot 的标签名可用,CleanShot 的也可用:例如 advanced 会打开“自动化”。
open "ohmyshot://open-settings?tab=advanced"
设置 › 自动化
“设置 › 自动化”列出了你批准过的 App。你可以在那里移除批准,或关闭 URL 协议。
快捷指令、聚焦搜索和 Siri
快捷指令 App 中 OhMyShot 下有这些操作:
| 操作 | 输入 | 输出 |
|---|---|---|
| 截取区域、截取窗口、截取全屏、截取上次区域、定时器 | 截图后(可选):拷贝、存储、标注、上传、贴图 | 截图文件,格式由“设置 › 通用”决定;截图被取消时不输出 |
| 截取文字 | 保留换行 | 拷贝的文字,或不输出 |
| 识别图像中的文字 | 一张图像、保留换行 | 图像中的文字;不拷贝也不显示 |
| 截取公式 | 公式的 LaTeX,或不输出 | |
| 识别图像中的公式 | 一张图像 | 公式的 LaTeX,或不输出 |
| 将图像贴到屏幕上、标注图像 | 一张图像 | |
| 录制屏幕、打开截图历史 | ||
| 滚动截图 | 自动滚动 | |
| 隐藏或显示桌面图标 | 隐藏、显示或切换 |
快捷指令无需在“设置 › 自动化”中批准,因为快捷指令是你自己建的;关闭 URL 协议也不影响它们。截图操作会等截图被保留后再继续,所以下一个操作能拿到图片。屏幕录制权限关闭时,会截取屏幕的操作会失败并给出提示。
截取区域、截取窗口、截取全屏、截取文字、录制屏幕、滚动截图、截图历史和桌面图标还能直接在聚焦搜索和 Siri 中使用,无需先建快捷指令。Siri 能听懂“Take a screenshot with OhMyShot”“Copy text on screen with OhMyShot”“Record the screen with OhMyShot”和“Open OhMyShot capture history”这类英文短语。
Raycast
仓库里附带一个 Raycast 扩展,位于 Integrations/Raycast。它暂未上架 Raycast Store,也还没有在装有 Raycast 的环境里试过。它的命令有:截取区域、截取上次区域、截取全屏、截取窗口和定时器(各自可选截图后操作)、多合一、滚动截图、录制屏幕、截取文字、识别图像中的文字、将图像贴到屏幕上、标注图像(最后三个作用于访达中选中的图像)、标注剪贴板图像、切换桌面图标、打开截图历史、恢复最近关闭的项目,以及打开 OhMyShot 设置。每个命令都会发送一个 URL 命令。
想试试的话,在仓库的克隆里运行:
cd Integrations/Raycast
npm install
npm run dev
npm run dev 运行期间,Raycast 会列出这些命令。扩展的 App 偏好设置用来在 OhMyShot(ohmyshot://)和 Debug 版 OhMyShot Dev(ohmyshot-dev://)之间选择。第一个命令会让 OhMyShot 询问一次是否允许被控制:请求中显示的是 Raycast,或者当 URL 经由 open 到达时显示为命令行工具;批准命令行工具后,所有脚本都能发送命令。扩展本身的文件采用 MIT 许可证。