[!CAUTION] Unfortunately, Omnivore is shutting down and all data will be deleted on 15th November 2024. Please export your data by then. Omnivore will remain open-source and can still be self-hosted. This progam should continue to work with self-hosted instances.
I am not affiliated with the Omnivore project in any way.
A program to generate epub file from articles saved in your Omnivore library and optionally send it to your eReader using email.
Omnivore is an open source read-it-later app similar to Pocket and Instapaper.
Forked from here
This program uses no OS specific code and should work on all platforms supported by Deno.
Assets click on Source code (zip) which will download the latest release of the program in a zip file
which you will need to unzip.token field in config filedeno run -A main.ts.epub should be in the app directory after executionList of eReaders that support sending ebook using email:
[!TIP]
Make sure the email address used is approved to send ebook to your eReader
emailSupport to true in the config fileemailHost to the SMTP address of your
email providersmtp.gmail.com for Gmail and smtp-mail.outlook.com for OutlookemailPort to the SMTP Port. Usually it is 587, 465 or 25emailUser which is usually your email addressemailPassword to your email account password. This is stored locally on your device and is never sent to usemailRecipient to the email you want to receive ebook on (your eReader's email address). See the links in list
of eReaders above to know moreemailAllowSTARTTLS to false when using 465 as emailPort. Leave it to true when not sure[!CAUTION]
The email password is stored in plaintext on your device, unencrypted. Therefore, it is highly recommended to use app password instead of your account password whenever your email provider supports it
You may also need to turn on 2FA (Two Factor Authentication)
Instructions for setting an app password for a few popular email providers:
Configuration options available in the config file
| Option | Type | Description |
|---|---|---|
| token | string | Omnivore API Token |
| endpoint | string | Omnivore GraphQL API endpoint |
| title | string | Title of the ebook |
| author | string | Author of the ebook |
| cover | string | URL for fetching cover image for the ebook |
| description | string | Description of the ebook |
| addLabelsInContent | boolean | Whether to add the labels for the article below title |
| addArticleLinkInContent | boolean | Whether to add the link for the article below title |
| allowImages | boolean | Whether to add images linked in article in the ebook |
| outputFileName | string | ebook file name |
| maxArticleCount | number | Number of articles to fetch |
| searchQuery | string | Valid query for article search |
| ignoredLabels | string[] | List of labels to exclude from the ebook |
| ignoredLinks | string[] | List of urls to exclude from the ebook |
| emailSupport | boolean | Whether to send the ebook via email (to your eReader) |
| emailHost | string | SMTP Hostname of your email provider |
| emailPort | number | Usually one of 587, 465 or 25. Prefer 587 when available |
| emailUser | string | Username/Email address of your email account |
| emailPassword | string | Password of your email account. Prefer app password |
| emailRecipient | string | Email address that should receive your ebook |
| emailFrom | string | Sender name that appears to the email receiver |
| emailAllowSTARTTLS | boolean | Allow connecting to the SMTP server using STARTTLS |
| emailSizeWarningSuppress | boolean | Show a warning if ebook is over emailSizeWarningMinSize |
| emailSizeWarningMinSize | number | Min ebook size to show warning while sending email in MB |
| updateCheck | boolean | Check for updates when run |
| showReleaseNotes | boolean | Show release notes when an update is available |
Setting searchQuery is the recommended way to filter and sort articles. You can learn more about how to use them on
the official Omnivore documentation Search | Omnivore Docs.
The default value is sort:saved-desc which returns all unarchived articles sorted by saved date, recently added
articles first.
You can also use it to filter by labels. In case the label contain a space, you will need to escape the double-quotes
using a forward slash \. Example: sort:saved-desc label:\"Send to Kindle\"
$ claude mcp add omnivore-epub \
-- python -m otcore.mcp_server <graph>