This is what Hell looks like.

    Screen shot of the iOS App Store: “Have More Fun on LinkedIn. Kick back with three new games.”

    Favorite apps: PastePal

    I used to think the Copied clipboard manager for Apple devices was spiffy. I don’t know how or why, but that app disappeared from the Internet and the App Stores.

    PastePal seems to be its spiritual successor. It works perfectly, it syncs across devices, and the pro version is a one-time, reasonable $15 purchase. It’s the only clipboard manager I’ve found that checks all those boxes.

    Review: Jellycuts

    Jellycuts for iOS and iPadOS is 2 things:

    1. A text-based language for writing Shortcuts,
    2. A compiler that turns the text language into “real” Shortcuts, and
    3. An IDE for writing the language.

    As a programmer, this is super exciting to me because it feels like I spend too much time fighting against the limitations of the visual language. Now I can use the programming tools I work with every day to write my little applets, and store them in version control so that I can track changes and roll back mistakes.

    It’s not a perfect system as the design of the Shortcuts app means that getting the compiled code into it is a little convoluted (but automated and as smooth as possible). That’s on Apple, though, and not Jellycuts. The author has done an amazing job with the tools available to them.

    Jellycuts is a game changer. I haven’t gotten far with it yet, but if it works as promised on larger projects, I see it becoming the way I write Shortcuts. Get it at

    Review: Hook by CogSci

    I’ve been playing with Hook, an app I’ve started hearing about. It’s an interesting bird, and its own docs didn’t explain why I should want to use it. That’s too bad, because after downloading it and playing around for a few days, I understand why people are excited about Hook.

    Let me try my own explanation:

    Hook knows how to talk to a lot of other apps (about 150 as of now) and ask or direct them to do a few things:

    • Get the ID of the active item in the app, like the omnifocus:///task/... link of the selected item in OmniFocus.
    • Open the item in the app with a given ID.
    • Get the name of the active item in the app, like the title of the front tab in Safari.
    • Create a new item in the app.

    Those first 2 options are interesting because many of its supported apps don’t offer their own URL scheme. You can refer to a web page by its address or an OmniFocus object by its URL as seen above, but Apple’s own Notes app doesn’t offer a way to make a link to a specific note. Hook solves this by offering its own URL scheme. For instance, if I try to open the URL hook://notes/dt/1498065293 on my Mac, it opens the Hook app, which sees that it’s supposed to open the Notes app, and uses AppleScript or JavaScript wizardry to go straight to the desired note. Or consider emails, each with their own unique Message-ID. Hook accepts URLs like hook://email/[Message-ID] and opens them in your favorite mail app, even if you’ve moved the mail to a different folder or switch mail apps since you copied the link.

    That’s slick, and if Hook only allowed me to deep link straight into Mail and Notes and Finder and iTerm (!!!) and VS Code (now you’re showing off), it would be invaluable.

    The “a-ha!” moment was understanding that Hook itself stores links between objects, even if they’re not editable. For example, suppose you’re viewing a PDF and it reminds you of a web page. You can ask Hook to copy the PDF’s location in Finder. When you open the web page in Safari, you can use Hook’s “Hook to Copied Link” action to make a two-way link (the eponymous “hook”) between the PDF and the web page. That is, if you come back to that web page a week later and wonder what PDF it reminds you of, you can press the Hook shortcut and it will pop up a list of all documents “hooked” to that web page. Use the arrow keys to scroll down to the PDF and press enter, then voila!, it opens the PDF for you.

    This is the magic in Hook: you can make linkages between resources that aren’t under your own control. You don’t download a webpage and then edit its metadata to link to the PDF. Hook says “oh, when you’re looking at this page, I’ll remember that it made you interested in this PDF”. And even if that PDF can’t be edited to add a link to the webpage, Hook manages that association for you.

    In this sense, Hook is like a personal wiki, except that you don’t have to edit a page to associate bits of data and that doesn’t have to be in the same app. You open the first item and press a few keys, then open the second item and press a few more, and now your system knows that you think these 2 items are related and can remind you of that later. That’s powerful. It’s easy enough to make a link from a Things action to its information resources in DEVONthink. Linking from DEVONthink information back to Things so that you can bounce right back to your project planning without lifting your hands from the keyboard? That’s harder, and it’s the true value of Hook.

    A note on terminology: giving things a good name is hard, but I might’ve called “Hook to Copied Link” almost anything else. My mind kept reading “Hook” as a noun, as though I were converting it to a “Copied Link” similar to calling “JPEG to PNG” in a graphics program. Instead it’s a verb: “create a link back to the item whose link is in the clipboard” is clearer to me, although too verbose.

    Hook is available in a free version that’s focused on opening links, not making them. The idea is that you can send your coworker a link to a file stored in Git or Dropbox, or an email they were Cc’ed on, and they can go straight to it. That’s nifty, but in practice I can’t imagine my friends tolerating this: “hey Tom, I’m going to send you a link, and you’ll need to download this free app from…” “Stop right there.” Hook is cool and I’ve told several friends about it, but I’m not kidding myself about the likelihood of them all installing it.

    Maybe I’ll look back on this in a few years and laugh at my own skepticism because it became the universal standard app that everyone uses, but I’m not counting on it.


    CogSci, Hook’s authors, have an interesting licensing model: if you buy the “essentials” or “pro” version, you can use any new versions that come out within 12 months of your purchase date for free, forever. If newer versions come out with features you can’t live without, you can buy a discounted renewal license that’s good for another 12 months of updates.

    I love this idea. I hate renting software, and this is a nice compromise between an unsustainable “buy it once and get free support for the rest of your life” and “keeps working as long as you keep paying”. I wish this licensing model were the norm.


    The few things I dislike about Hook are minor:

    1. It’s not available for iPhone and iPad. I’m not sure how an iOS version of Hook would work (perhaps through the Share action? Through drag and drop?), but I wish it were on my favorite mobile platforms. I’m using my iPad for a lot of work I’d would have used my Mac for before and cross-platform tools are splendid. An mobile “Hook Lite” version that supported opening hook:// links would help a lot.
    2. I haven’t met another person using it. Although I’ve read articles about Hook, I’m the only person among my friends, family, and coworkers who has it installed. The link sharing idea could be brilliant if it becomes ubiquitous but I don’t want to be its lone evangelist among the people I know, many of whom are still annoyed by my Emacs and Amiga days.
    3. CogSci: please ask someone who doesn’t work with you to review your home page. All the information there is technically accurate, but much of it only becomes clear to users who’ve downloaded Hook and experimented with it. If I hadn’t been evaluating the app on the recommendation of a friend, I might not have downloaded it. Your app is cool. Give it some marketing love!

    Summary: try it.

    I like Hook. I haven’t registered it yet but I’m leaning that way. Again, if Hook only allowed me to create deep links into apps that don’t natively support them, that’s enough reason to buy it. I’m not sold on the life-changingness of the bidirectional links between documents — not because I don’t think it’s an wonderful idea, but because I’m a sucker for things that promise to be the cure for what ails ya and then become disillusioned when they’re not as amazing as I’d hoped. For example, I’d heard that Zettlekasten note keeping is the magic key to life-long productivity, but realized that it’s a nice solution to problems I don’t have. I’m being cautious about Hook for the same reason. But skepticism aside, I think its core conceit that making links between all your related resources is valuable has merit, and Hook makes this easy. I’m still in the trial period my wish is it’s as helpful as CogSci thinks it will be.

    Try Hook. I think we’re going to like it.

    Mastodon apps for iOS

    Updated: November 11, 2022

    There are several excellent Mastodon apps for iOS and iPadOS. These are the ones I’ve tried.


    • A good app is stable and (at least nearly) crash-free. This rules out a few apps I’ve tried that I’m not including here.
    • Mastodon evolves with new features like polls. The best apps are updated with support for these new features.
    • I use an iPhone and an iPad. Apps that don’t support both platforms are non-starters for me. It’s possible I could find a brilliant, flawless iOS-only app and a different iPadOS-only app and be happy with the combination, but that’s unlikely to happen. Bonus points for apps that have Mac versions.

    Here are my recommendations that mostly meet those requirements.


    I stumbled across Metatext and I’m glad I did. It feels native in ways that other apps don’t and looks beautiful on my phone and iPad. I’ve used it as my main app since its release and recommend it to all my friends. Development has slowed down recently, but it feels “finished” without any obvious bugs or missing features. If you’re bored with your current app and want to try something new, get Metatext.


    Toot! is a favorite. It’s rock solid, updated frequently, and good looking on both iPhone and iPad. I suggest this for anyone getting started with Mastodon. The sole thing I don’t love is that it doesn’t always “feel” like a native iOS app, as opposed to say an alternative web interface. I’m picking nits, though: if you stop reading and install Toot!, you’ll be fine. It’s great.

    Mast: for Mastodon

    Mast looks and feels different from the other popular apps with its multi-column layout, and I appreciate its fresh take on how a Mastodon client can work. It’s a beautiful experiment. I can’t recommend it right now because it has significant bugs, like crashes and timelines which don’t refresh even when you try to manually refresh them. Its author released a popular Twitter app, Aviary, which I suspect has been taking their attention. This means it hasn’t been updated recently and I worry that it might be abandoned. Still, Mast supports iPhone and iPad and Mac and Apple Watch, which is amazing, and I’m watching it to see if the author resumes regular development. I hope they do.

    Mercury for Mastodon

    Mercury is a gorgeous, new, native-feeling app. I think it’s going to be a good option. It’s iPhone-only today with iPad support on their published roadmap, and I’d like to see that happen because it’s already a solid alternative for people who just use an iPhone. I’m monitoring Mercury’s development, too.

    Honorable mention: Linky for Twitter and Mastodon

    Linky is for posting to Mastodon, not reading it. I use this brilliant little app for sharing links to interesting websites, photos, or songs I’m listening to. It’s scriptable with x-shortcut-url, so if you’re technically savvy you can use Shortcuts, Drafts, or other apps to post things you’ve written. If you share a lot of content to Mastodon from other apps, Linky is your friend.

    See also

    Mastodon for iPhone and iPad is the official app brought to you by the people who made Mastodon. In spite of that, it lacks (or at least hides) vital Mastodon features, such as the local timeline. It’s ok if you’re joining one of the large, generic instances like that don’t have meaningful local communities, but offers a substandard experience on cozier instances.

    Favorite apps: Copied

    I think Copied is the best clipboard manager available for Apple devices.

    I use Copied constantly. It lets me copy 3 different things I see on a web page, then quickly paste them into a text editor without bouncing between the two apps several times. It lets me search my history for stuff I’ve copied earlier, even if I’ve done other things since then. It’s one of the first apps I install on a new device.

    I have a few a hard requirements for a clipboard manager:

    • It must sync across all my devices. Sometimes I start work on my iPad, or even my iPhone, and later move to a Mac. Other times I start on my Mac then switch to a portable device. I want the things I’ve copied to be available in all these places.
    • It has to be rock solid. When I’ve become used being able to access my clipboard history, and then discover it’s not available because the app has crashed and hasn’t been recording, I’m not happy.
    • It’s got to be quick. If I’m in the zone working on a project, I want to summon the app with a key press, select the item I want to paste with my keyboard, paste it with my keyboard, then have the app go away.
    • The user interface has to be simple. See above. A clipboard manager is a tool that I want to use for one thing and have it disappear until the next time I need it. I don’t want to spend more time playing with its interface than is necessary. It’s not an app I’m going to have open for a while as I poke around in it.

    Copied meets all those requirements, and a one time $6 purchase (with family sharing!) covers Mac, iPad, and iPhone apps that sync together with iCloud. It’s simple, quick, reliable, and available everywhere I work. And did I mention it’s a one time purchase? There’s nothing more I could want.

    Note that development had paused for a long time after its version 3 came out, and the app stopped working on macOS Catalina. In late 2020 the author released an updated version 4 that works perfectly with Catalina and Big Sur. A few old reviews lament that it broke with an OS upgrade but that’s old information.

    If you’ve wished you could copy several things in a row and paste them, or recall something you copied last week, install Copied. It’s great.


    Apple’s own Universal Clipboard is excellent, but limited: it uses only Bluetooth to sync directly between devices and requires them to be near each other, it doesn’t keep a history of previously copied items, and it doesn’t support older devices. You can’t beat free, though.

    Paste is another great app, but it has two things I don’t like:

    • The user interface is pretty but much more complex. This is a matter of personal taste but I find it too powerful. Again, I want to pop in and out of a clipboard manager as quickly as possible, and don’t want anything that slows this down or breaks me out of my thinking.
    • It’s hella expensive at $10 per year, or $15 per year for the family plan. That’s way more than I want to spend for a utility that spends almost all its time in the background.

    Pastebot is a wonderful Mac-only app. If it had iOS and iPad apps that it synced with, I’d have a hard time deciding between it and Copied. Alas, it doesn’t.

    Gladys, Anybuffer, Yoink, and Unclutter are beautiful shelf apps, but are way more complicated than I want in a clipboard manager, and not as good at that specific task as the dedicated apps are. Several of these don’t have cross-platform sync.

    Update 2022-03-29: From what I can tell, Copied is dead. Its web page is empty and it’s no longer available in the app store. That’s a pity and I miss it. Until a better option comes along, I’ve bitten the bullet and subscribed to Paste.

    "Let's Fix OmniFocus", indeed

    If you use OmniFocus, you should check out Paul Sahner’s Let’s Fix OmniFocus post:

    But lately there has been a growing demand for the company to rethink the user experience and interface of OmniFocus. As popular competitors like Things win acclaim for their clean, modern appearance, OmniFocus – for all of its power – appears stuck in another time period. So I wanted to see what it might take to re-imagine the OmniFocus suite of apps. The answer, it turns out, is not so simple.

    Simple or not, Paul’s idea of how a unified Mac / iPad / iPhone interface might work is absolutely gorgeous. I didn’t know I could want this so badly.

    App subscriptions must offer value

    Software authors are increasingly switching to subscription models to make their work “sustainable”. Too often they’re forgetting to make a value proposition that helps their customers. Here’s a hint: if you have to write a Medium post explaining why I should support your new business model, you’re doing it wrong.

    I understand why authors can’t afford to write an app and then offer free upgrades for the following decade. That’s a great way to cut off the income supply that keeps new development happening. Neither authors nor their customers want that! Creators want to be compensated for their time and users want up-to-date software with competitive features. Buying an application one time shouldn’t come with the expectation that I should get all the newest work for free, forever.

    The alternative is not that purchasers are an endless font of cash and goodwill, though. A recent trend is for annual app subscriptions to cost roughly the same as buying a copy of the app each year. In the real world, no one does this and it’s not sustainable. If you want to move to a subscription model, your price has to make sense as a value proposition by itself. Customers don’t care about pretty words and guilt trips in long blog posts. They want a good deal from their own perspective.

    From a customer’s point of view, the math is simple: your target annual fee is the previous price divided by the number of years I would have expected to keep a paid copy before upgrading. For instance, if your upgrades used to cost $40, and you released new paid major versions every two years, I can be convinced to subscribe at a rate of $20 per year. Anything beyond that is a price increase, and that increase must be justified exactly as if you were selling me a new copy instead of a monthly rental. That is, you can’t tack on “…and now with cloud sync!”, or “…for teams!”, or pack it with other features I won’t care about and expect that I’ll happily pay twice the old price.

    1Password did this right: although their new “1Password Families” service costs more than their old software licenses, it offers lots of features that genuinely make it more useful. Smile Software did this wrong: their new annual TextExpander subscription service costs about the same as their previous one-time software licenses, but all of the new features were geared to a workflow that could not have been less attractive to me if they’d tried. They were asking me to pay a lot more and get nothing of value to me in return.

    In summary, you want to make money. I want you to run a profitable business so that you’ll continue to make the software I enjoy. But you have to remember that while your app is your labor of love, for me it’s just a tool I use for work or play and it’s not my life’s ambition. It’s the one among several competitors that had the best value proposition. If that ever changes, I’ll re-evaluate and move on to one of the others. I’m frustrated that this is 101-level business class stuff, and we shouldn’t need to keep learning this lesson anew.

    Making Devonthink Sync Between Computers

    Update: 2021-05-27

    This is still getting traffic for unknown reasons. Today, in 2021, the problem is long solved. DEVONthink 3 syncs perfectly with itself and with DEVONthink To Go. Again, this is purely historical and not a reflection of the state of things today.

    Also, I have no idea why this post is suddenly so popular again. Help me out and let me know how you found this page? I’d sure appreciate it!

    Update: 2016-09-17

    In July 2016, DEVONtechnologies released DEVONthink 2.9 with an entirely new sync engine. It’s like a brand new program and synchronization has been flawless. Although I’ve only been using the new version for a couple of months now, it feels better, faster, and deterministic in a way the older ones never did.

    At this point, I’m cautiously optimistic that all of the problems I wrote about below are fixed and obsolete. My fingers are crossed!

    I’m keeping this post up for historical reasons but I don’t think that it’s relevant anymore.

    Q: I have DEVONthink Pro Office and I want to sync my home and work computers so that I can access documents in both locations. How can I do that?

    A: You can’t. Give up. It won’t work reliably.

    Q: No, really. How do I do that?

    Longer A: Seriously, give up. It doesn’t work and you’ll just get angry and frustrated. Trust me.

    I use and love DEVONthink Pro Office as a document manager. Pretty much every piece of information I come across goes into it, whether scans of utilities bills, PDFs of software manuals, Twitter messages I starred, or the complete collection of RFCs. If there’s any chance I might ever want to find something again, DTPO stores it. Its most important feature is the uncanny ability to return exactly the search results I want when I need to find something. Second only to that is its AI-powered “see also” feature: “you seem to be reading up on an obscure technical subject. You might also be interested in the author’s blog posts about it, some guy’s master’s thesis on the main algorithm, and the popular alternative version written by a teen living in a favela in São Paulo.”

    It’s that good. And I’m still desperate to find anything else to replace it.

    The main problem is that DTPO refuses - just flat-out digs its heels in and resists - syncing reliably for more than a few days at a time. The pattern always goes like this:

    • I start off optimistic, determined that this time will be different.
    • At home, I add a sync connection to Dropbox, or to my own WebDAV server which has been syncing OmniFocus and other apps successfully for years.
    • I sync one of my medium-sized (2GB or so) databases to that connection.
    • I select the Synchronize menu option and wait several hours as my data gets pushed up to the server.
    • At work, I set up the same connection and import the database. Then I select Synchronize and wait a few hours as all my data comes back from the cloud.
    • I use it for a couple of weeks until I start getting random sync errors that cause it to stop halfway through without copying across all my new documents.
    • After going through all the troubleshooting tips on their forum (of which there are many because this seems to happen to a lot of people), I give up and resign myself to the dreaded “Clean Location…” button which deletes all documents off the remote server.
    • I walk away from it for a few weeks so that I don’t throw my laptop out the window.

    So I exaggerated a little. It is possible to reliably sync two machines running DTPO:

    • Pick one to be the primary machine.
    • Pick the other to be the secondary.
    • Do all your editing work on the primary. When you’re happy with it, use rsync or some other file copier to nuke what’s on the secondary and make it identical to the primary, losing any changes you might’ve made there.
    • If you’re at work and want to add a document, just email to yourself at home and import it into DTPO there later when you’d rather be playing with your kids, washing the dog, or doing anything else in the entire world.

    That’s how you reliably sync DTPO. Anything else is just a ticking time bomb.