[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-3838":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":10,"language":11,"languages":10,"totalLinesOfCode":10,"stars":12,"forks":13,"watchers":14,"openIssues":15,"contributorsCount":16,"subscribersCount":16,"size":16,"stars1d":16,"stars7d":17,"stars30d":18,"stars90d":16,"forks30d":16,"starsTrendScore":19,"compositeScore":20,"rankGlobal":10,"rankLanguage":10,"license":21,"archived":22,"fork":22,"defaultBranch":23,"hasWiki":24,"hasPages":24,"topics":25,"createdAt":10,"pushedAt":10,"updatedAt":33,"readmeContent":34,"aiSummary":35,"trendingCount":16,"starSnapshotCount":16,"syncStatus":19,"lastSyncTime":36,"discoverSource":37},3838,"omnivore","omnivore-app\u002Fomnivore","omnivore-app","Omnivore is a complete, open source read-it-later solution for people who like reading.","https:\u002F\u002Fomnivore.work",null,"TypeScript",16096,1270,57,345,0,9,40,2,44.31,"GNU Affero General Public License v3.0",false,"main",true,[26,27,28,29,30,31,32],"bookmarks","logseq","logseq-plugin","productivity","read-it-later","reader","reading","2026-06-12 02:00:55","# Omnivore\n\n[![GitHub Workflow Status](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Factions\u002Fworkflow\u002Fstatus\u002Fomnivore-app\u002Fomnivore\u002Fbuild-self-host-docker-images.yml?branch=main)](https:\u002F\u002Fgithub.com\u002Fomnivore-app\u002Fomnivore\u002Factions\u002Fworkflows\u002Fbuild-self-host-docker-images.yml)\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F844965259462311966?label=Join%20our%20Discord)](https:\u002F\u002Fdiscord.gg\u002Fh2z5rppzz9)\n[![Mastodon Follow](https:\u002F\u002Fimg.shields.io\u002Fmastodon\u002Ffollow\u002F109458738600914558?domain=https%3A%2F%2Fpkm.social)](https:\u002F\u002Fpkm.social\u002F@omnivore)\n[![Twitter Follow](https:\u002F\u002Fimg.shields.io\u002Ftwitter\u002Ffollow\u002Fomnivoreapp)](https:\u002F\u002Ftwitter.com\u002FOmnivoreApp)\n![GitHub](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Flicense\u002Fomnivore-app\u002Fomnivore)\n\n\u003Cimg align=\"right\" src=\"https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F70113176?s=400&u=506b21d9f019f3160963c010ef363667fb24c7c9&v=4\" height=\"150px\" alt=\"Omnivore Logo\">\n\n\n[Omnivore](https:\u002F\u002Fomnivore.work) is a complete, open source read-it-later solution for people who like text.\n\n> [!IMPORTANT]  \n> Omnivore is now a completely Self-Hosted application. The Cloud application was deprecated in November of 2024. The community still exists on Discord, and we endeavour to keep things updated and bug-fixes ongoing. \n\nWe built Omnivore because we love reading and we want it to be more social. Join us!\n\n- Highlighting, notes, search, and sharing\n- Full keyboard navigation\n- Automatically saves your place in long articles\n- Add newsletter articles via email (with substack support!)\n- PDF support\n- [Web app](https:\u002F\u002Fomnivore.work\u002F) written in Node.js and TypeScript\n- [Native iOS app](https:\u002F\u002Fomnivore.work\u002Finstall\u002Fios) ([source](https:\u002F\u002Fgithub.com\u002Fomnivore-app\u002Fomnivore\u002Ftree\u002Fmain\u002Fapple))\n- [Android app](https:\u002F\u002Fomnivore.work\u002Finstall\u002Fandroid) ([source](https:\u002F\u002Fgithub.com\u002Fomnivore-app\u002Fomnivore\u002Ftree\u002Fmain\u002Fandroid\u002FOmnivore))\n- Progressive web app for Android users\n- Browser extensions for [Chrome](https:\u002F\u002Fomnivore.work\u002Finstall\u002Fchrome), [Safari](https:\u002F\u002Fomnivore.work\u002Finstall\u002Fsafari), [Firefox](https:\u002F\u002Fomnivore.work\u002Finstall\u002Ffirefox), and [Edge](https:\u002F\u002Fomnivore.work\u002Finstall\u002Fedge)\n- Labels (aka tagging)\n- Offline support\n- Text to speech (iOS only)\n- [Logseq](https:\u002F\u002Flogseq.com\u002F) support via our [Logseq Plugin](https:\u002F\u002Fgithub.com\u002Fomnivore-app\u002Flogseq-omnivore)\n- [Obsidian](https:\u002F\u002Fobsidian.md\u002F) support via our [Obsidian Plugin](https:\u002F\u002Fgithub.com\u002Fomnivore-app\u002Fobsidian-omnivore)\n\nEvery single part is fully open source! Fork it, extend it, or deploy it to your own server.\n\nA guide for running a self hosted server can be found [here](.\u002Fself-hosting\u002FGUIDE.md)\n\n\u003Cimg width=\"981\" alt=\"web-screenshot-listview\" src=\"https:\u002F\u002Fgithub.com\u002Fomnivore-app\u002Fomnivore\u002Fassets\u002F75189\u002Fdf7c797a-4255-42f4-a686-ad94866cb580\">\n\n## Join us on Discord! :speech_balloon:\n\nWe're building our community on Discord. [Join us!](https:\u002F\u002Fdiscord.gg\u002Fh2z5rppzz9)\n\nRead more about Omnivore on our blog. \u003Chttps:\u002F\u002Fblog.omnivore.work\u002Fp\u002Fgetting-started-with-omnivore>\n\n## Shoutouts :tada:\n\nOmnivore takes advantage of some great open source software:\n\n- [TypeScript](https:\u002F\u002Fwww.typescriptlang.org\u002F) - Most of our backend and frontend are written in TypeScript.\n- [Next.js](https:\u002F\u002Fnextjs.org\u002F) - Our frontend is a Next.JS app and is hosted on [Vercel](https:\u002F\u002Fvercel.com\u002F).\n- [SWR](https:\u002F\u002Fswr.vercel.app\u002F) - We do all our data fetching on the web using SWR.\n- [Stitches](https:\u002F\u002Fstitches.dev\u002F) - We use Stitches on the frontend to style our components.\n- [Mozilla Readability](https:\u002F\u002Fgithub.com\u002Fmozilla\u002Freadability) - We use Mozilla's Readability library to make pages easier to read.\n- [Swift GraphQL](https:\u002F\u002Fwww.swift-graphql.com\u002F) - We generate our GraphQL queries on iOS using Swift GraphQL.\n- [Apollo GraphQL](https:\u002F\u002Fwww.apollographql.com\u002F) - We generate our GraphQL queries on Android using Apollo GraphQL.\n- [Radix](https:\u002F\u002Fwww.radix-ui.com\u002F) - We use Radix UI's components on our frontend.\n- [PDF.js](https:\u002F\u002Fgithub.com\u002Fmozilla\u002Fpdf.js) - PDF.js is used to have open source pdf functionality. \n- And many more awesome libraries, just checkout our package files to see what we are using.\n\n## Shoutouts: Community 🧑‍🤝‍🧑\n- [Poudlardo](https:\u002F\u002Fgithub.com\u002FPoudlardo) - Providing a Podman-compose file for self-hosting.\n- [leopku](https:\u002F\u002Fgithub.com\u002Fleopku) - Fixing build issues with v3 manifest\n- [travisemslander-fn](https:\u002F\u002Fgithub.com\u002Ftravisemslander-fn) - Providing fixes for SNS Emails.\n- [andrew-craig](https:\u002F\u002Fgithub.com\u002Fandrew-craig) & [lukebtaylor](https:\u002F\u002Fgithub.com\u002Flukebtaylor) - Providing fixes for emails.\n- [Benature](https:\u002F\u002Fgithub.com\u002FBenature) - Providing fixes for Minio\n- [rbarbazz](https:\u002F\u002Fgithub.com\u002Frbarbazz) - Providing a HTML toggle for notes.\n- [pgrosslicht](https:\u002F\u002Fgithub.com\u002Fpgrosslicht) - various fixes to iOs Applications\n- [Adil, m1xxos, Mike Baker, David Adams, Russ Taylor,  William Theaker, keumky2](https:\u002F\u002Fgithub.com\u002Fomnivore-app\u002Fomnivore\u002Fcommit\u002F4e582fb55db5537a462061c9eb0805b482cc9a00) - Who contributed to the initial commit for self-hosting, which was squashed - unfortunately losing the history in the process.\n- mollydot on Discord - For continuing to moderate, and be an active part of our community!\n\nAnd of course... \n- [jacksonh](https:\u002F\u002Fgithub.com\u002Fjacksonh), [sywhb](https:\u002F\u002Fgithub.com\u002Fsywhb) and [satindar](https:\u002F\u002Fgithub.com\u002Fsatindar) - who provided the initial repo, and core functionality. \n\nand many more who contributed in the past. If you feel like your name is missing from this list, please contact me (Podginator) via our Discord. \n\n\n## Importing Libraries\n\nCheck out our [docs](https:\u002F\u002Fdocs.omnivore.work\u002Fusing\u002Fimporting.html) for information on importing your data from other apps.\n\n## How to setup local development :computer:\n\nThe easiest way to get started with local development is to use `docker compose up`. This will start a postgres container, our web frontend, an API server, and our content fetching microservice.\n\n### Requirements for development\n\nOmnivore is written in TypeScript and JavaScript.\n\n- [Node.js](https:\u002F\u002Fnodejs.org\u002F) (v18.16) and [Yarn](https:\u002F\u002Fclassic.yarnpkg.com\u002Flang\u002Fen\u002F) -- Versions are managed by [Volta](https:\u002F\u002Fdocs.volta.sh\u002Fguide\u002Fgetting-started).\n- [Chromium](https:\u002F\u002Fwww.chromium.org\u002Fchromium-projects\u002F) -- See below for installation info.\n\n### Running the web and API services\n\n#### 1. Start docker compose\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fomnivore-app\u002Fomnivore\ncd omnivore\ndocker compose up\n```\n\nThis will start postgres, initialize the database, and start the web and api services.\n\n#### 2. Open the browser\n\nOpen \u003Chttp:\u002F\u002Flocalhost:3000> and confirm Omnivore is running\n\n#### 3. Login with the test account\n\nDuring database setup docker compose creates an account `demo@omnivore.work`, password: `demo_password`.\n\nGo to \u003Chttp:\u002F\u002Flocalhost:3000\u002F> in your browser and choose `Continue with Email` to login.\n\n### Frontend Development\n\nIf you want to work on just the frontend of Omnivore you can run the backend services\nwith docker compose and the frontend locally:\n\n```bash\ndocker compose up api content-fetch\ncd packages\u002Fweb\ncp .env.template .env.local\nyarn dev\n```\n\nYou will need to configure some values in the new `.env.local` file. These are\nthe values for running the `web` service directly on your host machine and\nrunning `api` and `content-fetch` within docker:\n\n```sh\nNEXT_PUBLIC_BASE_URL=http:\u002F\u002Flocalhost:3000\nNEXT_PUBLIC_HIGHLIGHTS_BASE_URL=http:\u002F\u002Flocalhost:3000\nNEXT_PUBLIC_LOCAL_BASE_URL=http:\u002F\u002Flocalhost:3000\nNEXT_PUBLIC_SERVER_BASE_URL=http:\u002F\u002Flocalhost:4000\nNEXT_PUBLIC_LOCAL_SERVER_BASE_URL=http:\u002F\u002Flocalhost:4000\n```\n\n### Running the puppeteer-parse service outside of Docker\n\nTo save pages you need to run the `puppeteer-parse` service.\n\n#### 1. Install and configure Chromium\n\n```bash\nbrew install chromium --no-quarantine\nexport PUPPETEER_SKIP_CHROMIUM_DOWNLOAD=true\nexport CHROMIUM_PATH=`which chromium`\n```\n\n#### 2. Navigate to the service directory, setup your env file, and install dependencies\n\n```bash\ncd packages\u002Fpuppeteer-parse\ncp .env.example .env\nyarn\n```\n\n#### 3. Start the service\n\n```bash\nyarn start\n```\n\nThis will start the puppeteer-parse service on port 9090.\n\nIn your browser go to \u003Chttp:\u002F\u002Flocalhost:3000\u002Fhome>, click the `Add Link` button,\nand enter a URL such as `https:\u002F\u002Fblog.omnivore.work\u002Fp\u002Fgetting-started-with-omnivore`.\n\nYou should see a Chromium window open and navigate to your link. When the service\nis done fetching your content you will see it in your library.\n\n## How to deploy to your own server\n\nA guide for running a self hosted server can be found [here](.\u002Fself-hosting\u002FGUIDE.md)\n\n## License\n\nOmnivore and our extensions to Readability.js are under the AGPL-3.0 license.\n","Omnivore 是一个面向阅读爱好者的开源稍后读解决方案。它支持高亮、笔记、搜索和分享等核心功能，具备全键盘导航，并能自动保存长文章的阅读进度。此外，Omnivore 支持通过电子邮件添加新闻通讯文章（包括 Substack 支持）、PDF 文件阅读以及离线访问。该项目使用 TypeScript 编写，提供 Web 应用、iOS 和 Android 原生应用及浏览器扩展等多种访问方式。特别地，Omnivore 还集成了 Logseq 和 Obsidian 等知识管理工具的支持。适用于需要集中管理和深度阅读网络内容的个人或团队。","2026-06-11 02:56:36","top_language"]