How I use Omnivore in my read-it-later workflow for articles


What is Omnivore?

Omnivore is an open-source read-it-later application that allows users to save and organise online content (e.g., tweets, articles, and blog posts) for later reading and reference.

Many people in the tools for thought community use ReadWise's Reader app as their preferred read-it-later app. It is an excellent product, which I still use for some workflows (see disclaimer below). But there was one issue that led me to search for an alternative solution. Reader can only export your highlights and annotations to a page, and not at a block level. This approach doesn't suit my reading workflow or the way I manage information in my database.

In my database, notes on articles, videos, podcasts, and tweets are small chunks of information that don't warrant their own pages. The proliferation of pages resulting from Readwise imports was not to my liking. Having an excessive number of pages can also affect Logseq's performance, although it has improved significantly lately. I knew this was something I wanted to avoid, and for some time, I had been using hacky workarounds with Reader, exporting to Markdown and laboriously copy-pasting into Logseq. However, I found myself avoiding this workflow— even avoiding reading in Reader— because I knew the frustration it would cause later.

And then I found Omnivore.

Or rather, Omnivore found me. The Omnivore team actually reached out to me to tell me about the app the day after I joined Reader as a beta user. I don't enjoy switching applications on a whim, so I wanted to give Reader a fair chance and politely declined the invitation to try out Omnivore.

A few months later, the team reached out to me again to see if there was anything they could learn from my Readwise workflow. We scheduled a call, and this time I saw the app working first-hand. I noticed how Omnivore utilised the same content-as-blocks paradigm, and it was evident that my reading and processing workflow would work perfectly in Omnivore without the need for workarounds.

Omnivore is mobile-friendly, a non-negotiable in this space, with both iOS and Android apps. (I prefer to use the progressive web app because the official application defaults to dark mode, and I prefer reading dark text on a light background.) The user interface is minimalistic and visually appealing. The ability to create an email alias that lets you subscribe to online publications is also a basic requirement in read-it-later apps, and setting this up in Omnivore is straightforward.

Since I started using Omnivore, I've found myself reading more and retaining more information. The seamless integration with Logseq is a major benefit, and the team has been great to interact with, which is always a bonus. If you're someone who takes a lot of notes as you read, I recommend giving Omnivore a try. It's become an integral part of my workflow, and I'm confident it will be a great addition to yours.

Integrating Logseq and Omnivore

Brian Sunter has written a handy guide to getting started with Omnivore here, but I'll break down the basics below.

  • You first need to create an Omnivore account via their website. I also recommend that you install the browser extension. Here is the link to the Chrome browser extension.

  • Install the Omnivore plugin in the Logseq marketplace, then navigate to your plugin settings.

    • Three dot menu at top right of screen -> "Settings" -> "Plugins" on left panel -> Select "Omnivore"

  • Go back to your Omnivore web app and create an API key by clicking on your user profile at the top right of your screen, and selecting "API keys"

  • Copy this API key and paste it into your settings in the relevant box in your Omnivore plugin settings in Logseq.

  • Once you've added some articles, you can then activate the Omnivore import by clicking the plugin icon at the top of your screen.

My basic workflow for using Omnivore

  • Save all sources to Omnivore wep-app

    • Omnivore has a simple browser plugin that allows you to add articles at the click of a button or by using shortcut "Alt + O"

    • You can submit tweets to Omnivore by using the iOS or Android apps and using the "Share Tweet via" context menu.

  • I do most of my reading on my tablet and make highlights and annotations about what I've read as I go along.

  • If once I've finished reading a source, I decide I want to send it to Logseq, I add my custom label "Sent to Logseq" and then I archive the source using the standard "e" shortcut. (Note: this works for Reader, Gmail, and many other programmes.) If I haven't highlighted anything or taken any notes, I simply archive the source.

  • When I want to import my Omnivore notes into Logseq, I click the Omnivore Plugin button in Logseq, which imports all the articles that I've labelled "Sent to Logseq" to a page in my database called "Omnivore imports".

    • I've setup a custom filter in my Omnivore plugin settings by changing the filter to "advanced" and then only importing those articles that have the label “Sent to Logseq”. I do this to avoid all the articles syncing to Logseq, even if I hadn't read them.

  • When I want to process an article in my database, I move that article to the journal page for the current day. I then clean up my notes and add tags to the parent-level block that will help me find the article again.

    • If I needed to tag something that the tag in the parent-level block didn't cover, I would tag blocks at the individual level.

Why do I follow this approach?

This approach helps me keep track of what I've processed. I treat it like a Kanban board for reading, where the three columns are as follows:

  • synced to be read later -> read and annotated -> processed in my database.

I've also configured my import settings to enable me to distinguish between what is others' writing (i.e. highlights) and what are my notes. Highlights are turned into a Markdown quotation block by adding a ">" in front of the block. My notes on the block are then indented underneath the highlighted snippet, although I often remove the original highlight and just leave my own notes.

All my templates are shared below so that you can implement this workflow if it sounds good to you.


My Omnivore plugin settings


Note that I created the "Sent to Logseq" label in the Omnivore interface. I only add the label to articles that I want to send to Logseq.

Also note that the implementation of the advanced filter has also changed since I released the video.

Now, instead of this format in the advanced filter box...

you should use this format:

Article template text:

Here is the full YouTube video for reference:

If you found this post helpful, you might enjoy the full Logseq Mastery course. The course has a wealth of videos, detailed write-ups and diagrams to quickly master Logseq and save you plenty of time and headaches.

Want to browse the course outline first?

Click below to see the user guide for Logseq Mastery and to view the latest updates.