Automate OhMyShot
Updated October 24, 2026
OhMyShot can be driven three ways: the ohmyshot:// URL
scheme, Shortcuts (which also puts its actions in Spotlight), and a
Raycast extension. All three run what the menu and the keyboard
shortcuts run.
URL commands
The commands and parameters are
CleanShot X’s. A script
written for CleanShot works after you change cleanshot://
to ohmyshot://, and unknown parameters are ignored. Debug
builds answer ohmyshot-dev:// instead.
Approving apps
The first time an app or a script sends a command, OhMyShot asks
whether it may. Apps are approved one by one. Tools that are not apps
(open, osascript, shell scripts) can’t be
told apart, so they are approved, or refused, as one group. A refusal
lasts until the app quits. Every command needs approval, and upload
destinations never come from a URL.
Areas
x, y, width, and
height come together or not at all. They are points on
one display, measured from its bottom-left corner. display
numbers the displays from 1, the main display; without it, the area is
on the display under the pointer. An area reaching past its display is
cut to fit.
After a capture: action
action is one of copy, save,
annotate, upload, or pin, done
on top of what Settings says should happen after a capture.
save writes to the export folder without asking for a
name; annotate opens the editor with no card;
upload needs a default upload destination;
pin leaves the capture on screen where it was taken.
File paths
filepath must be an absolute path; a leading
~ is expanded. Percent-encode the path. A
+ is read as a plus sign, not as a space.
Every command
all-in-one · area
Opens All-In-One. With an area, the area comes framed with All-In-One’s bar, to adjust and then capture, copy, save, annotate, pin, upload, read, scroll, or record.
open "ohmyshot://all-in-one?x=100&y=100&width=800&height=600"
capture-area · area, action
Opens Capture Area. With an area, captures it at once without the overlay; that area becomes the next Capture Previous Area.
open "ohmyshot://capture-area?action=copy"
capture-previous-area · action
Captures the area chosen last again, as the screen shows it now. Beeps if no area was chosen since launch.
open "ohmyshot://capture-previous-area?action=save"
capture-fullscreen · action
Captures the display under the pointer.
open "ohmyshot://capture-fullscreen?action=upload"
capture-window · action
Opens Capture Window.
open "ohmyshot://capture-window?action=annotate"
self-timer · action
Opens Capture Area; what you choose is captured once the Self-Timer delay is over.
open "ohmyshot://self-timer?action=pin"
scrolling-capture · area, start, autoscroll
Opens Scrolling Capture. With an area, the scrolling bar comes up around it. start=true starts at once without the bar when there is an area; autoscroll=true lets the app scroll (needs Accessibility). While a scrolling capture runs, it finishes it.
open "ohmyshot://scrolling-capture?autoscroll=true"
pin · filepath
Pins the picture at filepath; without one, asks for a file.
open "ohmyshot://pin?filepath=$HOME/Desktop/plan.png"
record-screen · area
Opens Record Screen. With an area, the recording bar comes up around it. While recording, stops.
open "ohmyshot://record-screen"
capture-text · filepath, area, linebreaks
Opens Capture Text. With an area, reads it at once; with filepath, reads the picture’s text without showing it. The text is copied. linebreaks=false joins wrapped lines, true keeps them; omitted, it follows Settings › Tools › Image line breaks.
open "ohmyshot://capture-text?filepath=$HOME/Desktop/receipt.png&linebreaks=false"
capture-formula · filepath, area
OhMyShot’s own, with no CleanShot twin. Opens Capture Formula, which needs the Math Formulas pack; without it, OhMyShot beeps. The formula’s LaTeX is copied without $ around it.
open "ohmyshot://capture-formula?filepath=$HOME/Desktop/equation.png"
open-annotate · filepath
Opens the picture or .ohmyshot project at filepath in the editor; without one, asks for a file.
open "ohmyshot://open-annotate?filepath=$HOME/Desktop/plan.png"
open-from-clipboard
Opens the clipboard’s picture in the editor.
open "ohmyshot://open-from-clipboard"
toggle-desktop-icons, hide-desktop-icons, show-desktop-icons
Covers the desktop icons with a picture of the wallpaper, or removes the cover.
open "ohmyshot://toggle-desktop-icons"
add-quick-access-overlay · filepath (required)
Adds a copy of a picture, an MP4 or MOV, or a GIF to Capture History and shows its Quick Access card. The file itself is left where it is.
open "ohmyshot://add-quick-access-overlay?filepath=$HOME/Movies/demo.mp4"
open-history
Opens Capture History.
open "ohmyshot://open-history"
restore-recently-closed
Brings back the capture whose card closed last.
open "ohmyshot://restore-recently-closed"
open-settings · tab
Opens Settings. OhMyShot’s tab names work, and so do CleanShot’s: advanced, for one, opens Automation.
open "ohmyshot://open-settings?tab=advanced"
Settings › Automation
Settings › Automation lists the apps you approved. You can remove an approval there, or turn the URL scheme off.
Shortcuts, Spotlight, and Siri
These actions appear in the Shortcuts app under OhMyShot:
| Action | Input | Output |
|---|---|---|
| Capture Area, Capture Window, Capture Fullscreen, Capture Previous Area, Self-Timer | After Capture (optional): Copy, Save, Annotate, Upload, Pin | The screenshot as a file, in the format Settings › General chooses, or nothing when the capture was cancelled |
| Capture Text | Keep Line Breaks | The text copied, or nothing |
| Recognize Text in Image | An image, Keep Line Breaks | The image’s text; nothing is copied or shown |
| Capture Formula | The formula’s LaTeX, or nothing | |
| Recognize Formula in Image | An image | The formula’s LaTeX, or nothing |
| Pin Image, Annotate Image | An image | |
| Record Screen, Open Capture History | ||
| Scrolling Capture | Auto-scroll | |
| Hide or Show Desktop Icons | Hide, Show, or Toggle |
Shortcuts need no approval in Settings › Automation, because you built the shortcut yourself, and the URL scheme being off doesn’t affect them. The capture actions wait until the capture is kept, so the next action gets the picture. Actions that capture the screen fail with a message when Screen Recording is off.
Capture Area, Capture Window, Capture Fullscreen, Capture Text, Record Screen, Scrolling Capture, Capture History, and Desktop Icons also work in Spotlight and with Siri without making a shortcut first. Siri answers phrases such as “Take a screenshot with OhMyShot”, “Copy text on screen with OhMyShot”, “Record the screen with OhMyShot”, and “Open OhMyShot capture history”.
Raycast
The repository comes with a Raycast extension in
Integrations/Raycast. It isn’t in the Raycast Store yet,
and it hasn’t been tried with Raycast installed. Its commands: Capture
Area, Capture Previous Area, Capture Fullscreen, Capture Window, and
Self-Timer (each with an optional After Capture choice), All-In-One,
Scrolling Capture, Record Screen, Capture Text, Recognize Text in
Image, Pin Image, Annotate Image (the last three act on the image
selected in Finder), Annotate Clipboard Image, Toggle Desktop Icons,
Open Capture History, Restore Recently Closed, and Open OhMyShot
Settings. Each one sends a URL command.
To try it, from a clone of the repository:
cd Integrations/Raycast
npm install
npm run dev
Raycast lists the commands while npm run dev runs. The
extension’s App preference chooses between OhMyShot
(ohmyshot://) and the Debug build, OhMyShot Dev
(ohmyshot-dev://). The first command makes OhMyShot ask
once whether it may be controlled: the request names Raycast, or
command-line tools when the URL reaches OhMyShot through
open; approving command-line tools lets every script send
commands. The extension’s own files are MIT-licensed.