Customizing Hook Integration with DEVONthink

The purpose of this web page is to illustrate how you could customize Hook to integrate differently with DEVONthink.

Most DEVONthink users will be content with Hook’s default integration with DEVONthink. By default Hook identifies DEVONthink items by their x-devonthink-item URL. Therefore, Hook’s Copy Link command returns x-devonthink-item URLs.

However, users who primarily use DEVONthink to index folders may prefer an alternative script. When Copy Link is called on an item in DEVONthink with that integration, the resulting URL will have the form hook://file// rather than x-devonthink-item://. This will make the hooks you create in DEVONthink visible when you open the same file in third party apps (a different PDF viewer, like PDFpenPro or Skim), a different text editor (like BBEdit), etc. That’s because in those other apps , Hook currently has no way of knowing what the x-devonthink-item:// URL is. Instead, it constructs the hook://file// URL based on the file’s path.

For current information about using Hook with DEVONthink, please see Using Hook with DEVONthink by DEVONtechnologies

Custom Get Address script for DEVONthink 3

So, if you would like Hook’s Copy Link command to always return a hook://file/ URL rather than x-devonthink-item URL, then

1. Open Hook’s Preferences>Scripts tab,
2. select DEVONthink on the left,
3. click on the GetAddress tab,
4. copy and paste the following

tell application id "DNtp"
    if exists (content record of current tab of window 1) then
        -- current open item
        return path of (content record of current tab of window 1)
    end if

    if class of window 1 is equal to viewer window then
        set selected_items to selection of window 1
        if (count of selected_items) = 1 then
            -- current selected item
            return path of item 1 in selected_items
        end if
    end if

    -- selected group
    return reference URL of root of window 1
end tell

Hook to New > DEVONthink

If you choose to use hook://file/ URLs for DEVONthink items, then you should probably avoid using Hook’s New Item > DEVONthink menu option. That’s because by default that option identifies created files using the x-devonthink-item URL scheme.

You can delete the default New Item > DEVONthink script. DEVONthink items would then be created with the hook://file/ URL schemes (which is what you want); but those DEVONthink files would be created inside the DEVONthink database rather than inside a folder that is simply indexed by DEVONthink.

So if you want to use hook://file/ URLs in DEVONthink, we recommend creating them via the other Hook to New scripts (e.g., for .txt files or .rtf files). And:

  1. In Notes Preferences choose the folder that is indexed by DEVONthink. Hook will then create new files in that folder. Or,
  2. Move files that are created via Hook to New into your indexed folder, either manually or via automation. If you want to use automation, consider Hazel which automates moving files.

See also

Hook Productivity App Newsletter

Sign-up to receive emails about Hook productivity app. Our emails sometimes include coupons for discounts on great Hook-linkable apps made by other developers.

 Marketing permission: I give my consent to to be in touch with me via email using the information I have provided in this form for the purpose of news, updates and marketing.

What to expect: If you wish to withdraw your consent and stop hearing from us, simply click the unsubscribe link at the bottom of every email we send or contact us at We value and respect your personal data and privacy. To view our privacy policy, please visit our website. By submitting this form, you agree that we may process your information in accordance with these terms.