Black Lives Matter. Support the Equal Justice Initiative and read our statement here.
Polar Bookshelf

Polar Bookshelf

Polar is a personal knowledge repository for PDF and web content supporting incremental reading and document annotation.

Polar Bookshelf

Polar is personal knowledge repository which supports advanced features like incremental reading, annotation, comments, and spaced repetition. It supports reading PDF and the web content and was created using the Electron framework and PDF.js


  • PDF support We have first-class PDF support thanks to PDF.js. PDFs work well when reading content in book format or when reading scientific research which is often stored as PDF.

  • Captured Web Pages Download HTML content and save them as offline documents which can be annotated.

  • Pagemarks Easily keep track of what you're reading and the progress of each document.

  • Text Highlights Highlight text in PDF and web pages.

  • Area Highlights Capture a region of the page as a highlight which can be a chart, figure, infographic, etc.

  • Local Storage All content is stored locally.

  • Standards Based All content is stored as JSON in a well documented schema. Annotations never mutate the original content.

  • Portable Run across any platform. Linux, MacOS, and Windows supported.


Packages for Windows, MacOS, and Linux are available on the downloads page.

We also have a CHANGELOG available if you're interested into what went into each release.


We have both a Discord group and Reddit group if you want to discuss Polar.

If it's a very technical issue it might be best to create a Github Issue.

Personal Knowledge Repository

Polar is a document manager for PDF and web content as well as a personal knowledge repository.

Polar allows you to keep all important reading material in one place including annotations and flashcards for spaced repetition.

It supports for features like pagemarks, text highlights, and progress tracking by keeping track of how much you've read including restoring pagemarks when you re-open documents.

Pagemarks are a new concept for tracking your reading inspired from incremental reading. They allow suspend and resume of reading for weeks and months in the future until you're ready to resume, without losing your place.

Since you can create multiple pagemarks they work even if you jump around in a book (which is often in technical or research work).

Web Content

PDF is an excellent document format but we've found that many HTML pages don't convert to PDF well since they were not intended to be printed.

Text Highlights

Text Highlight

Text highlights allow you to work with content like you're using a text highlighter in a book.

Area Highlights

Area Highlight

Area highlights allow you highlight a figure, infographic, or anything visual in a document.

Create an area highlight.

Right click on a page and select "Create area highlight"

Delete an highlight.

Right click the highlight and select delete.



Flashcards allow you to retain information long term by using a spaced repetition system like Anki to continually re-train yourself on material you want to retain.

Flashcards can be created by right clicking an annotation and selecting "Create Flashcard". The resulting flashcards are stored as annotations in your repository.

To specify the Anki deck for a document, add a tag starting with deck:. Slashes are used to specify subdecks. For instance, to set a document to the Anki deck ML::100PageMLBook, use the Polar tag deck:ML/100PageMLBook.

Build from source

Install NodeJS and npm for your platform.

To run:

Install latest stable node and npm versions.

You can check which version you need at

... then run:

$ git clone
$ cd polar-bookshelf
$ npm install && npm run-script compile && npm start


This project exists thanks to all the people who contribute.


Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]


Polar is distributed under the GPLv3.

PDF.js is available under the Apache License. Electron is released under the MIT License. Rest of the code is MIT-licensed.


Something missing? Edit this app.

Keyboard Shortcuts

Key Action
/ Focus the search bar
Esc Focus the search bar and cleans it
Select the next search result
Select the previous search result
Enter Open the selected search result
cmdEnter Ctrl+Enter Open the selected search result in a new tab