Mac tool for automation: openany://
I spent two evenings on a quick tool to experiment with URL schemes (like The Archive uses) to test something, then bundled this into an app:
https://github.com/CleanCocoa/OpenAny
Here's the gist: you can create links to open file with app, e.g. to create a dashboard of sorts with Markdown notes in e.g. The Archive
openany://app/TextEdit/view?path=/path/to/file.txt
Excerpt from the README
Why?
Any app that renders URLs as clickable links can now become your external app or file launchpad.
- 🎉 Create open-file-with-app links anywhere!
- 🌎 Assemble dashboards to your projects in your favorite note-taking app!
For example, you can use this in almost any Markdown editor with syntax highlighting to get a clickable link that will open TextEdit:
## My favorite stock macOS apps TextEdit: <openany://app/TextEdit>
That's a very silly example. Why would you want to launch TextEdit in such a complicated way?
Here's a more complicated example: open a file with a specific app, with a link.
The default file://
URLs you get from dragging from Finder are also clickable, but they only reveal the file. Opening the file is an extra step. Boo extra steps!!11
How about embedding a shortcut to edit a file with TableFlip and preview with Marked?
Preview: <openany://app/com.brettterpstra.marked2/view?path=~/document.md> Edit Tables: <openany://app/TableFlip/view?path=~/document.md> ... document goes here ...
Open any app, or any file, or any file in any app!
Usage
Powered by the openany://
URL scheme, you can launch apps and open files.
Open app:
openany://app/com.apple.textedit
launches TextEdit via its bundle identifier. It's a bit cumbersome, so:openany://app/TextEdit
launches TextEdit via its app name (not case-sensitive, actuall). That may not always be unique, though. Pick your poison 🙂
Open file:
openany://file/open?path=/path/to/file.txt
opens/path/to/file.txt
in your default editor of text files.openany://file/open?url=file:///path/to/file.txt
opens/path/to/file.txt
in your default editor of text files, but using afile://
URL instead of a path.
Open files with app:
openany://app/TextEdit/view?path=/path/to/file.txt
opens/path/to/file.txt
in TextEdit.openany://app/TextEdit/view?url=file:///path/to/file.txt
opens/path/to/file.txt
in TextEdit, but using afile://
URL instead of a path.openany://file/openwith/TextEdit?path=/path/to/file.txt
opens/path/to/file.txt
in TextEdit.openany://file/openwith/TextEdit?url=file:///path/to/file.txt
opens/path/to/file.txt
in TextEdit, but using afile://
URL instead of a path.
Reveal file:
openany://file/reveal?path=/path/to/file.txt
reveals/path/to/file.txt
in Finder.openany://file/reveal?url=file:///path/to/file.txt
reveals/path/to/file.txt
in Finder, but using afile://
URL instead of a path.
Author at Zettelkasten.de • https://christiantietze.de/
Howdy, Stranger!
Comments
There may be people who don't want to do any scripting who will find this app useful. However, I will note that it has been easy for a long time to create custom URL schemes for Mac using AppleScript applets. The "Launching Scripts From Links" page has been around at least since 2012 (judging by Wayback Machine archives), and I've used its instructions to create custom URL schemes for my note system with little programming skill.
Oh yes, good point, we had that in the past: https://forum.zettelkasten.de/discussion/1121/open-files-in-any-app-from-the-archive-using-url-schemes
Author at Zettelkasten.de • https://christiantietze.de/
Can you explain the difference between openany and the tool provided by Apple?
my first Zettel uid: 202008120915
@zk_1000 Which do you mean?
Author at Zettelkasten.de • https://christiantietze.de/
The AppleScript applet, I think. Is Andy suggesting an alternative to openany?
my first Zettel uid: 202008120915
I don't know which differences are relevant to you.
Author at Zettelkasten.de • https://christiantietze.de/
@zk_1000: Christian summarized the trade-offs well. The compiled Swift app will be faster, no doubt! It's good work from Christian. But modifying the Swift app requires installing Xcode, whereas creating a custom URL scheme with AppleScript merely requires opening Script Editor, which is already installed on every Mac, and pasting the code snippet that Christian provided, saving it as an application, and making one other edit in a text editor. Creating a custom URL scheme for each app with AppleScripts will also provide shorter URLs, but the openany URL scheme is more versatile. Note also that you can pass a URL from AppleScript to any scripting language of your choice simply with code like this: