Hook uses AppleScript to integrate with apps, but not all apps are scriptable or sufficiently scriptable. Suppose you open a previously saved resource (document or object) in an app and then invoke Hook, but Hook is empty except for saying
No linkable item in <app-name> (in the status bar, at the bottom), then it may be that the app is not yet compatible with Hook. This is either because the app is not (sufficiently) scriptable or Hook would need to be adapted to work with the app’s particular scripting idioms. An easy way to tell if an app is scriptable is to try to open the app’s ‘AppleScript dictionary’ using Apple’s Script Editor app (
File > Open Dictionary menu item). It the app does not show up in that window, that means it has no AppleScript dictionary. (See below for other automation options).
If the app is not sufficiently scriptable, please consider contacting the app’s developer and let them know you’d like their app to be compatible with Hook and send them the address of this page (https://hookproductivity.com/help/integration/other-app-developers/).
Hook’s scripting requirements are quite minimal. Nevertheless, third-party app developers are busy; so they will only add the required AppleScript if they know that their users can’t use their app effectively without it.
Example Email to an App Developer
Thank you so much for creating and supporting App Name. It is invaluable to me.
Hook needs AppleScript support to
- get a name and URL (or other unique identifier) of the frontmost open resource in your app; and
- be able to open this resource later using that same URL/identifier.
That’s all there is to it. It’s quite easy to do, and many great apps support this.
For more information, please check out https://hookproductivity.com/help/integration/other-app-developers/.
Updating App Name to work with Hook would make it possible for me to more frequently use your app. On the Hook website you’ll see that Hook is already compatible with other apps like yours.
Information for developers
If you are a developer who was directed to this page, possibly by an email very like the template above, here is some information about how Hook integrates with apps, and how to make your app compatible.
Hook works with apps which have persistent documents, resources, or contexts which can be saved and opened or restored.
Hook needs to be able to get the name of your app’s current resource, and a URL/ID for it. It needs to be able to open this resource using that URL/ID. We do not expect Hook to be able to get the name or URL/ID of an unsaved document.
Getting the name
Getting the name of your app’s current resource might mean
– name of the frontmost window
– name of a selected item in a list or menu
– name of an open document
– any of the above, according to the current state of your app
Getting the URL/identifier
Like the name, it should be possible to get the URL of a document regardless of how it is open or selected in the app
The identifier must be unique to the resource, and it should be persistent. If the resource is renamed or moved, it shouldn’t affect the identifier or break the URL.
Opening the resource
It must be possible open or restore the resource with the URL/identifier. If your application has an existing URL scheme and the URL can just be opened, this is very easy to do, but can also be done with just a unique identifier which can be parsed in a script to retrieve the relevant resource.
For examples of how other apps have been integrated with Hook, and how Hook integration happens: Creating Integration Scripts – Hook.
We like showcasing great apps that integrate well with Hook, in our release notes, emails to customers, on our blog, on the Hook productivity forum, on social media and elsewhere.
Please don’t hesitate to contact us (firstname.lastname@example.org) if you have any questions. You can also ask questions directly on the Hook Productivity Forum to get our community talking about using your app with Hook.
What’s a Linkable App and Why Does Linkability Matter?
That question is addressed here.
We have mentioned AppleScript a lot in this document. However, an app can be linkable without supporting AppleScript. Hook can work with other APIs than AppleScript. For instance, the app might provide a command line interface for linking, which Hook could leverage. The key question is whether the app is truly linkable, which require automation for hyperlink described here.
- Supported/unsupported Apps
- Creating Integration Scripts
- Contacting Developers of Other Apps (This page)
- Example: Customizing Hook Integration with Things
- Example: Customizing Hook Integration with Xcode
- Example: Hook to New with Momenta’s Agenda app using x-callback-url