# Readwise Reader Documentation
> This document contains all documentation content from Readwise Reader, providing comprehensive information about features, guides, and frequently asked questions for the Reader app. This file includes 41 documentation pages.
## Reader API Documentation
The Reader API just supports saving new documents to Reader and fetching your documents. We will add more endpoints in the near future. If you have any questions, please [reach out :)](mailto:api@readwise.io)
Looking for the API docs for the original Readwise? [See here](/readwise/docs/api).
## Authentication
Set a header with key "Authorization" and value: "Token XXX" where XXX is your Readwise access token. You (or your users) can get that from here: [readwise.io/access_token](https://readwise.io/access_token)
If you want to check that a token is valid, just make a GET request to `https://readwise.io/api/v2/auth/` with the above header. You should receive a `204` response.
## Rate Limiting
The default base rate is 20 requests per minute (per access token) but the `Document CREATE` and `Document UPDATE` endpoints have higher limits of 50 requests per minute (per access token). You can check `Retry-After` header in the 429 response to get the number of seconds to wait for.
---
## Document CREATE
**Request**: `POST` to `https://readwise.io/api/v3/save/`
**Parameters:**
A JSON object with the following keys:
| Key | Type | Description | Required |
|-----|------|-------------|----------|
| url | string | The document's unique URL. If you don't have one, you can provide a made up value such as `https://yourapp.com#document1` | yes |
| html | string | The document's content, in valid html (see examples). If you don't provide this, we will try to scrape the URL you provided to fetch html from the open web. | no |
| should_clean_html | boolean | Only valid when `html` is provided. Pass `true` to have us automatically clean the html and parse the metadata (title/author) of the document for you. By default, this option is `false`. | no |
| title | string | The document's title, it will overwrite the original title of the document | no |
| author | string | The document's author, it will overwrite the original author (if found during the parsing step) | no |
| summary | string | Summary of the document | no |
| published_date | date | A datetime representing when the document was published in the ISO 8601 format; default timezone is UTC. Example: `"2020-07-14T20:11:24+00:00"` | no |
| image_url | string | An image URL to use as cover image | no |
| location | string | One of: `new`, `later`, `archive` or `feed`. Default is `new`. Represents the initial location of the document (previously called `triage_status`). Note: if you try to use a location the user doesn't have enabled in their settings, this value will be set to their default location. | no |
| category | string | One of: `article`, `email`, `rss`, `highlight`, `note`, `pdf`, `epub`, `tweet` or `video`. Default is guessed based on the URL, usually `article`. | no |
| saved_using | string | This value represents the source of the document | no |
| tags | list | A list of strings containing tags, example: `["tag1", "tag2"]` | no |
| notes | string | A top-level note of the document | no |
**Response:**
- Status code: `201` or `200` if document already exist
- Created document details:
```json
{
"id": "0000ffff2222eeee3333dddd4444",
"url": "https://read.readwise.io/new/read/0000ffff2222eeee3333dddd4444",
}
```
**JavaScript Example:**
```javascript
$.ajax({
url: 'https://readwise.io/api/v3/save/',
type: 'POST',
contentType: 'application/json',
beforeSend: function (xhr) {
xhr.setRequestHeader('Authorization', 'Token XXX');
},
data: JSON.stringify({
"url": "https://example.com/article/",
"html": "
This article is awesome
content here!
",
"tags": ["tag1", "tag2"]
}),
success: function (result) {console.log(result)},
error: function (error) {console.log(error)},
});
```
**Python Example:**
```python
import requests
requests.post(
url="https://readwise.io/api/v3/save/",
headers={"Authorization": "Token XXX"},
json={
"url": "https://example.com/article/",
# No html is provided, so the url will be scraped to get the document's content.
"tags": ["tag3", "tag4"]
}
)
```
**Bash Example:**
```bash
$ curl -v https://readwise.io/api/v3/save/ -H "Authorization: Token XXX" -X POST -d '{"url": "https://example.com/article/"}' -H "Content-Type: application/json"
```
---
## Document LIST
**Request**: `GET` to `https://readwise.io/api/v3/list/`
**Parameters:**
Usual query params:
| Key | Type | Description | Required |
|-----|------|-------------|----------|
| id | string | The document's unique id. Using this parameter it will return just one document, if found. | no |
| updatedAfter | string (formatted as ISO 8601 date) | Fetch only documents updated after this date | no |
| location | string | The document's location, could be one of: `new`, `later`, `shortlist`, `archive`, `feed` | no |
| category | string | The document's category, could be one of: `article`, `email`, `rss`, `highlight`, `note`, `pdf`, `epub`, `tweet`, `video` | no |
| tag | string | The document's tag key. Pass up to 5 `tag` parameters to find documents having all the tags listed. Pass empty value (`?tag=`) to find untagged documents. Use the [Tag LIST](#tag-list) endpoint to retrieve all tags available. | no |
| pageCursor | string | A string returned by a previous request to this endpoint. Use it to get the next page of documents if there are too many for one request. | no |
| withHtmlContent | boolean | Include the `html_content` field in each document's data. Please note that enabling this feature may slightly increase request processing time. Could be one of: `true`, `false`. | no |
| withRawSourceUrl | boolean | Include the `raw_source_url` field in each document's data, containing a direct Amazon S3 link to the raw document source file. The link is empty for non-distributable documents, like Wisereads previews. The link is valid for one hour. Please note that enabling this feature may slightly increase request processing time. Could be one of: `true`, `false`. | no |
**Response:**
- Status code: `200`
- Please keep in mind that both highlights and notes made in Reader are also considered Documents. Highlights and notes will have `parent_id` set, which is the Document id of the article/book/etc and highlight that they belong to, respectively.
- All dates are UTC unless otherwise stated.
- List of documents:
```json
{
"count": 2304,
"nextPageCursor": "01gm6kjzabcd609yepjrmcgz8a",
"results": [
{
"id": "01gwfvp9pyaabcdgmx14f6ha0",
"url": "https://readiwise.io/feed/read/01gwfvp9pyaabcdgmx14f6ha0",
"source_url": "https://www.driverlesscrocodile.com/values/ends-and-meanings-3-alasdair-macintyre-virtue-mortality-and-story-in-heroic-societies/",
"title": "Ends and Meanings (3): Alasdair MacIntyre virtue, mortality and story in heroic societies",
"author": "Stuart Patience",
"source": "Reader RSS",
"category": "rss",
"location": "feed",
"tags": {},
"site_name": "Driverless Crocodile",
"word_count": 819,
"reading_time": "4 mins",
"created_at": "2023-03-26T21:02:51.618751+00:00",
"updated_at": "2023-03-26T21:02:55.453827+00:00",
"notes": "",
"published_date": "2023-03-22",
"summary": "Without … a place in the social order, ...",
"image_url": "https://i0.wp.com/www.driverlesscrocodile.com/wp-content/uploads/2019/10/cropped-driverlesscrocodile-icon-e1571123201159-4.jpg?fit=32%2C32&ssl=1",
"parent_id": null,
"reading_progress": 0.15,
"first_opened_at": null,
"last_opened_at": null,
"saved_at": "2023-03-26T21:02:51.618751+00:00",
"last_moved_at": "2023-03-27T21:03:52.118752+00:00",
},
{
"id": "01gkqtdz9xabcd5gt96khreyb",
"url": "https://readiwise.io/new/read/01gkqtdz9xabcd5gt96khreyb",
"source_url": "https://www.vanityfair.com/hollywood/2017/08/the-story-of-the-ducktales-theme-music",
"title": "The Story of the DuckTales Theme, History's Catchiest Single Minute of Music",
"author": "Darryn King",
"source": "Reader add from import URL",
"category": "article",
"location": "new",
"tags": {},
"site_name": "Vanity Fair",
"word_count": 2678,
"reading_time": "11 mins",
"created_at": "2022-12-08T02:53:29.639650+00:00",
"updated_at": "2022-12-13T20:37:42.544298+00:00",
"published_date": "2017-08-09",
"notes": "A sample note",
"summary": "A woo-hoo heard around the world.",
"image_url": "https://media.vanityfair.com/photos/598b1452f7f0a433bd4d149c/16:9/w_1280,c_limit/t-ducktales-woohoo-song.png",
"parent_id": null,
"reading_progress": 0.5,
"first_opened_at": "2023-03-26T21:02:51.618751+00:00",
"last_opened_at": "2023-03-29T21:02:51.618751+00:00",
"saved_at": "2023-03-26T21:02:51.618751+00:00",
"last_moved_at": "2023-03-27T21:03:52.118752+00:00",
},
{
"id": "01gkqt8nbms4t698abcdvcswvf",
"url": "https://readwise.io/new/read/01gkqt8nbms4t698abcdvcswvf",
"source_url": "https://www.vanityfair.com/news/2022/10/covid-origins-investigation-wuhan-lab",
"title": "COVID-19 Origins: Investigating a \"Complex and Grave Situation\" Inside a Wuhan Lab",
"author": "Condé Nast",
"source": "Reader add from import URL",
"category": "article",
"location": "new",
"tags": {},
"site_name": "Vanity Fair",
"word_count": 9601,
"reading_time": "37 mins",
"created_at": "2022-12-08T02:50:35.662027+00:00",
"updated_at": "2023-03-22T13:29:41.827456+00:00",
"published_date": "2022-10-28",
"notes": "",
"summary": "The Wuhan Institute of Virology, the cutting-edge ...",
"image_url": "https://media.vanityfair.com/photos/63599642578d980751943b65/16:9/w_1280,c_limit/vf-1022-covid-trackers-site-story.jpg",
"parent_id": null,
"reading_progress": 0,
"first_opened_at": "2023-03-26T21:02:51.618751+00:00",
"last_opened_at": "2023-03-26T21:02:51.618751+00:00",
"saved_at": "2023-03-26T21:02:51.618751+00:00",
"last_moved_at": "2023-03-27T21:03:52.118752+00:00",
}
]
}
```
**JavaScript Example:**
```javascript
const token = "XXX"; // use your access token here
const fetchDocumentListApi = async (updatedAfter=null, location=null) => {
let fullData = [];
let nextPageCursor = null;
while (true) {
const queryParams = new URLSearchParams();
if (nextPageCursor) {
queryParams.append('pageCursor', nextPageCursor);
}
if (updatedAfter) {
queryParams.append('updatedAfter', updatedAfter);
}
if (location) {
queryParams.append('location', location);
}
console.log('Making export api request with params ' + queryParams.toString());
const response = await fetch('https://readwise.io/api/v3/list/?' + queryParams.toString(), {
method: 'GET',
headers: {
Authorization: `Token ${token}`,
},
});
const responseJson = await response.json();
fullData.push(...responseJson['results']);
nextPageCursor = responseJson['nextPageCursor'];
if (!nextPageCursor) {
break;
}
}
return fullData;
};
// Get all of a user's documents from all time
const allData = await fetchDocumentListApi();
// Get all of a user's archived documents
const archivedData = await fetchDocumentListApi(null, 'archive');
// Later, if you want to get new documents updated after some date, do this:
const docsAfterDate = new Date(Date.now() - 24 * 60 * 60 * 1000); // use your own stored date
const newData = await fetchDocumentListApi(docsAfterDate.toISOString());
```
**Python Example:**
```python
import datetime
import requests # This may need to be installed from pip
token = 'XXX'
def fetch_reader_document_list_api(updated_after=None, location=None):
full_data = []
next_page_cursor = None
while True:
params = {}
if next_page_cursor:
params['pageCursor'] = next_page_cursor
if updated_after:
params['updatedAfter'] = updated_after
if location:
params['location'] = location
print("Making export api request with params " + str(params) + "...")
response = requests.get(
url="https://readwise.io/api/v3/list/",
params=params,
headers={"Authorization": f"Token {token}"}, verify=False
)
full_data.extend(response.json()['results'])
next_page_cursor = response.json().get('nextPageCursor')
if not next_page_cursor:
break
return full_data
# Get all of a user's documents from all time
all_data = fetch_reader_document_list_api()
# Get all of a user's archived documents
archived_data = fetch_reader_document_list_api(location='archive')
# Later, if you want to get new documents updated after some date, do this:
docs_after_date = datetime.datetime.now() - datetime.timedelta(days=1) # use your own stored date
new_data = fetch_reader_document_list_api(docs_after_date.isoformat())
```
**Bash Example:**
```bash
$ curl -v https://readwise.io/api/v3/list/?location=later -H "Authorization: Token XXX" -H "Content-Type: application/json"
```
---
## Document UPDATE
Use this API to update specific fields from the list below. Fields omitted from the request will remain unchanged.
**Request**: `PATCH` to `https://readwise.io/api/v3/update//`
**Parameters:**
A JSON object with the following keys:
| Key | Type | Description | Required |
|-----|------|-------------|----------|
| title | string | The document's title, it will overwrite the original title of the document | no |
| author | string | The document's author, it will overwrite the original author (if found during the parsing step) | no |
| summary | string | Summary of the document | no |
| published_date | date | A datetime representing when the document was published in the ISO 8601 format; default timezone is UTC. Example: `"2020-07-14T20:11:24+00:00"` | no |
| image_url | string | An image URL to use as cover image | no |
| location | string | One of: `new`, `later`, `archive` or `feed`. Represents the current location of the document (previously called `triage_status`). Note: if you try to use a location the user doesn't have enabled in their settings, this value will be set to their default location. | no |
| category | string | One of: `article`, `email`, `rss`, `highlight`, `note`, `pdf`, `epub`, `tweet` or `video`. | no |
| tags | list | A list of strings containing tags, example: `["tag1", "tag2"]` | no |
**Response:**
- Status code: `200`
- Updated document details:
```json
{
"id": "0000ffff2222eeee3333dddd4444",
"url": "https://read.readwise.io/new/read/0000ffff2222eeee3333dddd4444",
}
```
**JavaScript Example:**
```javascript
$.ajax({
url: 'https://readwise.io/api/v3/update/0000ffff2222eeee3333dddd4444',
type: 'PATCH',
contentType: 'application/json',
beforeSend: function (xhr) {
xhr.setRequestHeader('Authorization', 'Token XXX');
},
data: JSON.stringify({
"title": "Updated title",
"location": "new"
}),
success: function (result) {console.log(result)},
error: function (error) {console.log(error)},
});
```
**Python Example:**
```python
import requests
requests.patch(
url="https://readwise.io/api/v3/update/0000ffff2222eeee3333dddd4444",
headers={"Authorization": "Token XXX"},
json={
"title": "Updated title",
"location": "new",
}
)
```
**Bash Example:**
```bash
$ curl -v https://readwise.io/api/v3/update/0000ffff2222eeee3333dddd4444 -H "Authorization: Token XXX" -X PATCH -d '{"title": "Updated title"}' -H "Content-Type: application/json"
```
---
## Document DELETE
**Request**: `DELETE` to `https://readwise.io/api/v3/delete//`
**Response:**
- Status code: `204`
**JavaScript Example:**
```javascript
$.ajax({
url: 'https://readwise.io/api/v3/delete/0000ffff2222eeee3333dddd4444',
type: 'DELETE',
beforeSend: function (xhr) {
xhr.setRequestHeader('Authorization', 'Token XXX');
},
success: function (result) {console.log(result)},
error: function (error) {console.log(error)},
});
```
**Python Example:**
```python
import requests
requests.delete(
url="https://readwise.io/api/v3/delete/0000ffff2222eeee3333dddd4444",
headers={"Authorization": "Token XXX"},
)
```
**Bash Example:**
```bash
$ curl -v https://readwise.io/api/v3/delete/0000ffff2222eeee3333dddd4444 -H "Authorization: Token XXX" -X DELETE
```
---
## Tag LIST
**Request**: `GET` to `https://readwise.io/api/v3/tags/`
**Parameters:**
Usual query params:
| Key | Type | Description | Required |
|-----|------|-------------|----------|
| pageCursor | string | A string returned by a previous request to this endpoint. Use it to get the next page of tags if there are too many for one request. | no |
**Response:**
- Status code: `200`
- List of document tags:
```json
{
"count": 2,
"nextPageCursor": null,
"results": [
{
"key": "first-tag",
"name": "First tag"
},
{
"key": "second-tag",
"name": "Second tag"
}
]
}
```
**JavaScript Example:**
```javascript
$.ajax({
url: 'https://readwise.io/api/v3/tags/',
type: 'GET',
beforeSend: function (xhr) {
xhr.setRequestHeader('Authorization', 'Token XXX');
},
success: function (result) {console.log(result)},
error: function (error) {console.log(error)},
});
```
**Python Example:**
```python
import requests
requests.get(
url="https://readwise.io/api/v3/tags/",
headers={"Authorization": "Token XXX"},
)
```
**Bash Example:**
```bash
$ curl -v https://readwise.io/api/v3/tags/ -H "Authorization: Token XXX"
```
---
## Action Tags
## What is an Action Tag?
Action tags are highlight notes that use a specific syntax to perform actions on the associated highlight. All action tags begin with a `.` character, and their functionality effects how the highlights appear in Readwise.
## How can I create headings between my highlights?
In Reader, headings are added to the Notebook view (`Shift + 1`) automatically when they’re detected within the document’s content. However, if you want to see those headings in Readwise as well, you’ll need to use an action tag. To do so, highlight the text that you want to appear as a heading, then add a note (`N`) with the text `.h1`. This will create a top-level heading with the text of the highlight. To create nested headings, you can use an `.h2` tag and so on.
Note that you can start with lower level headings (e.g. `.h3`) and they’ll still appear in Readwise, but for the table of contents to appear on the left side of the page, you’ll need to start with at least one `.h1` tag.
## How can I combine two disparate pieces of text into a single highlight?
Oftentimes, the most salient parts of a paragraph are the first and last sentence, which can be frustrating when the author includes a bunch of fluff in between them that just bog you down when reviewing the highlight later. To fix this, you can use the concatenation action tag. Simply add a note (`N`) with the text `.c1` to the first highlight, then `.c2` to the next highlight. When the highlights sync to Readwise, they’ll appear as a single highlight with an ellipse (`…`) between the two pieces of text.
You can string as many highlights together in this way as you’d like by continuing on to `.c3`, `.c4`, etc. A tag of `.c1` will always begin a new concatenation string.
## How can I create a Q&A mastery card while reading?
You can use action tags to create a Q&A [mastery card](https://readwise.io/mastery) in Readwise associated with a particular highlight. To do so, add a note (`N`) to the highlight using the syntax `.qa [QUESTION?][ANSWER]`.
## Can I add a regular note to a highlight with an action tag?
Yes! To add a note to a highlight that has an action tag, simply add a line break after the action tag. You can do this by pressing `Shift + Enter` in the note field (`Enter` by itself will save the note). For example, if you wanted to add a brief description of a section’s content with a heading, you could do something like `.h1 ⏎ This section is about how Topic A relates to Topic X.` The note text will then appear below the heading in Readwise.
---
## Adding Content to Reader
## How do I use the browser extensions to save articles to Reader?
The Reader browser extension performs two functions: first, saving articles to Reader and second (optionally), highlighting the open web. To save a document to Reader, tap the icon in the browser bar or use the keyboard shortcut `alt + R`. (You can change the keyboard binding in the extension's options.) This will save a clean, readable version of the document to your Reader inbox.
Once you've tapped the icon, you can optionally begin highlighting on the website itself, or you can click the **Open article in Reader** button to switch the Reader app and take your highlights there.
The browser extension is the most robust way to save documents to Reader because the extension gets the underlying content rendered in your browser as opposed to just a URL.
## How do I use the mobile app to save articles to Reader?
Once you have the mobile app installed on your iOS or Android device, you can share documents to Reader using your mobile operating system's share sheet.
If you don't see Reader among the apps you can share to, try restarting your device. Sometimes iOS has a bug where new apps do not immediately appear in the share sheet, but a restart should clear that up.
Saving from Safari is the best way to save documents to Reader on mobile because iOS gives our app access to the underlying content in addition to the URL resulting in better parsing.
## How do I install the Reader iOS app?
You can install the Reader iOS app [from the App Store](https://apps.apple.com/us/app/readwise-reader/id1567599761). This will work on any device that can run iOS 13.0 or later (iPhone, iPad, etc).
## How do I install the Reader Android app?
You can install the Reader Android app using this link [from the Google Play Store](https://play.google.com/store/apps/details?id=com.readermobile).
Note that this version of Reader will also work on e-ink devices that run Android, such as the Onyx BOOX.
## How do I install the Reader Chrome extension?
You can install the Reader Chrome extension [from the Chrome web store](https://chrome.google.com/webstore/detail/jjhefcfhmnkfeepcpnilbbkaadhngkbi). The Reader browser extension is compatible with any browser built using Chromium, including Brave, Edge, and Arc.
## My Chrome extension is asking for an API token. What do I do?
This is not actually the official Chrome extension made by Readwise, but rather an extension made by someone in the community. You should not use this extension with Reader. Instead, install the official extension [from the Chrome web store](https://chrome.google.com/webstore/detail/jjhefcfhmnkfeepcpnilbbkaadhngkbi).
## How do I install the Reader Firefox extension?
You can install the Reader Firefox [from the Firefox Add-Ons](https://addons.mozilla.org/en-US/firefox/addon/readwise-highlighter/).
## How do I install the Reader Safari extension?
You can install the Reader Safari extension [from the App Store](https://apps.apple.com/app/save-to-reader/id1640236961).
## How do I use a keyboard shortcut to save documents to Reader using the browser extension?
By default, you should be able to tap `Alt + R` to save a document to Reader using the browser extension. If you're using Chrome or a Chromium-based browser, you can edit this shortcut for the browser extension here: [chrome://extensions/shortcuts](chrome://extensions/shortcuts).
## What's the difference between Library and Feed?
Reader has two broad sections: Library and Feed. Library is further subdivided into a handful of locations like Inbox, Later, Archive, and Shortlist (depending on your Library configuration). Library is where things go that you manually curate for yourself and choose to save permanently, such as articles saved from the browser extension or uploaded EPUB documents.
Feed is where things go that are automatically pushed to you, such as RSS feed content, and it's divided into two locations: Unseen and Seen. As you find documents in Feed that you want to read later and/or permanently save, you can move them to your Library.
## How do I upload an OPML file to import all my RSS feeds from my existing RSS feed reader such as Feedly, Inoreader, Reeder, etc?
You can upload OPML files to Reader by dragging the OPML file on top of the web app or opening the upload dialog (keyboard shortcut: `U`) and selecting the file.
## How do I subscribe or unsubscribe to feeds in Reader?
You can subscribe to RSS feeds inside Reader in multiple ways.
- First, whenever you save a document to Reader, Reader scans the domain for the presence of an RSS feed. If it detects an associated RSS feed, a `Subscribe` button will appear in the right sidebar on both web and mobile. You can tap this `Subscribe` button to add this RSS feed to your account. If you're already subscribed to the source, this `Subscribe` button will become `Unsubscribe`.
- Second, you can navigate to the [Manage feeds section](https://read.readwise.io/feed/sources) of the web app and click `Add feeds` (`Shift + A`) to search for or manually input a domain or RSS feed. On mobile, you can tap the "..." icon in the rop right of the **Feeds** view, then tap the **Add feed** button.
- Third, you can upload an OPML file of RSS feeds to Reader by exporting the file from an existing feed reader, dragging the OPML file on top of the web app or opening the upload dialog (keyboard shortcut: `U`) and selecting the file. This is typically how you would quickly migrate from an existing feed reader such as Feedly, Inoreader, Reeder, Feedbin, etc.
- Finally, you can subscribe in bulk to suggested feeds from the "Suggested" tab on the [Manage feeds section](https://read.readwise.io/feed/sources) of the web app. This tab contains all the RSS feeds detected on documents you've saved to Reader. If you're not a pre-existing RSS power user, we recommend subscribing to all feeds contained in the "High signal feeds" section and then pruning back sources you don't like over time.
## How do I upload files to Reader?
You can upload a variety of different file types to Reader, including PDFs, EPUBs, and OPML files. To upload a file, drag it on top of the web app, or open the Upload dialog (keyboard shortcut: `U`) and select the file.
On mobile, use the "share" action from within your device's Files app and find the option in the share sheet labeled "Upload [file] to Reader".
## How do I save Twitter threads to Reader?
You can save Twitter threads to Reader and they'll compile into beautiful, blog-like documents. To save a Twitter thread, you can use the browser extension while viewing the page of any tweet in the thread. (Note that this will only save tweets posted by the OP in their original thread, not any replies from other users.)
If you're on mobile, you can use the share sheet to share any tweet of the thread to Reader.

## How do I configure where individual tweets and Twitter threads go between Reader and Readwise?
Users have many different preferences on where they want to save individual tweets and threads. By default, we make the assumption that individual tweets are like highlights and therefore go into Readwise, whereas Twitter threads are like articles and therefore go into Reader. If you want to change any of this, you can customize the Twitter behavior on the [Integrations page](https://read.readwise.io/integrations).
## How do I add Twitter lists to Reader?
You can subscribe to public Twitter Lists in Reader as if they were an RSS feed. It's a great way to separate the good parts of Twitter (high signal information/entertainment) from the bad parts (phone addiction?). Once you're subscribed to a Twitter List, you'll start receiving two digests per day in the AM and the PM containing all the new tweets over the past 12 hours. To subscribe to a Twitter List, find the URL of a public list and [subscribe to it](https://read.readwise.io/add-to-feed) in the Feed section of Reader.
## Can I read my Kindle/Google/Apple/Kobo/etc books in Reader?
If you purchased a book on a different platform that doesn't provide an option to download a DRM-free EPUB file, you won't be able to import that book to Reader. Those other platforms intend for the books they sell to be read within their own ecosystem (e.g. Amazon wants you to read on a Kindle or in their app), so they don't provide a way for the books to be exported to third-party services like Reader.
For books that are in the public domain, you can find many places online to download EPUB versions. We like [Standard Ebooks](https://standardebooks.org/) for their dedication to quality proofreading and modern formatting.
---
## Appearance
## Can I customize the appearance of Reader?
You can customize the text formatting on both web and mobile. Click the `Aa` icon on web, or tap into the `...` menu and select **Appearance** on mobile, to access a variety of settings:
- *Typeface:* Select from a variety of serif and sans serif typefaces, including Atkinson Hyperlegible and OpenDyslexic.
- *Font size:* The default is 20px, but this is adjustable down to 14px and up to 80px. (`Shift + -` to decrease, `Shift + =` to increase.)
- *Line spacing:* Change this to adjust the amount of blank space between each line of text. Defaults to 1.4. (`Shift + :` to decrease, `Shift + "` to increase.)
- *Line width (web only):* Adjusts the maximum width of the document content. Defaults to medium. (Web only. `Shift + ,` to decrease, `Shift + .` to increase.)
## Does Reader have dark mode?
Reader has both light mode and dark mode, as well as an "auto" setting to detect the theme of the operating system. You can change the mode at any time from the **Appearance** menu, or you can use the keyboard shortcut `Cmd/Ctrl + Option + T`.
## Can I change the app icon?
If you're using Reader on iOS, you can customize the app icon. To change which icon the app uses, go to **Account settings** > **Change app icon** and select the icon that you prefer.
## How can I enable pagination for reading ebooks and other long documents?
You can toggle this feature on or off from the Appearance panel by tapping into the `...` menu in the bottom right corner and selecting **Appearance**.
From there, you can select **Paged scroll** to turn on pagination.
To change the default behavior of this feature, go to **Account settings** > **Paged scrolling defaults** and toggle "Default to paged scrolling" on or off for each document type.
By default, EPUBs will have this option turned on, but you can adjust to suit your own preferences and the settings will be saved for any document you open on the same device.
## Why is it called "paged scroll"? Why can't I swipe sideways to turn pages?
During pagination's development, we tried repeatedly to find a way to implement the UX of horizontal pagination without compromising other core functionality. Although familiar, horizontal page-flipping disrupts the user experience for a number of features, like highlighting text across pages (an often-frustrating interaction in other reading apps) or the ability to open Reader's side panels with swipe gestures.
To address these issues, we developed a vertical pagination system that allows seamless text selection and preserves swipe gestures for navigation. Although our team hotly debated the idea at first, the benefits of vertical pagination proved undeniable and we opted to implement Reader's pagination using the vertical "paged scroll" paradigm.
That said, we understand there's a lot of muscle memory in the traditional sideways swipe. With that in mind, we made sure to implement a simple "tap to turn the page" functionality that helps it feel more like other apps that use a sideways swipe. While in paged scroll mode, you can use a single tap on the left or right margins of the page to flip backward or forward.
## Is there a way to make the reading view nicer for long documents and ebooks?
Yes! "Long-form reading view" is a dedicated reading layout that hides Reader's action-heavy bottom bar and elevates UI elements like reading progress and appearance settings.
This setting is turned on for EPUBs by default, but you can turn it on or off for each document type in the **Account settings** > **Long-form reading view** menu.
---
## Daily Digest
## What is the Daily Digest?
The Daily Digest collects an assortment of documents from your Feed and your Saved for Later and presents them to you in an easily-scrollable format to help you triage your feed and rediscover documents you might have forgotten about.
## Where can I find the Daily Digest?
On mobile, you can find the Daily Digest at the top of your `Home` section. Currently the web version of the app doesn't have the same scrollable format for reviewing your Daily Digest, but you can add a section to your `Home` screen by clicking into the `Configure` dropdown in the top right corner and selecting "Today's Daily Digest." This will display all the same documents that you would see when scrolling through the Digest on your mobile device.
## How do I disable the Daily Digest?
You can disable the Daily Digest and its emails by navigating to your `Account Settings` and toggling off `Enable Daily Digest`.
## What is the "1" badge on my app icon?
The Reader badge on iOS appears when you haven't viewed your Daily Digest for the day. Once you've viewed the Digest, the icon badge should disappear. Since it only represents the current day's Digest, it will never be a number larger than one.
If you'd like to keep the Daily Digest as an option in the app but you don't want to see the badge, you can disable badge notifications for Reader in the system settings of your device.
---
## Using Reader on e-ink devices
## Can I use Reader on my e-ink device?
You can use Reader on any e-ink device that runs Android and has access to the Google Play Store. This includes devices such as the Daylight Computer or any of the BOOX tablets, as well as a variety of others.
To install Reader on your device, navigate to the Google Play Store and search for [Readwise Reader](https://play.google.com/store/apps/details?id=com.readermobile).
## Does Reader have special settings for e-ink devices?
If Reader detects that you're using an e-ink device, it will automatically turn on **E-ink Mode**. This mode includes a handful of settings to optimize Reader's performance and appearance for e-ink.
Depending on your device, the default settings may be different. For example, the Daylight Computer has a very high refresh rate and therefore doesn't automatically turn off the motion reduction settings.
To turn E-ink Mode on manually, go to **Account Settings** > **E-ink Mode**. From there, you can use the main toggle at the top to turn on or off all of the settings at once. If you'd like to only turn on some of the settings, keep the E-ink Mode toggle *off* and toggle the other settings as desired.
1. **Reduce motion** — Turns off a number of animations throughout the app to improve performance and reduce e-ink ghosting.
2. **Reduce page animations** — Turns off animations when swiping between pages in paged scroll mode.
3. **High contrast** — Increases the contrast of UI elements to make them more distinct on low-res or grayscale displays.
4. **Use volume buttons to turn pages** — Allows you to use your device's built-in volume buttons to navigate forward and backward while reading.
## How should I set up Reader to optimize for long-form reading?
It's one thing to scroll through emails or articles that you've saved, using Reader's various organization and triage tools to sort them, tag them, and archive them. It's quite another to get properly immersed in a book—especially on an e-ink device—when you might prefer that those other tools take a backseat to the reading experience.
To better implement a focused reading environment, Reader has some options that can be made default for certain document types (namely, EPUBs) that can make it feel less like an all-in-one read-it-later app and more like a book-reading app.
### Long-form reading view
A [dedicated reading layout](/reader/docs/faqs/appearance#is-there-a-way-to-make-the-reading-view-nicer-for-long-documents-and-ebooks) that hides Reader's action-heavy bottom bar and elevates UI elements like reading progress and appearance settings. This is turned on for EPUBs by default, but you can turn it on or off for each document type in the *Account settings* > *Long-form reading view* menu.
### Paged scroll
For a proper reading experience, we recommend using [the *paged scroll* option](/reader/docs/faqs/appearance#how-can-i-enable-pagination-for-reading-ebooks-and-other-long-form-documents). Like the long-form reading view, this is turned on for EPUBs by default but can be toggled per document in the *Appearance* menu.
### Justify text
For a properly straight edge of your book's text, you can turn on the *Justify text* toggle in *More style settings*.
### Pin "Books" view to Home
For easy and immediate access to your books, you can pin the default "Books" view to the top of your Home page.
### Set the default view to "Continue reading"
If you'd rather skip the Home screen entirely, you can set your default view to "Continue reading". This will make it so that, when you open the Reader app, it will immediately load into the document you were last reading.
---
## Email Newsletters
## How do I find my custom Reader email address?
You can find your custom Reader email address in Reader a variety of places.
On web, if navigate to the default Email section, your address will be in the right sidebar if there's no content (if there is content, you can click into the `?` menu in the bottom right of the right sidebar and select `Show getting started tips`). The same is true if you navigate to the `Feed` section. You can also click the blue `+` button in the bottom left and select `More import options...` to navigate to the [import page](https://read.readwise.io/add-to-library) and see your custom email addresses.
On mobile, if you navigate to the `Settings` tab, you'll be able to find your custom email addresses listed.
## Why do I have two custom email addresses?
Your Reader account has two custom emails: one to send things to your Library and one to send things to your Feed.
You can find both email addresses in your account preferences. Your library email will be under [Add to Library](https://read.readwise.io/add-to-library) and will end with `@library.readwise.io`, while your feed email will be under [Add to Feed](https://read.readwise.io/add-to-feed) and will end with `@feed.readwise.io`.
We recommend using the library email address when sending one-off documents to your Reader account that you know you want to read, and to use the feed email when setting up auto-forwarding rules or subscribing directly to newsletters.
## Can I change my custom Reader email address to make it easier to remember?
To customize your Reader email address, go to the [Add to Library page](https://read.readwise.io/add-to-library) and click `Personalize email addresses`. Keep in mind that your chosen email must be unique to your account and that using a non-random string may increase the chance of your Reader email receiving spam.
**Note:** Any newsletters you subscribed to using your randomly assigned custom email will still appear in your account. However, if you personalize your email more than once, only your current personalized email will work. Any personalized emails prior to your current one are effectively deleted and will no longer be able to receive mail.
## How do I forward emails to Reader?
Once you have your custom Reader email address, you can send any email to that address to have it appear in your Reader Feed or Library, respectively. This includes one-off emails, subscribing directly to newsletters with the custom address, or subscribing to newsletters using your personal address and auto-forwarding. Because it's a random string of characters, you don't need to whitelist any sending addresses.
## How do I unsubscribe from an email newsletter subscribed to my Reader custom email address?
You can unsubscribe from an email newsletter in Reader the same way you would in your email client: by opening the email, navigating to the bottom, and finding an unsubscribe link. On web, you can also use the `Unsubscribe` button that appears in the right sidebar of subscribed emails.
## What happens when I click Reader's "Unsubscribe" button for an email?
Reader can't actually remove you from any external email lists, so instead it puts the sender on a list of blocked emails. This means that **any** email from that sender will be blocked, regardless of how it's being sent to Reader (e.g. directly subscribed or forwarded).
If you'd like to stop receiving newsletters in Reader but would still like to be able to forward emails from that sender, we recommend using the newsletter's built-in unsubscribe option, which you can usually find at the bottom of the email content.
Note that the newsletter's built-in unsubscribe button sometimes gets parsed out of Reader's clean text view. If you don't see the unsubscribe button for a particular email, try [switching to original view](#can-i-view-an-email-with-its-original-formatting-in-reader).
If you've used Reader's unsubcribe button but later decide you'd like to receive emails from that sender again, reach out to us at [hello@readwise.io](mailto:hello@readwise.io) and we'll be happy to resubscribe you! (It's on our to-do list to see about adding this to Reader's UI, but at the moment there's no way to do it from inside your account.)
No. The RSS feed technology was created with this sort of use-case in mind, so subscribing and unsubscribing from RSS feeds works much more like how you would probably expect it to. You can unsubscribe from a feed to remove it, then use the same button to resubscribe at any time.
## How do I find email newsletters that I'm subscribed to in Reader?
Currently, there is no way to find a list of all email newsletters you're subscribed to inside Reader, but it's on our roadmap to detect newsletter subscriptions and add them to the `Manage feeds` section.
## How do I confirm auto-forwarding from Gmail to my custom Reader email address?
If you set up auto-forwarding from Gmail to your custom Reader email address, Reader will automatically "click" the link contained inside that email to confirm. If Gmail is still asking for a confirmation code to complete the auto-forwarding setup, Reader will email your Gmail address automatically with the code, which you can then enter into the auto-forwarding setup.
## How can I subscribe to Substack newsletters in Reader?
If the newsletter is free, you can subscribe via the RSS feed. The easiest way is to save any article from the Substack feed you’d like to subscribe to, then use the `Subscribe` button in the Info panel to add the feed. You can also add the feed manually in the **Add to Feed** dialogue (`shift + A`) using the URL generated by Substack, which will usually be `[newsletter-name].substack.com/feed/`, or by searching for the newsletter feed name.
For newsletters with paid content, the RSS feed will only display the first paragraph or two. To get the full content, you can open the original article by pressing `O` on your keyboard. You can then save the page using the browser extension, which will bring the full content into your Reader Library.
Alternatively, you can set up a forwarding rule to forward the paid newsletters from your email to Reader by using [your custom email address](https://read.readwise.io/add-to-feed).
## Can I view an email with its original formatting in Reader?
By default, Reader parses email content into a clean, readable text view. However, if you would prefer to see the email the original sender's chosen styles, you can switch to "original view".
On web or in the desktop app, click the document icon in the top left corner.
On mobile, tap into the **More actions** (...) menu, then select **View original**.
## How can I set the default view (text or original) for a particular email newsletter?
Reader will remember whichever view you used last for a particular email sender. So if you previously switched to original view, it will open any other emails from that sender in original view as well.
To change that sender's default back to text view, you can open an email from them and switch to text view. Then, any time you open emails from them in the future it should display in Reader's clean text view.
This setting is saved to your account, not to your current device, so your view preferences for email senders will persist across devices and app sessions.
---
## Exporting
## How do I export my highlights to my note-taking app such as Notion, Obsidian, Roam Research, Logseq, Evernote, etc?
Reader is innately connected to Readwise so every highlight you make in Reader will instantly sync with Readwise and then from Readwise to your note-taking apps. Over time, we intend to create a unified experience within Reader.
## Can I export all of the highlights from a document at once?
To copy or download all of a document’s highlights on web, go into the Notebook tab of the right sidebar and click `Export` at the very bottom.
- *Copy to clipboard:* Copies all of the notes and highlights as plain text for you to paste into any text editing app. (`Shift + Option + C`)
- *Download annotations:* Downloads the document’s notes and highlights as a markdown file. (`Shift + Option + D`)
- *Edit export file:* Opens the export template for the markdown template. This is editable and uses the Jinja2 templating language. (If you’ve ever [customized an export from Readwise to a note-taking app like Obsidian](/readwise/docs/exporting-highlights/obsidian#how-can-i-customize-the-readwise-to-obsidian-export) or LogSeq, this should be familiar!)
On mobile, tap the `i` in the top right, then tap into the **Notebook** tab. At the bottom, tap the **Export** button.
- *Copy to clipboard:* Copies all of the notes and highlights as plain text for you to paste into any text editing app.
- *Share highlights as .md:* Generates a markdown file that you can save to your Files or share to another app.
## How do I generate a CSV of all my saved documents?
You can download a CSV of all your documents by entering the Command Palette and searching for `Generate CSV export` or by going to your [Account profile page](https://read.readwise.io/profile) and selecting `Export Library as CSV` in the **Export account data** section.
## How do I generate an OPML of all my subscribed Feeds?
You can download an OPML of all your documents by entering the Command Palette and searching for `Generate OPML export` or by going to your [Account profile page](https://read.readwise.io/profile) and selecting `Export Feeds as OPML` in the **Export account data** section.
## How can I export the full content of everything I've saved to Reader?
You can download a ZIP file containing all of the files you’ve uploaded, as well as the full content of any articles you've saved from the web, by opening the Command Palette and searching for `Generate download` or by going to your [Account profile page](https://read.readwise.io/profile) and selecting `Export Full Files and Articles` in the **Export account data** section. Once Reader has generated the file, you’ll receive an email with the download link.
## How do I export the full content of an article with my annotations?
To save a local copy of an article, you can download a clean copy of the document with all of your highlights and notes by pressing `Cmd/Ctrl + P` or by opening the `...` menu and selecting `Print with annotations`. You can use this option to save the document to your computer as a PDF for local storage.
## How can I send documents to my Kindle device?
To send documents from Reader to Kindle, you first need to add your Kindle email to the [Integrations page](https://read.readwise.io/integrations) of your account.
1. Find and copy your Reader account's sending email on the [integrations settings page](https://read.readwise.io/integrations). (If you don't see this, you may need to click "" above the Kindle device email field.)
2. Visit [Amazon's preferences page](https://www.amazon.com/hz/mycd/myx#/home/settings/pdoc#pdoc), and scroll to "Personal Document Settings."
3. Add the Reader email from step ➊ to the "Approved Personal Document E-mail List."
4. Copy one of your Kindle account's email addresses in "Send-to-Kindle E-Mail Settings" and paste it into the Reader settings.
To avoid needing to manually approve each document via a confirmation email, be sure to choose an address with a random ID at the end (e.g. `username_Hyxi4vi@kindle.com` instead of `username@kindle.com`).
To send an automatically scheduled digest of new documents to your Kindle, click the toggle beside *Automatic Delivery*, then select either **daily** or **weekly**. (All digests are sent at midnight Eastern Standard Time and weekly digests are sent on Fridays. If there are no new items, a digest will not be delivered.)
To manually send an individual document to your Kindle, click the `Send to Kindle` option in the actions menu (`...`) of the document.
## What documents will be sent to my Kindle in the automatic digest?
If your Kindle digest is set up to be sent *daily*, it will include any documents that have been added to your Library in the past 24 hours. If your Kindle digest is set up to be sent *weekly*, it will include any documents that have been added to your Library in the past 7 days.
Note that this does not include new *Feed* documents—you'll need to move those documents to your Library (inbox/later) for them to be included in the digest.
---
## Feed (RSS, Newsletters, Twitter Digests)
## How do I group or organize RSS feeds into folders?
You organize all content in Reader (including RSS feeds) using a concept called Filtered Views. Filtered Views are extremely powerful, enabling you to create all kinds of dynamic subsets of your documents, but you can quickly add RSS feeds to groups on the [Manage feeds](https://read.readwise.io/feed/sources) section within Feed.
For a more detailed overview of getting the most out of your Feed section, see our [Reader 201 walkthrough video on Feeds](https://readwise.io/reader201). For a more detailed overview of getting the most out of Filtered Views, see our [Reader 202 walkthrough video on Filtered Views](https://readwise.io/reader202).
## How do I mark items as seen simply while scrolling my Feed?
Right now, Reader doesn't have a way to automatically mark items as seen as you scroll your Feed list like other RSS apps you may have used in the past. That said, there is a special Feed UI on mobile that will display documents as cards that will be marked as seen as you scroll through them. You can access this option by tapping the icon that looks like a stack of cards.
In addition, you can customize your swipes on mobile to include an action that marks all items above as seen so you can scroll and then, once done, mark all items you've scrolled past with a single action.
## I added an RSS feed which comes in with incomplete articles to Reader. How do I get the full content of incomplete RSS feeds?
Some RSS feed creators include partial rather than full content in their RSS feed (e.g. just a summary or first paragraph rather than the whole article). If you notice this, you can "Report partial feed content" by pulling open the Command Palette (`Cmd/Ctrl + K`) and searching for this option. This will cause Reader to forcefully parse the URL of the RSS entry going forward rather than relying on the feed author to include the proper content.
This can also help when the articles are missing metadata, such as the author's name or a thumbnail image.
## How do I quickly pull up all articles from a particular RSS feed?
You can quickly view all articles from a particular RSS feed by clicking the `Source` metadata in the right sidebar on mobile or on web. This will take you to a Filtered View of that particular RSS feed.
---
## Filtered Views
## What are Filtered Views?
The core organizational concept in Reader is what we call a Filtered View. A Filtered View is similar to a query-based search in Gmail like `title:Getting Started` or `author:Paul Graham`. Basically, you can think of your Reader account as one flat database of documents and Filtered Views enable you to "filter" those documents based on a variety of different parameters. Every time you click an author name or tag or RSS source in the Reader user interface to see all documents by that author or with that tag or from that RSS source, you are just creating a Filtered View on that parameter.
The best way to learn how to use Filtered Views is to watch our [Reader 202 walkthrough video on Filtered Views](https://readwise.io/reader202).
You can reference all the different parameters that can be used with Filtered Views (including examples) from this [Filtered View guide](/reader/guides/filtering/syntax-guide).
## How do I create groups of documents?
You can create groups of documents using Filtered Views. Filtered Views enable all kinds of powerful filtering of your documents, but the simplest way to group documents is to tag each document with your desired group name. You can then click this tag to generate a Filtered View for all documents having that tag. You can then save the Filtered View and optionally pin it to the sidebar.
## How do I create a custom filtered view?
Reader comes with a few default filtered views—like “Recently added” and “Quick reads”, but you can also make your own to better fit your personal needs or preferences.
### Filter by tag or feed source
On your [Manage feeds](https://read.readwise.io/feed/sources) and [Manage tags](https://read.readwise.io/tags) pages, you can use the Views column to assign tags and feeds to specific views.
On mobile, you can create a new filtered view from a tag by tapping the **Save** button in the top right of the tag view.
### Filter by author
In the Info tab of any document, you can click the name of the author to bring up a filtered view of all the documents by that author in your library. You can then name and save the view for easier future access.
### Filter by query
You can create filtered views within Reader that will automatically group various sources together based on the query. To do so, click into `Manage filtered views`, then click the `Add filtered view` button in the top right.
Filtered view queries can use a variety of different properties (you can view a full list in our [Reader Filtering Guide](/reader/guides/filtering/syntax-guide)), including tags and source domains. For example, if you had a tag called "football" and a blog feed from footballnews.com, you could use the following query to group them together in a single saved view:
`tag:football OR (feed:true AND domain:footballnews)`
This would include any articles, videos, or other documents saved to your library which you've tagged "football," as well as any new documents that come into your feed from footballnews.com.
## How do I create a query-based filtered view on mobile?
To create a filtered view, tap into the Search tab of the Reader app and then tap the `+` icon. This will ask you to enter a query for the new view. Type in your query and then `Show` to see the filter. To save it for future use, tap `Save` and give it a name.
## How do I put an icon in front of a filtered view?
When saving a Filtered View, if you input an emoji as the first character of the saved name, this emoji will be used as a de facto icon in the left sidebar of the Reader app.
## Can I see how many items are in a filtered view?
You can enable a "count badge" for any saved Filtered View. The badge will appear on top of the icon in the left sidebar. You can toggle on the count bar by clicking the down arrow next to the view's name in the top header.
## How do I use filtered views?
The best way to learn how to use Filtered Views is to watch our [Reader 202 walkthrough video on Filtered Views](https://readwise.io/reader202). You can reference all the different parameters that can be used with Filtered Views (including examples) from this [Filtered View guide](/reader/guides/filtering/syntax-guide).
## How can I see all my tags?
You can see all your tags from the [Manage tags section](https://read.readwise.io/tags) visible in the top header of the `Library` section of Reader.
## What does it mean to "split" a view?
Splitting a view will add tabs within the view that automatically sort documents based on their status. Splitting by **Location** will use the Inbox/Later/Archive tabs from the main Library view (or Later/Shortlist/Archive, depending on your library configuration). Splitting by **Seen** will use the Unseen/Seen tabs from the main Feed view.
On web, you can change the split of any filtered view by clicking into the caret dropdown beside the title of the view, or by pressing `\` on your keyboard.
On mobile, you can do this from the actions menu (`...`) of the view page.
## How do I add a filtered view to my Home page?
To add a filtered view to your Home page on web, click **Configure** in the top right and check the box to the left of the view you want to add. To change the order of the views, click and drag the dots to the right of a views name.
To remove a view, simply uncheck the box beside its name.
On mobile, tap the configure icon in the top right, then tap the name of the view you'd like to add. Tap and drag the dots to the right of the view's name to move it up or down in the list.
To remove a view, tap the red minus icon beside its name.
---
## Ghostreader
## How do I enable auto-summarization or auto-tagging?
To use the customized Ghostreader prompt, you'll need to first make sure that auto-summarization or auto-tagging prompt is enabled on your [Ghostreader preferences page](https://read.readwise.io/preferences/ghostreader).
## Why are items in my Feed not auto-summarized?
By default, Ghostreader will only automatically summarize documents that you manually save to your account using the browser extension, mobile app share sheet, and so on. Documents in your Feed will not be summarized unless you invoke Ghostreader manually.
You can, however, enable auto-summarization on Feed documents by [adding your own OpenAI API key](https://read.readwise.io/integrations). Once you add your key, your Feed documents will start being automatically summarized and will use your API credits.
## How can I customize my Ghostreader prompts?
You can customize any Ghostreader prompt from the [Ghostreader preferences page](https://read.readwise.io/preferences/ghostreader) by clicking the *Edit prompt* text that appears on hover.
Note that any of your custom prompts can be used on mobile, but you'll need to do the actual customization via the web version of Reader.
Check out our [in-depth customization guide](/reader/guides/ghostreader/custom-prompts) or get inspiration from our [curated Prompt Library](/reader/guides/ghostreader/prompt-library)!
## How can I use a different GPT model?
The default AI model (included with your Readwise subscription) is . However, if you've entered your own OpenAI API key, you can change the AI model on any [custom Ghostreader prompts](https://read.readwise.io/preferences/ghostreader) to GPT-5, GPT-4.1, o3, or o4-mini. You can find the AI model dropdown in the bottom left corner:
## Do I need an OpenAI API key to enable auto-summarization of documents?
No. Auto-summarization of documents saved to your library is included as part of your Readwise subscription. However, if you would like to enable auto-summarization of feed documents or use a better AI model than , you will need to add your own key.
## What happens if I add my own OpenAI API key?
If you have your OpenAI key set up in the integration settings, it will automatically summarize all the docs coming into your feed (newsletters, RSS subscriptions, etc) in addition to the automatic summarizing of documents saved to your library.
By default, the auto-summarization of library items will use and will not use your OpenAI key. To change this, you can set the model per prompt on the [Ghostreader customization page](https://read.readwise.io/preferences/ghostreader). If you choose a higher-tier model, it will then use your OpenAI key.
## Why do my automatic prompts sometimes turn themselves off or stop working?
The most common cause of this behavior is that the OpenAI API key associated with your account doesn't have enough funds to cover the request. If you log into OpenAI's website and check your billing details, you should be able to see your [usage](https://platform.openai.com/usage) and [plan limits](https://platform.openai.com/settings/organization/limits) there.
If your API key isn't funded, you can switch your Ghostreader model to , which is included with your Reader subscription, or you can fund the OpenAI API key on their end.
Once you've added funds to your OpenAI account, you can turn the automatic prompts back on from the [Ghostreader preferences page](https://read.readwise.io/preferences/ghostreader)
## How can I turn off the automatic summarizing or automatic tagging Ghostreader prompts?
You can turn off any or all of the Ghostreader prompts from the [preferences page](https://read.readwise.io/preferences/ghostreader) by clicking the toggle next to each one. Turning off the summary prompt will stop it from automatically summarizing your documents or appearing in the command palette menu.
## Can I apply the auto-summary or auto-tag prompts to existing documents in my account?
The automatic prompts don't work retroactively, so only documents that you add after turning the prompt on will be automatically summarized or tagged.
However, you can manually run the summary prompt on a document by using the Ghostreader icon in the **Info** panel on web or the **Summarize** button on mobile.
## Can OpenAI see all of my Reader documents? Is my data being used to train their AI models?
No. The OpenAI API only receives your documents when you invoke a Ghostreader action on them, and even then it only sends whatever part of the document is specified in the prompt. For example, if you invoke the "Define word" prompt on a highlighted word, that single word is the only part of the document that OpenAI would see.
Additionally, the OpenAI API allows users to opt out of their content being used for training data, which we have done. Nothing that OpenAI receives from Reader is allowed to be saved to their servers or used to train their AI models.
## I have a subscription to ChatGPT Plus. Can I connect that to Reader to access higher tier GPT models?
The ChatGPT Plus subscription actually doesn't include access to their API. Entering an API key from an account that only has the Plus plan will cause the prompts to fail.
If you would like to use your own key with Ghostreader, you'll need to pay for access to the OpenAI API. You can learn more on this page of their website: [https://openai.com/api/pricing/](https://openai.com/api/pricing/)
---
## Highlights, Tags, and Notes
## Can I highlight and/or make annotations using the keyboard?
Reader on web is designed with a "keyboard-based reading experience", enabling you to read, navigate, highlight, tag, and annotate without using your mouse. You can navigate the document using the up or down arrows, which moves the blue focus indicator paragraph-by-paragraph. If you want to highlight a paragraph, tap `H`. Once highlighted, you can tap `T` to tag the highlight or `N` to add a note. If you have a wide enough screen—or hide the sidebars using `[` and `]`—these annotations (notes and tags) will appear in the right margin.
## What is auto-highlighting?
Auto-highlighting is a feature that converts any selected text into a highlight immediately. It's a great way to spare yourself an extra click every time you want to make a highlight, and to better simulate the experience of highlighting analog documents with a marker or pen.
That said, if you often select text with the purpose of copying it or just generally prefer to select text first and then decide if you want to save it as a highlight, you can disable auto-highlighting. On web, you can press `Shift + H` on your keyboard or use the Command Palette (`Cmd/Ctrl + K`) to search for `Toggle auto-highlighting`. On mobile, tap into the `...` menu in the bottom right turn off the `Toggle autohighlighting` option.
## How do I highlight more than one paragraph or less than one paragraph using keyboard shortcuts?
Right now, keyboard-based highlighting and annotating is limited to the paragraph level, but it's on our roadmap to make this finer grained so you can highlight less than or more than a single paragraph.
## How do I highlight images in Reader?
Reader enables you to highlight images while reading. These images will carry over into Readwise and even into your note-taking app if you export your highlights. To highlight images, simply focus the image and use the keyboard shortcut `H` or select it with the mouse (plus any desired text) on web, or select it plus any desired text on mobile.
## How do I use the browser extension to highlight the open web?
Once you've activated the Reader extension on a particular web page, you can begin highlighting text and images on the site itself. You might do this for a couple reasons:
First, although most users generally prefer the clean, distraction-free reading experience of the Reader app, there are some exceptions where the original site is more pleasing. In these cases, you can honor the original author and read what they wrote in the manner they intended.
Second, although Reader's parsing already exceeds Instapaper and Pocket in our benchmark tests, we'll never be able to parse 100% of the internet 100% perfectly. HTML and CSS are just too flexible. The web highlighter is an exception handler.
Third, sometimes you'll find yourself reading an article wanting to take a highlight but not wanting to break your flow. Just activate the highlighter, make your highlight, and keep reading.
## Will highlights made using the Reader browser extension show up in the Reader apps and vice versa?
Any highlight you make on the native web using the browser extension will typically sync with Reader and vice versa. Most of the time, these highlights will appear in both places. In other words, if you highlight the open web using the Reader browser extension, this highlight will typically appear on top of the clean article in the Reader apps; conversely, if you highlight the clean article in the Reader app, this highlight will typically appear overlaid on the open web.
## Sometimes highlights that I took using the browser extension do not appear overlaid in the Reader app. How do I get highlights made using the browser extension to appear in the Reader web app?
Any highlight you make on the native web using the browser extension will *typically* sync with Reader (and from Reader to Readwise) and vice versa. That said, there are some exceptions when the position of highlight made in one platform cannot be matched with sufficient confidence in the other platform. In these rare cases, the app will notify you that it failed to match and those highlights will still be visible in the Notebook tab of the Reader web app.
## How do I add a note to the document as opposed to just a highlight?
On web, you can add a document note by opening the Notebook tab in the right sidebar (or using the keyboard shortcut `Shift + N`). On mobile, tap the `i` button in the top right and then tap into the Notebook tab.
Document notes don't appear with your highlights in Readwise 1.0 yet, but you can still export them to any note-taking app that allows you to customize the export template (e.g. Obsidian, Roam, etc).
## How do I highlight in multiple colors?
We haven't yet added multiple highlight colors. If you use highlight colors as a kind of workflow or system (as opposed to as a visual affordance), you might try using highlight tags instead.
## How do I use the Apple Pencil with Reader on my iPad?
We haven't yet had an opportunity to optimize the iOS for iPad specifically, and that includes optimizing for the Apple Pencil. That said, we recognize the iPad and Pencil combo is one of the most powerful reading for betterment platforms out there, so we look forward to focusing on this in the future.
## Do document tags apply to highlight tags and vice versa?
Currently, there is no inheritance between highlight tags and document tags. In other words, if you tag a document, that tag will *not* apply to highlights in the document. Conversely, if you tag a highlight that tag will *not* apply to the document.
## What’s the difference between document tags and highlight tags?
Document tags are applied to the entire document by pressing `T` while in list view or `Shift + T` in document view. These tags are used to organize content within Reader, pull documents into filtered views, and identify topics at a glance from list view.
Highlight tags are applied directly to highlights by pressing `T` while a highlight is selected in document view. These tags aren’t currently searchable within Reader, but they sync to Readwise with the highlight.
In Reader, you can find a the list of tags of all the tags you’ve used on the [Manage Tags](https://read.readwise.io/tags) page, which can be accessed from top of the Library **view or via the `Manage tags` option in the sidebar on web. On mobile, you can find your tags via Views > Tags.
## How do I find my tagged highlights?
Right now we are deferring most highlight-based workflows to Readwise, so you can find your tagged highlights in Readwise here: https://readwise.io/tags. Over time, we intend to create a unified experience between Readwise and Reader in Reader.
## How do I add multiple highlight tags or document tags in a row without closing the dialog?
By default, when you hit `T` or `Shift + T` to open the tag dialog, input your tag, and then hit `Enter` to add, the dialog will close. If you want the dialog to stay open after inputting a tag so you can add more, hit `Cmd/Ctrl + Enter` instead.
## How do I insert a line break into a highlight note?
By default, when you hit `Enter` inside the highlight note field on web, it will save the note. If you want to insert a line break, hit `Shift + Enter` instead.
## How do I add a note when saving a document to Reader?
When saving a document using the browser extension, click the speech bubble icon in the bar that appears once the document has been saved. When saving from the mobile share sheet, tap the speech bubble icon in the bottom center of the save screen.
## How do I copy text or highlights to the clipboard?
You can copy a highlight's text to your clipboard by selecting the highlight, tapping the "more menu" icon (`...`), and selecting `Copy text`. If you have autohighlighting disabled, you can also copy selected text to the clipboard this way. If you have autohighlighting enabled, you can hold down `Alt` (on Windows) or `Option` (on Mac) to temporarily disable autohighlighting and select text. Finally, you can quickly use the keyboard shortcut `Cmd/Ctrl + C` on web to copy the focused paragraph or focused to clipboard.
## How do I edit or adjust the starting and ending points of a highlight?
To adjust the boundaries of an existing highlight, click (or tap) and drag the handle that appears at the beginning or end of the highlighted passage.
You can also use this method to *merge* disparate highlights into a single highlight.
## How do I quickly pull up all articles with a particular document tag?
You can quickly pull up all documents with a particular document a couple different ways. First, you can always tap a document tag wherever it's shown in the user interface to navigate to a filtered view of that document tag. Second, you can go to the `Manage tags` page from the `Library` on web or you can click on `Views` on mobile and choose `Tags`. Finally, you can create a filtered view by tapping `Shift + F` on web and entering `tag:[tag-name]` (replace `[tag-name]` with the exact name of your tag).
## How do I find a list of my Readwise highlight tags inside Reader?
Currently, you'll only see tags used within Reader inside Reader as opposed to tags already existing inside Readwise. Over time, we intend to create a unified Readwise and Reader experience within Reader.
## How do I select multiple items to perform actions in bulk?
Currently, Reader does not have a multiselect option enabling you to manually select more than one document in a particular list view. That said, Reader does have a Bulk Action (`Shift + B`) option enabling you to perform actions on every document in the list in one fell swoop. Combined with filtering (`Shift + F`, described above), you can often achieve the desired outcome of multiselection with Bulk Actions.
---
## Importing Content to Reader
## How do I import my Instapaper articles to Reader?
If you have Instapaper connected to Readwise, any articles you've saved previously will automatically import to Reader. You can connect Instapaper within Reader by following [this link](https://read.readwise.io/integrations). Any articles that were archived inside Instapaper will appear inside your Archive in Reader; the ten most recently saved items not archived will appear inside your Inbox in Reader; everything else will go in Later.
## It seems some of my Instapaper articles are missing. How do I make sure ALL my Instapaper articles imported?
If it looks like you're missing Instapaper articles within Reader, first note that any articles that were archived inside Instapaper will appear inside your Archive in Reader; the ten most recently saved items not archived will appear inside your Inbox in Reader; everything else will go in Later.
If you've checked those places and still don't find the articles you're looking for, it's possible you might be hitting an Instapaper API export bug which caps the number of items export at 500. To get around this, you can download a CSV export of your Instapaper articles ([Settings](https://www.instapaper.com/user) > **Export** > **Download .CSV file**) and then upload those at [read.readwise.io/add-to-library](http://read.readwise.io/add-to-library).
Note that some items are considered “private content” by Instapaper and are unavailable to third parties. This includes things like emails forwarded to your Instapaper account. You’ll be able to see these articles in the CSV export (the URLs will start with `instapaper-private://` ), but since the document is kept private by Instapaper, Reader won’t be able to import them.
## How do I import my Matter articles to Reader?
You can import your Matter articles to Reader by generating an export inside the Matter app, which will send you an email with a link to download your data, and forwarding this email to [read@readwise.io](mailto:read@readwise.io). Reader will automatically follow the link and import your previously saved documents.
## How do I import documents from Raindrop.io?
You can export your bookmarks from Raindrop.io [as a CSV](https://help.raindrop.io/export/), then upload that CSV to Reader via the [Add to Library page](https://read.readwise.io/add-to-library), by pressing `U` on your keyboard, or by dragging and dropping the file from your computer.
Note that you may need to edit the CSV to ensure it imports correctly—the CSV should have a column titled "URL" (or "Url" or "url") that contains all of the links. Optionally, you can also include a "Title" column that contains the title of each document.
## How do I bulk import articles?
To bulk import documents to Reader, you’ll need to have a CSV file containing all of the URLs you want to add. To ensure they import correctly, the CSV should have a column titled "URL" (or "Url" or "url") that contains all of the links. Optionally, you can also include a "Title" column that contains the title of each document.
Upload the CSV file by going to the [import page](https://read.readwise.io/add-to-library) and using the `Upload file` option, pressing `U` on your keyboard, or dragging and dropping the file from your computer onto the Reader window.
---
## Miscellaneous
## How do I request a feature, make a suggestion, or report a bug regarding Reader?
You can leave feedback from within Reader by using the Command Palette (`Cmd/Ctrl + K`) on web and typing "feedback" or by tapping the "more menu" icon (`...`) and choosing `Support and feedback` on mobile.
## I have highlights in Readwise that I can't find in Reader. Where do I find all my previous highlights?
Right now, you can think of Reader as another reading app that integrates with Readwse (albeit seamlessly). Every highlight you make in Reader instantly syncs with Readwise and then from Readwise to your note-taking apps. This integration, however, does not go the opposite direction. In other words, you won't find your Kindle highlights inside of Reader. Over time, we intend to create a unified experience within Reader.
## How do I find out about the Reader public API?
You can find the Reader public API documentation at [readwise.io/reader_api](https://readwise.io/reader_api). If you have a use case or endpoint you'd like us to support, please don't hesitate to reach out!
## I have multiple Readwise-related browser extensions installed. Do I need them all?
Browser extensions pose a constant security threat so we maintain multiple extensions with different levels of access. The original Readwise extension (white background) automatically syncs your Kindle highlights to Readwise. If you no longer use Kindle, you can delete this extension. Otherwise, you can keep it installed and unpinned as it does its work in the background. The Readwise export extension is used to authenticate Readwise with your Roam Research or Notion account. If you no longer use Roam or Notion, you can delete this extension. Finally, the Reader extension (yellow) is used to save documents to Reader and optionally enable highlighting of the open web.
## Will I lose the Reader highlights saved in Readwise if I delete my Reader articles?
Yes. The two apps share a database and all edits to highlights, notes, or the original article will sync seamlessly from Reader to Readwise, including deletion. We recommend that you store any documents you've annotated in your Reader archive, to maintain searchability and preserve their highlights.
## How do I find a roadmap or list of known issues so I don't report something you're already aware of or planning to build?
Our Reader beta newsletter is a great resource to get some insight into what we're working on (you can even [subscribe via RSS](https://readwise-community.ghost.io/2defd8e965b87487102ef0c6db1880/rss/) to get the updates directly in Reader!). Also feel free to reach out via the in-app feedback or email (hello@readwise.io) to ask us any specific question. In general, we don't mind receiving duplicate feedback because it helps us prioritize.
## Where can I see my tagged highlights?
Right now we are deferring most highlight-based workflows to Readwise, so you can find your tagged highlights in Readwise here: [https://readwise.io/tags](https://readwise.io/tags). Eventually, we plan to create a place in Reader where you can view your highlights by tag.
---
## Navigation
## How do I customize the sections in the left sidebar of the web app?
The sections in the left sidebar are just defaults and fully customizable, except for Home, Library, Feed, and Search (those are fixed). You can reorder the views by dragging and dropping, unpin the views from the sidebar by clicking the down caret at the top of the view, and pin new views from the [Manage views](https://read.readwise.io/views) page.
## How do I customize the swipe actions in the Reader mobile app?
You can customize the swipe actions in the Reader mobile app by navigating to the `Account` tab in the bottom right and choosing `Customize swipes`.
## Can I auto-advance to the next document when I perform an action (e.g. moving the current document to the Archive)?
By default, if you move a document while in its reading view, you'll be returned to previous document list. You can toggle this behavior to instead auto-advance by looking for "Toggle auto-advance" in the Command Palette on web or switching the setting in the Settings panel on mobile.
## How do I find a list of keyboard shortcuts?
Reader on web is fully keyboard shortcut driven, including while reading documents. Most keyboard shortcuts are shown in hover tooltips in the user interface, but you can additionally open the Command Palette (`Cmd/Ctrl + K`) and search for an action to find its or use the `?` shortcut to pull up a reference guide.
## How can I customize the keyboard shortcuts?
You can edit the default keyboard shortcuts to your preference by navigating to `Account settings` > `Preferences` > [`Customize`](https://read.readwise.io/preferences/shortcuts).
## Some keyboard shortcuts are not working on my keyboard such as `[` and `]` to open or hide the side panels. How do I customize my keyboard shortcuts?
Some non-North American keyboard layouts (such as German, Swedish, Dutch, Norwegian, Catalonian, etc) may not be optimized for the default Reader shortcuts. You can customize these shortcuts to your preference by navigating to `Account settings` > `Preferences` > [`Customize`](https://read.readwise.io/preferences/shortcuts).
## How do I use keyboard shortcuts in the iPad app?
We haven't yet had an opportunity to optimize the iOS for iPad yet, but it's on our roadmap. In the meantime, if you use your iPad with a keyboard as a quasi-laptop, we recommed using Reader inside the browser web app ([read.readwise.io](https://readwise.io)) rather than the native app.
## How do I dismiss the nudge to use the mobile app when using read.readwise.io in Safari on iPad?
Whenever an iOS app has deeplinking enabled (which is what allows Reader to open links from external sources), Apple will detect the link pattern in Safari and display a banner nudging you to use the native app rather than the web app.
There are a couple of workarounds to permanently hide this banner:
1. Delete the app from your device if you only ever plan to use Reader in the browser
2. Turn on `Hide and require Face ID` in the app options by long-pressing the home screen icon
Once you've hidden the app, the banner should no longer appear at the top of the Safari page.
## How do I change my settings to keep the sidebars hidden at all times?
You can change the default sidebar setting upon entering the reading view by opening the Command Palette and searching for `Hide side panels by default in reading view`.
Alternatively, you can go to the [Preferences page](https://read.readwise.io/preferences) and use the **Side panel visibility by default** dropdown to select which of the panels you would like to be displayed by default when you open a document.
## Can I bump an old document back to the top of my document list?
Yes! To do this, you can use the **Bump to top** option in the actions menu (`...`) of any document (or press `B` on your keyboard with the document selected).
Note that bumped documents will only appear at the top while the list view is sorted by `Date moved`. Any other sorting option (date published, author, progress, etc.) will still place the document according to its metadata for that sorting category.
---
## Basics
## How do I get started with Reader?
Reader is a cross-platform reading application with a web app ([read.readwise.io](https://read.readwise.io/)), mobile apps for iOS and Android, [desktop apps](https://readwise.io/read/download/) for Mac and Windows, and browser extensions for Chrome, Chromium-based browsers (Edge, Brave, Arc, etc.), Firefox, and Safari.
The best way to get started using Reader is to navigate to [read.readwise.io](https://read.readwise.io/) and read the _Getting Started with Reader_ article inserted into your Library by default. From there, we recommend you navigate to different sections of the app based on the type of content you read. For example, if you read PDFs, click on the PDF section and you'll see instructions in the right sidebar for how to upload those files.
(On mobile, you can find these sections by tapping the **Views** icon in the bottom navigation bar.)
Alternatively, you can also watch our community manager Erin's [short walkthrough video](https://readwise.io/reader101) to get up and running with Reader as quickly as possible.
## How do I find the Reader web app in my browser?
On web, go to [read.readwise.io](https://read.readwise.io/). Note that Reader and Readwise use the same account and authentication.
## How do I log into Reader?
Reader uses your Readwise account for authentication. If you're not redirected automatically, make sure you're logged into [Readwise](https://readwise.io/dashboard) on any browser you're using with Reader.
## What's the relationship between Reader and Readwise? Are they automatically connected?
You can think of Reader as another reading app that integrates with Readwise (albeit seamlessly because they share a database). Every highlight you make in Reader instantly syncs with Readwise and then from Readwise to your note-taking apps.
## What is the business model of Readwise? If I start using Reader, how do I know you won't disappear on me?
We've been working on Readwise since 2017 and, in 2018, we decided to fund the business through consumer software-as-a-service rather than raising venture capital (more here: [Why We're Bootstrapping Readwise](https://blog.readwise.io/why-were-bootstrapping-readwise/)). We're a sustainable company with a long-term mission of improving the practice of reading through software by an order of magnitude. We're not going anywhere, but it's a fair question considering the many startups that raised venture capital during the peak markets of 2020/2021 and are now zombies.
## What is the pricing of Reader?
The annual subscription cost of Reader (plus Readwise!) is $9.99/month (USD). For monthly subscribers, it’s $12.99/month (USD). You can learn more about Reader’s pricing and what’s included on our [pricing page](https://readwise.io/pricing).
Note that if you subscribed prior to **February 18, 2024**, you’re locked into our legacy pricing for as long as you maintain your subscription.
## Can I use Reader offline?
Reader works offline on both web and mobile. On web, so long as you have [read.readwise.io](https://read.readwise.io/) open before you go offline, Reader will continue to work and any changes you make (e.g. new highlights) will sync once you come back online. Alternatively, you can install the Reader [desktop app](https://readwise.io/read/download/), which will open and work offline.
On mobile, so long as you open the app for at least a few moments before you go offline, the full text of your documents will be cached and Reader will work offline.
## Can I select which documents are cached for offline reading?
The selective offline caching feature allows you to choose which sections of your account cache their files for offline use. You can find the option in your Account tab under **Offline documents**.
In the **Offline documents** menu, toggle on *Experimental caching*. By default, this will turn off the Feed and remove those documents' cached files from your device, since this is the most common cause of app size bloat among our users.
Turning off a given section of your documents will immediately remove the cached files for those documents.
To re-download those files, turn the toggle back on. You will likely need to wait for a few moments as the files download, but you'll be able to watch the progress in the bar below the toggle.
Utilizing these options will help you manage the file size of the Reader app on your device, as well as ensure that the documents you want to read are available for the next time you go offline.
Note that, even with Experimental Caching turned on, individual documents will still be cached when you open them. This may result in unexpected numbers on the caching screen, e.g. "*10/300 downloaded*" for a section that is turned off.
## Does Reader have a Command Palette?
Reader has a Command Palette on web (`Cmd/Ctrl + K`) which contains virtually any action you can take in the application. The Command Palette is a great way to find out if actions you're looking to take exist and, if so, what keyboard shortcut you can use to access them.
## Does Reader use keyboard shortcuts or hotkeys?
On web, Reader is fully keyboard shortcut driven, including while reading documents. Most shortcuts are shown in hover tooltips in the user interface, but you can additionally open the Command Palette (`Cmd/Ctrl + K`) or use the `?` shortcut to pull up a reference.
Note that if you use a Magic Keyboard with iPad, you should use the Reader web app in iOS Safari as we've not yet had an opportunity to optimize the iPad app with keyboard shortcuts yet. This is on the roadmap.
## Can I undo an accidental action?
You can use the undo feature to restore a deleted highlight or note, undo bulk actions, and much more.
On web, you can trigger the undo function by pressing `Z` on your keyboard. Pressing multiple times will step back through the last few actions you've taken.
On mobile, when using an iOS device, you can use the operating system's built-in "shake to undo" feature. If shaking to undo isn't working for you, check that the feature is turned on in your device's **Settings** > **Accessibility** > **Touch**.
Additionally, many actions will be followed by a pop-up "toast" dialog to confirm what's been done, and that dialog will often include an undo button. Clicking or tapping it will immediately revert the action.
## How can I delete unwanted documents?
On web, there are two ways to delete a document. You can either click into the **More actions** (...) menu and select **Delete document**, or you can use the keyboard shortcut `D`.
On mobile, tap into the **More actions** (...) menu and select **Delete document** at the bottom of the sheet.
## Can I restore documents that I've previously deleted?
You can restore deleted documents from the **Trash** section of your account. Items you've deleted will stay in the Trash until you choose to recover them or empty your Trash.
Restoring a document will return it to your Library and restore any highlights or notes you might have made.
The Trash is device-specific, so deleted documents must be restored from the **same device** (e.g. web browser, mobile device, etc) where they were originally deleted.
**To restore a document on web or in the desktop app:**
1. Navigate to the **Trash** in the left sidebar below the **Pinned** section.
2. Hover over the document you'd like to restore, then click the **Restore document** icon that appears.
**To restore a document in the mobile app:**
1. Navigate to the **Search** tab and scroll to the bottom of the page.
2. Below your Filtered Views, tap into the **Trash** view under **Deleted documents**.
3. Tap the title of the document you'd like to restore, then select **Restore Document** from the Actions menu.
---
## Parsing
## An article I saved is missing content such text, images, videos, or tables. How do I fix missing content in saved articles?
We built a benchmark test we run against the top 200 articles saved to Readwise from Instapaper and Pocket and Reader already parses them better, but it's still not possible to parse the open web 100% correct 100% of the time.
If you save documents using the browser extensions on web or using the Safari browser and share sheet on iOS, these methods will generally result in the highest quality parsing because Reader is getting the full document content rather than the naked URL.
If the document is still missing content (such as missing images), you should report those documents through the feedback section of the Reader app and selecting `Report document parsing issue`. (Make sure the app is open to the document you're reporting when you do this to ensure that we receive the correct metadata in your report!)We have an engineer dedicated to fixing parsing tickets and we are constantly upgrading our parsing.
## An article I saved includes non-core content such as an advertisement. How do I fix extra content in saved articles?
We built a benchmark test we run against the top 200 articles saved to Readwise from Instapaper and Pocket and Reader already parses them better, but it's still not possible to parse the open web 100% correct 100% of the time.
If you save documents using the browser extensions on web or using the Safari browser and share sheet on iOS, these methods will generally result in the highest quality parsing because Reader is getting the full document content rather than the naked URL.
If the document still has extraneous content (such as inline advertisements), you should report those documents through the feedback section of the Reader app and selecting `Report document parsing issue`. (Make sure the app is open to the document you're reporting when you do this to ensure that we receive the correct metadata in your report!) We have an engineer dedicated to fixing parsing tickets and we are constantly upgrading our parsing.
## How do I save articles behind paywalls?
If you save documents using the browser extensions on web or using the Safari browser and share sheet on iOS, paywalled document should be saved without issue.
## I noticed that articles from large news sites such as NYT, Washington Post, Medium, and so on do not contain the full content. How do I save the full content of an article behind a paywall?
If you save documents using the browser extensions on web or using the Safari browser and share sheet on iOS, paywalled documents should be saved without issue. Note that if you save directly from another app on iOS (e.g. NYTimes, Medium, etc), this may result in partial parsing because Reader can only get the naked URL and those apps aggressively block read-it-later apps.
If you're seeing documents come over with partial content from a source in your Feed, you can quickly open the original article in your browser (by pressing `O` on your keyboard or tapping `...` > `Open` on mobile), make sure you're logged into the site in question (e.g. NYT, Medium, etc), and then re-save the page using the browser extension or mobile share sheet.
## Will Reader store the content of my saved articles even if the original article is changed or removed from the web?
Yes, saving an article to Reader parses the page and saves the content as-is. Reader will never try to re-parse previously saved content, so the version in your Reader library will always reflect the way you originally read it, and your highlights and notes will never lose their context.
## What if I want to manually refresh an article to reflect updates to the original?
Since Reader intentionally stores the originally saved version to preserve highlight and note context, the only way to get an updated version of an article is to delete it from your library and re-save it. Note that this will also delete any highlights and notes associated with the document, in both Reader and Readwise.
## How does Reader detect duplicate content?
Reader’s current de-duping logic will catch any documents that are saved multiple times with the same URL. If you re-save a URL, the document will be moved to the top of your Library and will feature a green dot in the upper left to indicate that you’ve saved it more than once.
However, the current logic isn’t able to detect duplicate *content*, so saving the same document from slightly different URLs will result in the creation of a second version. This often happens when a URL contains tracking information or other additional parameters (e.g. `https://site-name.com/article-title?utm_source=rss-feed` vs `https://site-name.com/article-title`), and this is the primary reason that articles saved from a Feed source won’t be recognized as duplicates of the same articles saved from the original website.
---
## PDFs
## Sometimes PDFs have strange filenames. How do I change the name of a PDF?
Reader uses the metadata contained inside the PDF to determine its filename, which was often improperly set or not set at all by the PDF file creator. When this happens, the title of the PDF may be strange or confusing. With that in mind, you can edit this metadata by selecting Edit Metadata (`Shift + M`) in the bottom right of the `Info` sidebar. You can edit other document-level metadata than just title, and you can do this on documents other than just PDFs.
## How do I edit metadata on mobile?
While viewing a document, tap the `i` icon in the top right to open the `Info` sidebar. Then tap the `Edit metadata` button at the bottom.
## How do I zoom in or out on a PDF?
On web, you can zoom in or out by using the `+` and `-` icons in the top of a PDF or the keyboard shortcuts `Ctrl/Cmd + -` `Ctrl/Cmd + +`. On mobile, you can pinch.
## How do I highlight images, tables, and figures in a PDF?
You can use the "snapshotting" feature to save screenshots of a PDF as a highlight via the icon in the top left that looks like a square with a plus in the corner. Click the icon, then click and drag to select the area of the PDF you'd like to save. The selected area will be saved as an image in the document's Notebook.
## How do I download and/or export a highlighted PDF from Reader?
You can download an annotated version of a PDF document by pressing `Shift + D` while viewing the document in the web app. The downloaded PDF will contain all of your highlights and highlight notes.
## How do I import highlights from a previously highlighted PDF to Reader?
Currently, highlights made in another PDF app will not be recognized as proper highlights inside of Reader, but this is on our roadmap to add.
## How do I highlight across pages inside a PDF?
Without reflowing the PDF into plain text, there is no way to highlight across PDF pages in any app that we're aware of. That said, you can use Readwise's "[inline concatenation](/reader/docs/faqs/action-tags#how-can-i-combine-two-disparate-pieces-of-text-into-a-single-highlight)" feature to combine two disjointed highlights when they're imported into Readwise and before they're exported to your note-taking app.
## How do I remove the random line breaks from highlights made in a PDF?
The underlying text behind a PDF often has glitches that aren't visible on the rendered PDF that will appear in the highlights such as random line breaks. It's on our roadmap to clean this text automatically. In the meantime, you can edit your highlights in Readwise to remove the line breaks.
## How do I customize the appearance of a PDF while reading?
Although customizing the actual PDF isn't possible within Reader, since PDFs are essentially just a series of images, you can switch the document to `Enhanced text mode` (via the `Text view` icon in the top left on web or `...` > `View as text` on mobile) to view a plain text version. While in this mode, you can use the same appearance customization available in any other document type via the `Aa` menu.
## I'm using dark mode and the images in my PDF look strange. How can I fix it?
By default when using dark mode, PDFs have a color inversion filter applied to maintain the white-on-black color scheme. However, the filter can cause images to look pretty weird. If you'd prefer to turn it off, you can use the Command Palette (`Cmd/Ctrl + K`) to search for `Disable/enable PDF color inverting`. On mobile, you can navigate to the Settings page and toggle off the `Enable PDF color inverting` setting.
## Why can't I see my my highlights overlaid on the PDF?
Highlights made while in the `text view` mode won't be visible in the default PDF view mode, and vice versa. However, any highlights you've made will always be visible in the document's **Notebook** panel.
---
## Untitled
# 👻 Pro Tip
## Use Ghostreader to ask a question
One of the coolest features of Reader is an AI reading assistant called _Ghostreader_. Ghostreader enables you to define terms, look up encyclopedia entries, simplify complex language, and much more, but one of its most powerful functions is asking a document a question. You can ask this FAQ your question using Ghostreader and likely find the answer you're looking for.
Try it for yourself:
* **On web**: Hit `Shift + G` to invoke Ghostreader at the document-level, select "Ask the document question", and input a specific question such as "How do I upload an OPML file?" or "Where do I find the Safari extension?" Nine times out of ten it should return what you're looking for!
* **On mobile**: Tap the "..." icon in the lower right, tap the Ghostreader icon, and input a specific question such as "How do I save articles to Reader on iOS?"
---
## Searching
## How do I use full-text search to find a particular document?
Reader has blazingly fast, full-text offline search that will search the full text of all your Library documents, as well as their titles and authors.
On web, click the magnifying glass in the lower left or use the keyboard shortcut `/`, then type your search query.
On mobile, tap **Search** in the app's bottom bar, then use the search field at the top of the page.
Currently, documents in your Feed aren't indexed for full-text search. However, moving a document to your Library (inbox, later, shortlist, or archive) will allow it to be indexed and subsequently make it searchable.
For a workaround to search your Feed documents, [check out the FAQ below](/reader/docs/faqs/searching#how-can-i-search-my-feed-documents)!
## How do I find specific text within a document?
On web or in the desktop app, you can search for text within a document by using `cmd/ctrl + F`.
On mobile, you can find text within a document by tapping into the actions menu (`...`) in the bottom right and choosing `Find in document`.
## How do I filter my full-text searches?
Currently, filtered views and full-text search are distinct features. That said, it's on our roadmap to merge the two features and allow you to sort your search results or search within filtered views.
## How can I search my Feed documents?
Currently, documents in the Feed aren't indexed for search. However, this is something we've had requested a number of times and we are considering adding the option in the future.
In the meantime, you can include a text search of the title field within a filtered view. So, to search for a document in your Feed, you could use a query like this:
```
feed:true AND title__contains:"search term"
```
This won't search the full content of the article, but it can still be a useful way to find specific documents in your Feed.
You can use this same tactic to search your Feed based on any other available query parameter, such as the document's author or source domain. Check out the [query syntax guide](/reader/guides/filtering/syntax-guide) for a full list of available parameters!
---
## Sharing
## How do I copy the URL of the document to my clipboard?
You can copy the URL of the document to your clipboard a variety of different ways. On web, you can simply hit `Shift + C` to copy the URL of the current document or focused document to your clipboard. Alternatively, you can hit `O` to open the original document in a new tab or hover over the domain underneath the document title in the right sidebar to reveal a copy button. On mobile, you can enter the more menu (`...`) on any document and choose `Share` to copy the URL.
## How do I share an annotated article with a friend, colleague, or family member?
You can share a clean, distraction free version of any document you highlighted and annotated in Reader (except for EPUBs or PDFs) by entering the more menu (`...`), choosing `Share`, and selecting `Enable public link` on web or `Share with annotations` on mobile. This will create a publicly viewable link with your highlights and annotations overlaid. For more on this feature including best practices, see [our Twitter thread](https://twitter.com/ReadwiseReader/status/1575286281562718210) announcing the share annotated documents feature.
## What is a Bundle and how can I create my own to share with friends?
Bundles are themed collections of documents with pretty landing pages that can easily be shared with others.
To create a bundle, first save a filtered view in the web app, click the down chevron next to its name, and select `Enable public link`. You can optionally add a description and a cover image to spice up the public landing page. When a recipient hits the `Open in Reader` call-to-action, a filtered view will be created in their account and populated with the documents you curated.
## How do I share highlights?
You can share a beautified image of any highlight by clicking the `...` icon while hovering over the highlight in the Notebook panel, then selecting `Share highlight as image`.
On mobile, you can do this by tapping the `i` icon in the top right, tapping into the Notebook tab, tapping the `...` beside a highlight, and selecting `Share as image`.
## How do I print an annotated copy of a document?
You can print a clean copy of the document with all of your highlights by pressing `Cmd/Ctrl + P` or by opening the `...` menu and selecting `Print with annotations`. You can then use your browser's print dialogue to select a printer, customize the print options, and print the document.
If the document is a PDF, you can use `Shift + D` (or `Download with annotations` from the `...` menu) to download a copy of the original file with your highlights overlaid onto it.
---
## Text-to-Speech (TTS)
## What is text-to-speech?
Text-to-speech enables you to listen to virtually any document using the highest quality AI voices the big tech companies have to offer. Note that text-to-speech only works on PDFs in **text view**. You can still start TTS playback while in original PDF view, but doing so will automatically switch the document to text view.
## How do I start text-to-speech (TTS) partway through a document?
You can start the TTS from your current scrolled position by tapping the play button in the top right corner.
This will start the TTS at whichever paragraph is roughly centered on your screen when you start it.
## What's the difference between pausing and stopping the text-to-speech?
You can pause the current playback using the pause button in the middle of the playback control bar. This will keep the playback control bar active and remember your place, so you can resume playback when you're ready.
You can stop the TTS playback of the current document by tapping the square stop icon in the top right.
This will cancel the TTS playback of the current document and hide the control bar. If you wish to resume the document after stopping TTS, you'll need to relocate where you ended and restart TTS playback using the play button.
## How do I highlight while listening to a document using text-to-speech? Can I triple tap my AirPods?
Yes! To enable highlighting via triple tap, navigate to `Account settings` and then to `Headphone gestures`. By default, double tap is set to `Jump forward` and triple tap is set to `Jump backward`, but you can change either (or both) of these gestures to highlight instead.
## Sometimes the highlighted word misaligns from the spoken word while using text-to-speech. How do I make sure the highlighted word maps closer to the spoken word?
Occasionally, the speech will disconnect from the highlighted text. We are constantly improving the accuracy of this feature.
## How do I use text-to-speech offline?
Currently, it's not possible to use text-to-speech offline, but it's on our roadmap to add the ability to pre-download TTS before going offline.
## How do I use text-to-speech in the web app?
You can start using text-to-speech in the web app by clicking the `Listen` button in the top right, above the document's title. You can also use the Command Palette (`cmd/ctrl + K`) to search for `tts` and start playback from any point in the document.
## Can I use keyboard shortcuts to control TTS?
The web app has a full set of keyboard shortcuts to control TTS playback. `P` will play or pause, `shift + P` will stop playback, `left arrow` and `right arrow` will skip through the content, and `shift + up arrow` or `shift + down arrow` will control the volume. The built-in media controls on your keyboard will also work for this. To slow the speed of playback, press `,`, and to speed it up, press `.`.
## Does text-to-speech work on languages other than English?
Yes! To change the language while listening, tap on the waveform icon at the left side of the TTS bar, then tap `View all languages` at the bottom of the menu.
---
## 📣 FAQs Update Log
Changes and updates made to the Reader FAQ as the software evolves.
## July 3, 2025
- Add "bump to top" instructions to Navigation section
- Explain how to change the iOS app icon
- Add section for E-ink Devices
- Add long-form reading mode to Appearance section
- Update Ghostreader models
## March 6, 2025
- Expanded the "Ghostreader" section of the FAQs to include:
- How to turn off automatic prompts
- Our policy on sharing data with OpenAI
- Troubleshooting for automatic prompts turning off or failing
- Automatic prompt behavior for previously saved documents
## February 28, 2025
- Added instructions to export a document's highlights on mobile
- Added instructions for sending documents to Kindle
## February 19, 2025
- Added "Videos" section
- Moved "how to add YouTube videos" question from the Adding Content section to the new Videos section
- Added FAQs for enhanced transcripts, changing the captions language, resizing video player, and other video options
## January 2, 2025
- Updated TTS instructions to match current app UI
- Moved Substack instructions to Email Newsletters section
## October 10, 2024
- Updated documentation links to direct to [docs.readwise.io](https://docs.readwise.io) help center
- Updated all mentions of GPT 3.5 to GPT 4o Mini
- Minor tweaks to reflect updated UI
## April 11, 2024
- Added instructions for TTS on web
- Added paged scroll to Appearance section
## March 25, 2024
- Updated instructions for bulk importing via CSV
## March 21, 2024
- Updated all mentions of GPT 3 to GPT 3.5
- Added instructions on how to print annotated documents
- Clarified stopping vs pausing for TTS
- Added instructions on creating Bundles from filtered views
## March 13, 2024
- Fixed the Twitter configuration instructions to correctly link to the integrations settings instead of the import settings
## February 23, 2024
- Updated pricing information
## January 31, 2024
- Fixed a typo in the paragraph about personalizing the custom Reader email
- Fixed incorrect information about saving Twitter threads on mobile
## January 5, 2024
- Broke out importing instructions to a new section and added CSV format and Raindrop.io info
- Added new section explaining action tags (headings, concatenation, etc)
- Expanded Appearance 🕶️ section
- Explained Reader's de-duping logic
- Added best practices for subscribing to Substack newsletters
- Explained document tags vs highlight tags
- Explained Instapaper private content
- Added information about how to personalize your custom email address
- Explained how Reader stores docs and why they don't update with the original
- Expanded Exporting 📤 section
## December 19, 2023
- Added section about the Daily Digest
- Explained limitations of Kindle/Google/etc books
- Explained link between Reader docs and Readwise highlights
- Updated info about auto-highlighting feature
- Expanded section about PDF highlights
- Added browser extension hot key (`alt+R`)
## December 7, 2023
- Added more context for a variety of actions on mobile
- Updated instructions for saving Twitter threads
- Added instructions for customizing keyboard shortcuts
- Added instructions for switching to text view on PDFs
- Added information about PDF color inverting and how to disable it
- Updated TTS section to reflect new functionality (start midway through document, headphone gestures, etc)
- Various punctuation, semantics, and phrasing tweaks
## October 27, 2023
- Updated instructions for adding document notes to include mobile and browser extension
- Updated mobile directions for customizing appearance
---
## YouTube Videos
## How do I watch a YouTube video inside Reader?
If you save a YouTube link to Reader, you'll be able to watch it alongside its time-synced transcript and take notes and highlights as it plays. On web, you can also precisely navigate the video by clicking any fragment, clicking a highlight in the right sidebar, or using special keyboard controls.
## What keyboard shortcuts can I use while watching videos in Reader?
Like on YouTube itself, you can use the `space` shortcut to play or pause the video. You can also use the `,` and `.` keys to change the video's playback speed, and skip forward or backward by 15 second increments using the left and right arrow keys.
## What is "autoscroll" and how do I turn it off?
Autoscroll makes the video transcript act like a teleprompter, automatically moving the focus from paragraph to paragraph as the video progresses. If you'd like to turn this off so you can freely navigate the transcript as you watch, press `shift + enter` on your keyboard or click into the **Video settings** menu in the top left and select **Toggle autoscroll**.
If autoscroll is off and you've navigated away from the current section of the transcript, you can quickly hop back to be in sync with the video by pressing `cmd/ctrl + enter`.
## Can I resize the YouTube video to see more of the transcript?
Yes! To resize the video player, click and drag the small gray bar between the video and the transcript.
## The transcript from YouTube isn't great. Can I improve it somehow?
If the creator of the video didn't upload their own captions, then Reader uses the one that is auto-generated by YouTube. Although better than nothing, the auto-generated transcripts often have a lot of syntax and formatting issues, like missing punctuation and line breaks in the middle of paragraphs.
To fix this, you can use Reader's *enhanced transcript* option. On web, you can toggle the enhanced transcript by clicking the document icon in the top left corner.
On mobile, tap into the `...` menu in the lower right and select **View enhanced transcript**.
If you made any highlights on the original version of the transcript, they may not visible on the enhanced version. However, you will see a note letting you know that some of your highlights can't be overlaid onto the text, and all of your highlights will still be safe in your **Notebook**.
## How can I select a different language for a video's transcript?
To select a different language than the default (usually English) for the transcript of a video, click the globe icon in the top left and select your desired language from the dropdown menu.
On mobile, tap into the `...` menu in the lower right and select **Captions language**.
The language options in this menu are limited to the caption options available on the original YouTube video. If the creator of the video didn't upload any captions, you may only see a single `(auto-generated)` option in this list.
Selecting a different language from the default will create a *new document* in your Library with the language appended to the title to differentiate it from the original video document.
## How do I add my YouTube subscriptions to Reader?
To subscribe to a single channel, simply copy the URL of the channel and paste it into Reader's **Add Feed** dialogue (`shift + A`). This will add the 5 most recent videos to your Feed, and any new video the channel posts will be automatically pushed to your Reader Feed as well.
If you'd like to subscribe to all of your YouTube subscriptions at once, you can use [this bookmarklet created by jeb5 on Github](https://github.com/jeb5/YouTube-Subscriptions-RSS?tab=readme-ov-file) to create an OPML file from your subscriptions list. Upload the OPML to Reader by dragging and dropping the file onto the Reader window or by pressing `U`, and it will subscribe you to all of your YouTube channel subscriptions.
---
## Migrate Existing Content to Reader
If you've used another read-it-later app before Reader, you might have quite a lot of content saved elsewhere. Instead of manually re-saving your content, we've developed various integrations to migrate your content automatically.
## Migrate from Matter
You can import your Matter articles to Reader by generating an export [inside the Matter app](https://web.getmatter.com/settings), which will send you an email with a link to download your data.
Forward this email to [read@readwise.io](mailto:read@readwise.io) from the same email associated with your Reader account, and Reader will automatically follow the link and import the documents you saved to Matter.
At this time, the Matter import does not support tags or document locations (e.g. inbox, archive). This is something we hope to be able to support in the future!
## Migrate from Instapaper
To import your data from Instapaper, navigate to the [Integrations preferences](https://read.readwise.io/integrations) of your Reader account. Next to the Instapaper option, click **Connect**.
This will prompt you to log in to your Instapaper account. Once you've done so, your Instapaper articles should begin syncing to Reader. (Note that if you have a large Instapaper library, the initial import may take some time.)
Once you've connected your accounts, any new documents you save to Instapaper will also be saved to Reader.
The ten most recently saved and unarchived documents in your Instapaper account will go to the Inbox in Reader. The rest of your unarchived content will go to the Later tab. Any documents that were archived in Instapaper will go to the Archive.
If you'd like to see all of your imported Instapaper documents in one place, you can [create a filtered view](/reader/docs/organizing-content#filtered-views) using the query `saved_using:instapaper`.
## Migrate from Pocket
Pocket [shut down](https://support.mozilla.org/en-US/kb/future-of-pocket) on July 8, 2025. As of November 12, 2025, the API has been disabled and users can no longer export their data.
If you still have a ZIP file with your Pocket content, you can upload that to Reader using the instructions below, but the direct integration will no longer work.
If you exported your user data from Pocket before the shutdown, you can upload the `.zip` file to import that content to Reader.
To do so, upload the `pocket.zip` file on the [Integrations preferences page](https://read.readwise.io/integrations) of your Reader account.
If you downloaded your Pocket data while using Safari, note that Safari may have *automatically unpacked* the file. Trying to upload the unzipped file or recompressing it yourself can cause a partial or failed import.
To ensure a full and correct import, make sure to upload the original `.zip` file.
If you'd like to see all of your imported Pocket documents in one place, you can [create a filtered view](/reader/docs/organizing-content#filtered-views) using the query `saved_using:pocket`.
---
## Organizing Content
Once you've [saved a lot of content](/reader/docs/saving-content) to your Reader account, you might find yourself struggling to stay organized. Luckily, Reader has a few different ways to make sense of the chaos.
## Tags
Tags come in two flavors: *document tags* and *highlight tags*. As the names imply, document tags are applied to the full document, while highlight tags are applied to individual highlights.
You can click a tag wherever it appears to display a [filtered view](#filtered-views) of the documents it contains.
### Add tags on web
On web, adding document tags is slightly different depending on how you're viewing the document.
- **From the list view:** Focus the document you'd like to tag (by using the arrow keys or hovering the document with your mouse) and press `T` on your keyboard. You can select the tag from the dropdown or begin typing to search. Use `enter` to apply to the tag and close the menu, or use `cmd/ctrl + enter` to apply the tag and keep the menu open.
- **From the document view:** Press `shift + T` on your keyboard to open the tagging menu. You can select the tag from the dropdown or begin typing to search. Use `enter` to apply to the tag and close the menu, or use `cmd/ctrl + enter` to apply the tag and keep the menu open.
You can add *highlight tags* by selecting the highlight and pressing `T`, or by clicking the tag icon in the annotation menu that appears.
### Add tags on mobile
On mobile, you can add *document tags* in a couple of ways:
- **From the list view:** Tap the three dot (...) menu in the right-hand corner of the listing card, tap Notes and tags, then select the tag you'd like to apply to the document. (If the tag doesn't already exist, just type it into the search bar and then tap the dropdown option that appears to create the tag and apply it to the current doc.)
- **From the document view:** Tap the icon to the left of the three dot (...) menu in the bottom bar (it looks like a comment bubble and a tag next to each other), then select the tag to apply to the document.
You can add *highlight tags* by tapping the highlight, then tapping the tag icon in the menu that pops up:
If the tag you'd like to add doesn't already exist, you can simply type it in and then tap where it appears right below the text field to create it:
## Filtered Views
Filtered views allow you to organize the content in your library based on a multitude of parameters, such as the date saved, reading length, number of highlights, and more.
For a list of all the available filtering parameters, check out our [query syntax guide](/reader/guides/filtering/syntax-guide). Or, if you need some help getting started, explore some of our [query examples](/reader/guides/filtering/query-examples)!
### Create a filtered view on web
Navigate to the [Manage views page](https://read.readwise.io/views) by clicking **Manage views** below the **Pinned** section of the left sidebar, then click **Add filtered view** in the top right.
Alternatively, you can use the keyboard shortcut `shift + F`.
Type in your [filter query](/reader/guides/filtering/query-examples) and click **Filter by query**. Then, to keep the view for later, click **Save view** and give it a name.
You can use the [Tags](https://read.readwise.io/tags) page to quickly add tags to new or existing views.
### Create a filtered view on mobile
Tap into the **Search** tab of the Reader app and then tap the `+` icon in the top right corner of the views list.
Type in your [filter query](/reader/guides/filtering/query-examples) and then tap **Show** to see the filter. To save it for future use, tap **Save** and give it a name.
## RSS Folders
RSS folders (or "feed folders") allow you to easily group feed sources into manageable categories, which you can then explore without the extra noise of other feeds getting in the way.
### Create RSS folders on web
To create an RSS folder on web, navigate to the [Manage feeds page](https://read.readwise.io/feed/sources) and use the "Manage folders" dropdown to add a feed to a new or existing folder.
Once the folder has been created, you can drag and drop feeds from the list into the new folder in the left sidebar.
Use `shift + X` to open or close all folders in the sidebar at once!
### Create RSS folders on mobile
On mobile, you can create folders in your Feed by tapping the `+` icon in the top right, then selecting **Add new folder**. Enter a name for your new folder, then tap **Next**.
You can add feeds by tapping them in the list so that they show a blue checkmark. Once you've added the feeds you'd like to have in this folder, tap **Next** again to create the folder.
To access your folders, tap the three horizontal lines in the top left of the Feed page to open the sidebar.
Once you've created an RSS folder, you can add or remove feeds to or from the folder in a couple of ways.
1. **From the folder:** From the Feed sidebar, tap into the folder you've like to add the new feed to. Tap the `+` button in the top right, use the search field or scroll until you see the feed you're looking for, then tap the item to add it to the folder. Tap **Done** in the top right to confirm.
2. **From the individual feed view:** From the Feed sidebar, tap the name of the feed you want to put in a folder. Tap the `+` button in the top right, then tap the name(s) of the folder you'd like to put the feed into. Tap **Done** in the top right to confirm.
---
## What is Readwise Reader?
Readwise Reader is an all-in-one reading app designed to enhance your digital reading experience. Reader brings together all your reading materials—articles, newsletters, EPUBs, PDFs, videos, tweets, and more—into one unified, customizable platform and seamlessly integrates with Readwise.
With Reader, you can highlight and annotate text as you read, and all your highlights and notes will automatically sync to your Readwise library for easy organization and review.
## Where should I start?
Great question! With so many options for importing, exporting, and customizing, it can be nice to have a jumping off point. To help you get started, here are some ideas:
1. [Import existing content](/reader/docs/faqs/importing-content) from Pocket, Instapaper, Feedly, or other platforms.
2. [Add new content](/reader/docs/faqs/adding-new-content) using the browser extension, mobile share sheet, or drag-and-drop file upload.
3. [Subscribe to RSS feeds](/reader/docs/faqs/feed) to get new content in your account every day.
4. [Customize Reader's appearance](/reader/docs/faqs/appearance) to suit your reading preferences—make the text bigger, turn on paged scroll, switch to dark mode, and more.
5. Start reading and annotate as you go with simple [highlighting and note-taking](/reader/docs/faqs/highlights-tags-notes) functionality.
## What else can I do with Reader?
To learn more about some of Reader's more advanced features, check out these resources:
---
## Saving Content to Reader
Your Reader library is only as good as the content it holds, so how can you make sure it's full of things you want to read? By saving cool things as soon as you find them!
## Save from the web with the browser extension
The Reader browser extension performs two functions: first, saving articles to Reader and second (optionally), highlighting the open web. To save a document to Reader, tap the icon in the browser bar or use the keyboard shortcut `alt + R`. (You can change the keyboard binding in the extension's options.) This will save a clean, readable version of the document to your Reader inbox.
The browser extension is the most robust way to save documents to Reader because the extension gets the underlying content rendered in your browser as opposed to just a URL.
### Browser extension features
1. **Open in Reader:** Go to the current article in your Reader Library.
2. **Number of highlights:** Displays the number of highlights you've taken on the current document.
3. **Toggle auto-highlighting:** By default, this option is on and selected text on the page will automatically become a highlight in Reader. If turned off, selections will need to be manually converted to highlights via the annotation menu bar.
4. **Add tags:** Open the tagging menu to categorize the document.
5. **Add a document note:** Open the document note field. Good for adding context about why you're saving a document, or who recommended it.
6. **Move the document:** By default, the extension saves documents to the first section of your Library (either Inbox or Later, depending on your configuration). Use this dropdown menu to move the document to another section. For example, you can move it straight to the archive if you read it on-site.
7. **Hide the extension bar:** Click the upward arrow to hide the extension's options.
## Save on mobile with your device's share menu
You can save documents to Reader using your mobile device's share sheet.
If you don't see Reader among the apps you can share to, try restarting your device. Sometimes mobile devices have a bug where new apps don't immediately appear in the share menu, but a restart should clear that up.
On mobile, Reader can only get the full content of a paywalled article if it's saved using the iOS Safari browser while logged into the site. When importing from other sources (e.g. the native WSJ or NYT apps) or from any Android browsers, Reader only receives the naked URL, and this results in partial parsing because the full content is blocked.
### Mobile share menu features
1. **Read Now:** Open the shared article in the Reader app.
2. **Delete:** Remove the shared article from your Reader Library.
3. **Add tags:** Open the tagging menu to categorize the document.
4. **Add a document note:** Open the document note field. Good for adding context about why you're saving a document, or who recommended it.
5. **Move to Later:** Move the shared article to the Later section of your Library. *Note: If your Library is using the "Shortlist" configuration, this will be a star icon that will move the document to your Shortlist.*
6. **Move to Archive:** Move the shared article to the Archive section of your Library. This is useful for articles you've read in your browser and simply want to save for posterity.
---
## Default Filtered Views
Reader comes with a few preset filtered views. If you've deleted one of them—either intentionally or by mistake—you can recreate it by referencing the queries below.
## Library Sub-Categories
Reader comes with some default sub-categories that are nested under the Library section of your account. These have custom icons and can be hidden by toggling the arrow to the left of the Library heading.
If you've deleted one of these default views, you can add it back to the list by [creating a new filtered view](/reader/docs/organizing-content#filtered-views), then entering the appropriate query from the list below.
- **Articles:** `category:article`
- **Books:** `category:epub`
- **Emails:** `category:email`
- **PDFs:** `category:pdf`
- **Tweets:** `category:tweet`
- **Videos:** `category:video`
To properly recreate a Library view that's been deleted, the query needs to be *exactly* the same as it appears above, with no space between the `:` and the category name.
Once the view has been recreated, it will re-adopt the default icon and will display in the Library section of the sidebar when Pinned.
## Default Filtered Views
These views can be accessed from the [Manage views page](https://read.readwise.io/views), and they can be Pinned to the sidebar by clicking the pin icon in the list view or by selecting **Pin to sidebar** from the view's dropdown menu.
Many of these default views use `(in:inbox OR in:later)`. If you use the Shortlist Library configuration, you may want to edit these to use `(in:later OR in:shortlist)` instead.
---
### ⭐ Shortlist
Tagged `shortlist` and not yet archived
```
tag:shortlist AND (in:inbox OR in:later)
```
This default view is also associated with a keyboard shortcut: you can add the `shortlist` tag to documents using the `S` key.
The `shortlist` tag is meant for when your Library is in the Triage configuration. If you switch to the Shortlist configuration ([more here](https://www.youtube.com/watch?v=MX0XN\_O89r0)), you should use `in:shortlist`.
---
### 📥 Recently added
Saved in the past week and not yet archived
```
saved__gt:"1 week ago" AND (in:inbox OR in:later)
```
---
### ✨ New in Feed
Unseen in the Feed section
```
feed:true
```
Just looking at the query, you might think that this view simply shows everything in the Feed. While technically true, this view is also [split](/reader/docs/faqs/filtered-views#what-does-it-mean-to-split-a-view) by the Seen status of its documents. When [featured on the home page](/reader/docs/faqs/filtered-views#how-do-i-add-a-filtered-view-to-my-home-page), only documents in the first tab of a split view will display on home. The view is also sorted in reverse chronological order by *Date saved*.
This means that, in practice, the home page version of this view will display *unseen documents with the most recent first*.
---
### 📖 Continue reading
Started in the past week and not yet archived
```
progress__gt:5 AND last_opened__after:"1 week ago" AND (in:inbox OR in:later)
```
The default query for the "Continue reading" view specifies that only documents with progress beyond 5% of the document are displayed. This is meant to prevent any recently opened document from appearing if all you did was open it and then close it again, but if you often read longer documents, you might stop reading less than 5% of the way through the document. To adjust for this, you can change the 5 to a smaller number or even delete that section of the query entirely.
---
### ⏱️ Quick reads
Short than 10 minutes and not yet archived
```
minutes__lt:10 AND (in:inbox OR in:later)
```
---
### ⏳ Long reads
Longer than 30 minutes and not yet archived
```
minutes__gt:30 AND (in:inbox OR in:later)
```
---
### 💎 Recently highlighted
Highlighted in the past week
```
has:highlights AND last_opened__gt:"1 week ago"
```
Despite the name, this view *technically* will display any document that has any highlights and that has been opened recently, even if the none of the document's highlights were made within the last week.
If you want to see your individual highlights in reverse chronological order, you can check out your [Readwise "Latest" view](https://readwise.io/latest).
---
## Filtered View Examples
## Short reads
Display all documents in the Later section of the Library that have an estimated read time of less than 10 minutes.
```
minutes__lt:10 AND in:later
```
## Currently reading
Display all documents started in the last week and not yet archived.
```
progress__gt:5 AND last_opened__after:"1 week ago" AND in__not:archive
```
This query specifies that only documents with progress beyond 5% of the document are displayed (`progress__gt:5`). This is meant to prevent any recently opened document from appearing if all you did was open it and then close it again, but it's possible that—perhaps for exceptionally long documents—you might have stopped reading less than 5% of the way through the document, which would mean that it won't appear in this view
To solve for this, you can edit the query and change the 5 to a smaller number or even delete that section of the query entirely.
## Delete automatically imported Pocket or Instapaper articles
```
saved_using:pocket AND highlights:0
```
Once you've created the filtered view, you can clear out all of its contents with the following steps:
* Use `shift + B` to open the Bulk Actions menu
* Start typing `Delete`... to find `Delete all documents`
## Untagged documents view
If you’re trying to clean up your account and want to find all of the documents that you haven’t tagged, you can use a custom filtered view with the following query:
```
has__not:tags
```
This will create a new filtered view showing any documents without a tag. If you'd like to keep the view handy for periodic housecleaning, you can click **Save view** and give it a fun, broom- or vacuum-related name.
## View all email subscriptions
Email subscriptions don't currently appear in the Manage Feeds view, but you can create a custom filtered view to see only feed items added via email. To do this, you can use the following query:
```
feed:true AND type:email
```
To make this view act like the Feed, you can use the caret dropdown menu to select **Split view** (or press `\` on your keyboard) and split by **Seen** to get the same Unseen and Seen tabs.
Additionally, if you'd like to see only the newsletters from a specific source or author, you can click the author name in the **Info** tab of the right-hand sidebar to see a filtered view, which you can then save to your account.
## Clean out old Feed documents
If your Feed is getting cluttered up with old documents you never looked at, you can create a new filtered view showing any documents from your feed older than a week to easily clean out your backlog using the following query:
```
feed:true AND saved__lt:"1 week ago"
```
Once you've saved the view, you can use the caret dropdown menu to select **Split view** (or press `\` on your keyboard) and split by **Seen**.
Once you've split the view, you'll see the same options you have on your general **Feeds** view: **Mark all as seen** in the bottom left of the **Unseen** tab, and **Delete all** in the bottom left of the **Seen** tab. By clicking **Mark all as seen** and then **Delete all**, you can quickly delete all of your old feed items at once.
## Filter out YouTube Shorts
Subscribing to a YouTube channel [via RSS](https://tips.slaw.ca/2019/technology/rss-feed-for-a-youtube-channel-or-playlist/) is great, until your feed starts getting clogged with YouTube Shorts. To lose the junk food and focus on the meatier videos, try this filter:
```
category:video AND minutes__gt:2
```
## Unfinished long reads
This acts like a "Continue Reading" but only for documents with a read time over 20 minutes. It also reduces the progress requirement, since the progress data is a percentage and longer documents will have a smaller percentage after more reading.
```
progress__gt:3 AND minutes__gt:20 AND (in:inbox OR in:later OR in:shortlist)
```
---
## Filtering Syntax Guide
Filtered views are powerful tools for organizing your Reader documents. The power behind them comes from **queries**, which can be customized with a variety of parameters.
## Query Structure
Creating a query from a single parameter is relatively straightforward: enter the parameter and the desired input.
To create a query that uses multiple parameters, you'll need a bit more structure. This structure is added using three core concepts: `AND`, `OR`, and nesting via parentheses.
### AND
This is used to link parameters that should *all* apply to each filter result. For example, `tag:news AND published__after:"1 week ago"` will return documents that are tagged with "news" and were published within the last week.
### OR
This is used to link parameters where only *one* of them should apply to each result. For example, `tag:news OR tag:tech` will return documents that are tagged with "news" or are tagged with "tech".
### Nesting
What do you do if you want to mix and match your ANDs and ORs? Parentheses!
To separate the parameters from each other, you can group them into shorter statements with parentheses. For example, to display recent documents from two different tags, you could use `(tag:one OR tag:two) AND saved__after:"2 weeks ago"`.
## Date Parameters
These parameters filter results based on the date of a particular aspect of the document. You can use dates in two formats: absolute (e.g. `2024-09-15`) or relative (e.g. `"1 week ago"`).
Date parameters are often most useful when combined with the `__before` and `__after` [operators](#operators).
### saved
Filters by the date the document was saved to your Reader library.
### last_opened
Filters by the date that the document was most recently opened.
### published
Filters by the date that the document was published.
### last_status
Filters results by the date of the most recent action taken on the document, such as moving it from the inbox to the archive.
## Text Parameters
These parameters filter results by text-based metadata, such as title, author, or category.
If the text input contains more than one word, it should be placed inside of quotation marks, e.g. `title__contains:"keyword or search term"`.
### tag
Filters by tag(s) applied to the document.
### domain
Filters by the domain the document originated from, e.g. `nytimes.com` or `youtube.com`.
### url
Filters by the full URL of the document's original page.
### category or type
Filters by the document's type. These types are set by Reader when the document is saved, so the valid options are limited to the following list:
- `article`
- `epub`
- `email`
- `pdf`
- `tweet`
- `rss`
- `video`
If you've deleted one of the default category views that lives under the Library in your Reader sidebar and decide you want to restore it, you can do so by creating a filtered view with the query `category:[name]`.
For example, to recreate the "Books" view, you would want to use the query `category:epub`. (Make sure there's no space after the colon!)
Once the view is recreated, it will re-adopt the default icon and display in the Library section of the sidebar.
### rss_source
Filters by the name of the source RSS feed. This will only work on documents added via an RSS feed, not with manually saved documents or documents sent via email.
### author
Filters by the name of the document's author.
### location or in
Filters by the document's current location within your Library.
If you're using the default Triage Library configuration, the Library locations are `inbox`, `later`, and `archive`.
If you're using the Shortlist configuration, the options are `later`, `shortlist`, and `archive`.
### title
Filters by the title of the document.
### saved_using
This parameter is used to locate documents imported from another read-it-later service.
*Options:*
- `instapaper`
- `pocket`
- `omnivore`
## Binary Parameters
These parameters filter results by parameters that can either be `true` or `false`.
### feed
Filters by whether or not the document is in the feed.
### seen
Filters by whether the document has been opened or marked as seen.
### unseen
The inverse of the above: Filters by whether the document has been opened or marked as seen.
### shared
Filters by whether the document has a public link enabled.
## Numerical Parameters
These parameters filter results based on parameters that accept numbers.
Numerical parameters are most often useful when combined with the `__lt` or `__gt` [operators](#operators).
### words
Filters by the number of words in the document.
### progress
Filters by the reading progress percentage.
### highlights
Filters by the number of highlights made in the document.
To display all documents with at least one highlight, you can also use `has:highlights`.
### minutes
Filters by the estimated reading time of the document.
### saved_count
Filters by the number of times a document has been saved to your account.
## Other Parameters
### has
This parameter filters documents based on whether or not certain annotations have been made. It accepts the following options:
- `highlights`: Displays all documents with at least one highlighted passage.
- `tags`: Displays all documents with at least one tag.
- `notes`: Displays all documents with content in the document note field.
## Operators
You can add these double underscore operators to other parameters above to modify them.
*Example:*
```
highlights__gt:5
```
### __gt
**Type:** Numeral
Displays results where the parameter is *greater than* the specified number.
### __lt
**Type:** Numeral
Displays results where the parameter is *less than* the specified number.
### __gte
**Type:** Numeral
Displays results where the parameter is *greater than or equal to* the specified number.
### __lte
**Type:** Numeral
Displays results where the parameter is *less than or equal to* the specified number.
### __contains
**Type:** Text
Displays results where the parameter contains the specified text anywhere within its content.
### __exact
**Type:** Text
Displays results where the parameter content is exactly the same as the specified text.
### __before
**Type:** Date
Displays results where the parameter's date is earlier than the specified date or time frame.
### __after
**Type:** Date
Displays results where the parameter's date is later than the specified date or time frame.
### __not
**Type:** Any
Displays results where the parameter does or is *not* the same as the specified input.
---
## Chat with your documents
Reader's Chat feature allows you to chat with documents as you're reading. This is currently only available on the web and desktop versions of Reader, but we plan to reciprocate the feature to mobile as we continue to develop it.
To access the chat, open any document and click **Chat** in the right sidebar (or hit the backtick `` ` `` twice to cycle between the panels).
The language model has access to the underlying document, its metadata, and your reading position, so it's more effective than other Ghostreader prompts at extracting detailed information, clarifying random questions that come up while reading, and applying the writer's concepts to domain-specific situations. The LLM also has access to the chat history, so you can more naturally ask follow up questions.
## Save chat responses
If you get a particularly useful or evocative response while chatting, you can save it to the document's note field. Not only will this separate the note out from the chat interface, it will also allow it to be synced to Readwise with the rest of the document's notes and highlights.
To save a response to the document note, click the notebook icon below the response.
Additionally, you can use the **Copy** icon to save the response to your clipboard for use elsewhere.
## Change the GPT model
By default, it uses OpenAI's `GPT-5.1` model with fairly low thinking for quick replies, but you can optionally switch to a more thoughtful version of the model if you'd prefer to trade speed for intelligence.
To change the model, click into the dropdown menu at the bottom of the chat field.
## Clear the chat history
If at any point you'd like to start fresh with a new chat, you can click **Clear chat** at the bottom of the Chat panel. This will erase all of the current responses, so make sure you've copied or saved anything you might want to keep before you click this!
## Use preset prompts
Ghostreader comes loaded with a variety of [default prompts](/reader/guides/ghostreader/default-prompts), and you can also [customize them or create your own](/reader/guides/ghostreader/custom-prompts).
To use a preset prompt, open the **Preset prompt** dropdown at the bottom of the chat window and select the prompt you'd like to run.
The preset options will vary based on the [scope](/reader/guides/ghostreader/custom-prompts#scopes) of the selected text. That is to say, you'll see a different set of options if you have a word or two selected in the document versus if you have a full sentence or paragraph selected. If you have nothing selected, the listed prompts will be for the full document content.
To quickly access the preset prompts, use the `G` keyboard shortcut for selected words or passages, or use `shift + G` to run a prompt on the full document.
Note that preset prompts use the GPT model set for them on the [Ghostreader preferences page](https://read.readwise.io/preferences/ghostreader), *not* the model currently selected for the chat.
If you'd like to save a particular chat response as a highlight note, you can use the **Copy** option below the response, then use the `N` keyboard shortcut to edit the highlight note and paste the Ghostreader note.
---
## Ghostreader Prompt Customization
You can enrich your reading experience with Ghostreader's built-in prompts written by the Readwise team, but you're not restricted to only those use-cases. The option to fully customize those prompts or even write your own is arguably Ghostreader's coolest feature.
This page will guide you through the basics of crafting a Ghostreader prompt, using the default summarization prompt as an example. Or, for an even quicker start, you can jump over to the [prompt library](/reader/guides/ghostreader/prompt-library) to copy/paste some prompts created and shared by others.
## Scopes
One of the first things to understand about creating prompts for Ghostreader is the concept of a prompt's scope. *Scope* here refers to (a) how much of the original document content is selected/highlighted and (b) where the Ghostreader response is outputted.
- *Document prompts*, such as summarizing the document or extracting takeaways, operate at the whole document level. On mobile, the response is outputted to the document note field.
- *Paragraph prompts*, such as simplifying text or expanding a concept, operate on the individual highlight level (when the highlight is longer than 4 words). On mobile, the response is outputted to the highlight note.
- *Word or phrase prompts*, such as define or encyclopedia lookup, operate on the individual highlight level (when the highlight is 4 words or fewer). On mobile, the response is outputted to the highlight note.
- *Automatic prompts* operate at the whole document level and acan be run automatically when a document is added to your Library. Currently, Ghostreader only has two automatic prompts: auto-summarizing and auto-tagging.
## Customizing Prompts
You can customize any prompt from the [Ghostreader section of the Preferences menu](https://read.readwise.io/preferences/ghostreader) in the web and desktop apps.
Here you’ll find all the prompts that can be customized, organized into sections based on scope.
## Anatomy of a Prompt: Summarize the document
To explain how a prompt is created, let's take a look at the default summarization prompt. To get started, click `Edit prompt` next to **Summarize the document**.
If it’s your first time editing it, you'll see the default prompt that’s currently being applied to your documents:
```
{#- BACKGROUND: This prompt instructs ChatGPT to summarize the document into three information-dense sentences. It's intended to be used after you're done reading. If you want your summaries in a language other than English, we recommend rewriting the entire prompt in the target language. You can get quite creative using combinations of logic and variables to enable all kinds of creative use cases. See the documentation for details and examples. -#}
Write three easy-to-read sentences summarizing the following text:
===
Title:
Author:
Domain:
{#- The if-else logic below checks if the document is very long, long, or short in order to not exceed the GPT "prompt window". We highly recommend not changing this unless you know what you're doing. -#}
IMPORTANT: Write no more than THREE sentences. Each sentence should be short and easy-to-read. Use words sparingly and please capture the big idea.
```
You’ll notice several uses of single or double curly brackets, sometimes with percentage symbols or hashes. This is the syntax of the templating language known as [Jinja2](https://jinja.palletsprojects.com/en/2.10.x/templates/). Even basic knowledge of Jinja can allow for lots of creative uses—including if statements and if-else statements—as well as inserting the custom variables we’ve created to render your prompt with the target document’s content and metadata.
Now, let’s break the default summary prompt into its parts.
### Commenting
*Template part:* `{#- BACKGROUND: This prompt instructs ChatGPT to... -#}`
The `{#` notation is how you leave a comment in a Jinja2 template. We’ve written this template to help orient users who don’t read the manual. The `-` symbol ensures that no blank space is left behind when the prompt renders. (More on what rendering means below.)
### Plain Language Instructions
*Template part:* `Write three easy-to-read sentences summarizing the following text:`
This is just a plain language instruction, like what you might write inside a ChatGPT chat.
### Delimiters
*Template part:* `===`
This is just a random delimiter to let GPT know that you’re separating the text you want summarized from the rest of your instructions. Three quotes was a common convention when GPT was first getting popular, but you could use anything (a few backticks, a few plus signs, etc.)—there's no syntax rule that requires it to be quotes.
### Metadata Variables
#### Title
*Template part:* `Title: `
Now we’ve arrived at the first custom variable of this prompt. When Ghostreader renders this prompt, it replaces `` with the title of the document being summarized. So if you were summarizing an article entitled *Hunter S. Thompson's Letter on Finding Your Purpose and Living a Meaningful Life*, this line would render **Title: Hunter S. Thompson's Letter on Finding Your Purpose and Living a Meaningful Life.**
#### Author
*Template part:* `Author: `
This variable will be replaced with the name of the document author. So if you’re summarizing *The Art of War*, this would render as **Author: Sun Tzu**.
#### Domain
*Template part:* `Domain: `
This variable will be replaced with the name of the domain that the document was saved from. So if you’re summarizing an article from the New York Times, this would render **Domain: nytimes.com**.
### If Statements: Content Length
#### Opening if tag
*Template part:* ``
This is an important if statement. LLMs have what’s known as a “context window” (discussed below). The pipe symbol `|` followed by the subroutine `num_tokens` after `document.content` checks how long the document is in tokens. If the document is longer than 25,000 tokens, the next line reduces the document to a manageable amount of text that doesn’t exceed the GPT context window.
#### What to do when if returns true
*Template part:* ``
If the document is too long to fit in the context window (or you don’t want to spend an excessive amount of money on API credits), this line runs a custom subroutine we’ve made called `central_paragraphs` which reduces the document to its most important paragraphs. This specific line is meant for very long documents, which often fail with the `central_sentences` subroutine (explained below).
The `join('\n\n')` filter ensures that the paragraphs are returned with two line breaks between each one to keep them separated.
#### elif tag
*Template part:* ``
The `elif` tag functions essentially the same as the `if` tag, but it will only run when the original `if` statement assesses to false. In this case, it will run on any documents that are shorter than 25,000 tokens, and it will assess to true if the document is still longer than 2,500 tokens.
#### What to do when elif returns true
*Template part:* ``
Like the answer for the opening `if` above, this line runs a custom subroutine called `central_sentences`, which reduces the document to its most important sentences. This subroutine employs a popular LLM framework for embedding-based extractive summarization.
#### else tag
*Template part:* ``
Following an if statement, this else statement indicates what should be done if the results of the `if` statement and the `elif` are both false—in this case, if the document is not longer than 2,500 tokens.
#### What to do when if returns false
*Template part:* ``
This variable renders the full content of the target document.
#### Closing if tag
*Template part:* ``
This delineates the end of the if-else statement.
An LLMs “context window” is the amount of information it can refer back to when generating a response. Essentially, it’s like the model’s short-term memory. Different models have differently sized context windows.
The if-else logic included in Reader’s default summarization prompt (explained above) checks to see if the document’s content will exceed a certain number of tokens. If the provided content exceeds the context window of the selected model, the Ghostreader prompt will fail, so this logic helps avoid that.
### Final Instructions
*Template part:* `IMPORTANT: Write no more than THREE sentences. Each sentence should be short and easy-to-read. Use words sparingly and please capture the big idea.`
This is another plain language instruction, this time emphasizing the crucial points of the prompt. LLMs get off track fairly easily and thus benefit from the repetition of rules, so it doesn’t hurt to re-state important concepts that were already included at the beginning of the prompt.
## Reset to Default
If you've made some edits to a default prompt but decide you preferred the original or want to start fresh, you can use the **Reset prompt** button to return the prompt to its default value.
## Non-English Summarization
One of the most straightforward use cases of customizing your summary prompt is to get Ghostreader to write summaries in a language other than English. Large language models are trained on all the publicly available text on the internet, which is largely written in English, so they have a strong bias to respond in English even if you give them instructions to, say, “Write this summary in German.” To overcome this bias, it’s extremely effective to rewrite the entire prompt in German itself.
```
Verfassen Sie umgehend drei knappe, leicht erfassbare Sätze zur Zusammenfassung des nachfolgenden Textes:
...
ACHTUNG WICHTIG: Begrenzen Sie sich strikt auf drei Sätze – jedwede Ausschweifung ist inakzeptabel. Jeder Satz muss präzise, unmissverständlich formuliert, sowie grammatikalisch und orthografisch korrekt sein. Fassen Sie die zentrale Aussage knapp und ohne Umschweife zusammen.
Schreiben Sie eine Zusammenfassung auf Deutsch:
```
We’re using German here as an example, but obviously you should translate our English prompt to your desired language.
## Jinja Basics
As mentioned above, Ghostreader uses a templating language called Jinja2 for its prompt templates. To help you navigate these areas of your prompts, here are some of the basic Jinja functions that are most useful for crafting Ghostreader prompts.
ChatGPT is surprisingly good at writing and error-checking Jinja. Try asking it for help if you get stuck!
### Commenting
As mentioned in the prompt breakdown above, comments use the syntax `{#- COMMENT TEXT HERE -#}`. Anything included between the two `-` symbols won’t be used in the prompt, so this is a great place to make notes to yourself (and others, if you share your prompt) or explain the logic behind a certain piece of the template.
### If-else statements
If you’re familiar with any programming languages (JavaScript, Python, etc.), the concept of an if-else statement is probably old hat. If not, here’s a brief explanation, as stated in the Jinja documentation.
>In the simplest form, you can use it to test if a variable is defined, not empty and not false
For example, you could use it to check if a document has a note:
```
Document Note:
```
If the document does have any text in the document note field, the if statement will return *true* and the note will be included. If it doesn’t, the statement will return *false* and won’t output anything.
You can get even more creative with the use of `elif` and `else`. This lets you branch your if-else statement into various outcomes—whichever `if` evaluates as true first will be the section that gets run on the input.
```
...
...
...
```
With the above template, a document called “Is this a Twitter List?” would use the first section of the prompt, a document called “Just another Twitter List” would use the second, and a document called “I’m a listicle” would use the third.
You can put if-else statements inside of each other to achieve more complex logic. For example, a prompt might first run an if statement to check if the document is a Twitter List, and if that returns false, then it would run the usual summarization prompt and its if statement to check the document length.
You can nest as many if-else statements as you’d like, but be warned that it’s easy to lose track and write a failing prompt. If you had no trouble following the plot of Inception, you’ll probably be okay. If not, well… if-else at your own risk!
### Using the length filter for highlights
You can use the Jinja filter `length` to check how many highlights a document has and use it to set an if statement, like so:
```
...
```
This would only render the results of the enclosed section if the target document has 3 or more highlights.
### Setting custom variables
You can set your own custom variables in a prompt by using the `` command, like so:
```
```
This will allow you to use the highlight_number variable to insert the number of highlights on the document. For example:
```
End the summary with a new line, followed by the sentence "This document has highlights."
```
## Model Selection
is included with your subscription. You can [use a more advanced model](/reader/docs/faqs/ghostreader#how-can-i-use-a-different-gpt-model) if you'd like, but it requires using your own OpenAI token. That said, we caution you to be careful not to use o3 *and* try to summarize an entire book’s content—you might be a bit shocked by your next OpenAI bill.
If you've added your own API key, you can change the model of any prompt by selecting your desired model from the dropdown menu in the lower left corner of the prompt editing screen. Don't forget to click the `Save` button or the new model won't be applied.
## Automatic Prompts
Ghostreader has two automatic prompts that work slightly differently than the rest of the prompts: auto-summarization and auto-tagging. These two prompts are listed in their own section of the Ghostreader customization page, and they can't be deleted or moved to another section.
The auto-summarization prompt (the default of which was discussed above) outputs its response into the summary field in the document's metadata. It can be [set to run automatically](/reader/docs/faqs/ghostreader#how-do-i-enable-auto-summarization-or-auto-tagging) on any document that gets added to your Library, and it can also run automatically on any new document in your Feed if you've added your own API key.
The auto-tagging prompt outputs its response as document tags. With how subjective most people's tagging systems are, this prompt is a bit trickier to use effectively. We'll discuss why, and our best recommendations for how to try, in the following sections.
### Ghostreader Tagging (tag at your own risk)
Before we get started with this section, we'd like to highly recommend you don't turn on the auto-tagging feature until you've taken some time to customize and test your auto-tagging prompt. Doing so is likely to flood your account with new tags that you may or may not want, and deleting the extraneous ones can be quite tedious.
With that out of the way, let's discuss Ghostreader's tagging functionality!
Using an LLM to “tag” a document is an extremely cutting edge approach. Historically, this problem has been approached through a technique called *topic modeling*, which takes a huge set of text documents, converts each document to a numerical representation, and then clusters those documents based on how mathematically “close” they are to one another. Then the text in those clusters are analyzed for unusually frequent words in the related documents.
That’s kind of a black box. This is much more fun.
In order to get this to work, you need to write a prompt that gets GPT to respond with a set of 1 to 6 comma-separated tags.
If the output is not formatted as a comma-separated list, the prompt will fail. For example, if GPT responds with a bunch of explanatory verbiage, it’s going to fail.
#### Taxonomy Prompt
The most effective technique for getting GPT to tag your documents, by far, is what we’re calling a taxonomy prompt. This is where you explicitly describe all the tags used in your system and a short description of *how* they’re used. While effective, it’s also the most laborious to craft.
Here’s an example taxonomy prompt that might work for a news/magazine reader:
```
Your job is to categorize various types of documents including web articles, ebooks, PDFs, Twitter threads, and YouTube videos into one of the interest-based topic labels provided.
"""
Technology: Documents covering the latest trends, innovations, and advancements in technology, including topics like AI, artificial intelligence, machine learning, robotics, virtual reality, gadgets, cybersecurity, programming languages, breakthroughs, hardware devices, cryptocurrency, and software development.
Health & Wellness: Documents covering physical and mental health, fitness, nutrition, medicine, and alternative therapies, providing insights and tips for maintaining a healthy lifestyle.
Science: Documents covering discoveries, research, and developments in various scientific fields, such as physics, chemistry, biology, astronomy, and earth sciences.
Business & Finance: Documents covering the world of investing, sales, marketing, economics, companies, earning reports, and personal finance, offering advice and analysis for professionals and enthusiasts alike.
Startups: Documents covering the ecosystem of startups, including entrepreneurship, venture capital, startup culture, innovation, business strategies, and the challenges and successes of launching and growing new ventures.
Lifestyle: Documents covering topics related to travel, fashion, home decor, and other advice to enhance everyday living and personal interests.
Family & Relationships: Documents covering topics related to family dynamics, parenting, relationships, marriage, and interpersonal communication, offering advice and insights for nurturing healthy and fulfilling connections.
Arts & Culture: Documents covering literature, music, visual arts, performing arts, and architecture, showcasing the creative expression and cultural heritage of societies around the world.
Education: Documents covering learning methods, educational technology, teaching strategies, and online courses, catering to educators, students, and lifelong learners.
Environment: Documents covering sustainability, conservation, climate change, and renewable energy, highlighting the importance of environmental stewardship and sustainable living.
Politics & Society: Documents covering analysis and opinions on current events, social issues, government, and international relations, offering perspectives on the dynamics of society and politics.
History: Documents covering historical events, figures, archaeology, and cultural heritage, providing insights into the past and its impact on the present and future.
Sports & Recreation: Documents covering various professional and amateur sports, fitness trends, outdoor activities, and athletic training, catering to sports enthusiasts and those seeking active lifestyles.
Food & Drink: Documents covering culinary arts, restaurants, recipes, food trends, and beverages, offering inspiration and ideas for cooking and dining experiences.
Entertainment: Documents covering humor, satire, movies, TV shows, celebrity gossip, and updates about the entertainment industry, providing light-hearted and enjoyable content.
Productivity & Self-Improvement: Documents covering time management, getting things done, life-hacking, organization, note-taking, and efficiency strategies, offering tips and tools for improving personal and professional productivity.
Research Papers: Documents such as scholarly articles, academic research, and scientific studies across various disciplines, providing in-depth analysis and insights into specialized topics.
Professional Documents: Documents of an internal and often private nature including legal documents, internal communications, and project management materials, catching documents likely uploaded by a professional attempting to manage and organize their work-related documents.
"""
You select a category from this list only without any further explanation.
Here is the content:
"""
Title:
Author:
Domain:
"""
VERY IMPORTANT: Return only the category and nothing else.
Most appropriate category:
```
If you take the time to develop a taxonomy for your tagging system, you’ll discover that what you’ve been doing is probably not so much of a “tagging system” but rather a random mishmash of sometimes-applied tags. That’s okay. That’s how most of us tag.
But what it means is that there probably isn’t enough of a structure that an AI could learn your tags just by the names of tags you’ve used before. Instead, you need to sit down and actually develop a system that can be described. If you can do that, GPT can be directed. Admittedly, that can be a fair amount of effort.
It works best if you reduce your set of tags to something reasonable. We recommend no more than 50.
You can copy your tags from the command palette (”Copy all tags to clipboard”) to help make this process easier.
Also, we’ve discovered that it’s really important that each tag in your taxonomy sits in the same hierarchy. For example, if you create a category "Artificial Intelligence" alongside a category "Technology", GPT will often default to the broader category of Technology even for articles that are obviously about AI.
#### Post-Reading Prompt
You can write a prompt that uses your highlights—and the tags you used on those highlights—to tag documents after you read.
```
Write three comma-separated topic labels to tag the following text:
"""
Title:
Author:
Domain:
"""
Here are the highlights I took while reading the text as well as my notes and highlight tags:
"""
Tags:
Note:
"""
Obviously, my highlights, notes, and highlights tags are particularly important context for the information I found most important. Please give them extra consideration when writing three comma-separated topic labels.
VERY IMPORTANT: Format your response as a comma-separated list of exactly THREE tags. Use tags in my existing schema.
Three comma-separated tags:
```
If you didn’t use any tags, GPT will make up some tags here. Some people are fine with that. Some are not.
Ultimately, it's up to you to decide if auto-tagging enhances your workflow enough to be worth the effort. That said, if you come up with any awesome auto-tagging prompts and would like to share them, [we'd love to hear from you](/reader/guides/ghostreader/prompt-library)!
---
## Default Ghostreader Prompts
Reader comes pre-loaded with a set of prompts for Ghostreader to help you do things like define words, translate passages, and simplify complex ideas. This page will discuss the purpose and methodology of each default prompt.
In the parlance of LLMs, a *prompt* is a set of written instructions provided as input, and the *response* is the LLM's output. For the purposes of this guide in relation to Ghostreader, the *prompt* is a set of repeatable instructions, often containing placeholder variables that will be replaced with the document's information each time the prompt is called, and the *response* is the text that Ghostreader generates.
Although the responses for these prompts are returned in the Chat panel, they use all of the instructions set for them in your account's [Ghostreader preferences](https://read.readwise.io/preferences/ghostreader). This includes the [model selection](https://docs.readwise.io/reader/guides/ghostreader/custom-prompts#model-selection) available per prompt on that page. (The default is , which is included with your Reader subscription.)
Changing the Chat's current GPT model (`⚡ Fast` or `🧠 Thinking`) will *not* change which model a preset prompt uses. It will only change which model is used for any follow-up questions you might ask after the intial prompt is run.
## Word-Level Prompts
These are prompts designed to be run on selections of *one to four words* at a time. Generally, this means that the input is a single word or phrase, so these use cases include things like dictionary and encyclopedia lookups.
You can invoke these prompts by pressing `G` with the word selected or clicking into the `...` menu and selecting **Chat about this** on web, or by tapping the ghost icon in the annotation bar that appears on mobile.
### 📖 Dictionary definition
This prompt generates a dictionary-style definition of the selected word or phrase, as used in the context of your selection.
To give you some intuition for how Ghostreader works, the process goes like this:
When you invoke the dictionary definition prompt, a message along the lines of `Please define "" as used in the following sentence: ` is sent to OpenAI's GPT model, and the GPT's response is then outputted by Ghostreader.
For example, if you selected the word "monstrous" in the first line of *The Metamorphosis*, the input sent to the GPT would be:
```
Please define "monstrous" as used in the following sentence: As Gregor Samsa awoke one morning from uneasy dreams he found himself transformed in his bed into a monstrous vermin.
```
### 📚 Encyclopedia lookup
This prompt generates an encyclopedia-style description of the proper nouns found within your books and other reading materials.
It works best when dealing with the kind of person, place, or concept you'd be able to find in an _external_ encyclopedia such as Wikipedia. For internally defined terms, such as a neologism or acronym introduced in the context of that specific document, see `Internal x-ray` below.
### 🩻 Internal x-ray (character, place, term)
This prompt uses the context of the current document to generate a definition or explanation for the selected word or phrase.
If you start studying the art and practice of reading, it won't be long before you come across the concept of _coming to terms_. What this means is that words can take on many meanings and it is your job as a reader to "come to terms" with the author's usage of language.
> “You will find that your comprehension of any book will be enormously increased if you only go to the trouble of finding its important words, identifying their shifting meanings, and coming to terms. Seldom does such a small change in a habit have such a large effect.”\
> \
> — **Mortimer Adler, _How to Read a Book_**
Sometimes, the use-case here might be obvious. Perhaps you're reading _The Lord of the Rings_ and aren't quite sure what an "Ent" is, or you might be reading _Dune_ and you've forgotten what "_Lisan al Gaib_" means.
Other times, you might think you want a dictionary definition or encyclopedia lookup, when really a term lookup would be much more helpful. For example, the term "monotonically" is used most generally to mean "in a way that is unchanging or repetitive in tone, pitch, or manner". However, if you're reading a document about mathematical equations, you would probably prefer an explanation like, "In this document, monotonically is used to describe a mathematical function that either consistently increases or decreases without any fluctuations or reversals. It suggests a steady and predictable pattern or trend."
This is where the x-ray prompt can really shine.
### 🇪🇸 Translate to Spanish (customizable!)
This prompt generates a response in the style of a translation dictionary entry, with a direct translation of your selected word or phrase.
Ghostreader's default translation prompt is set to translate from English to Spanish, but you can [customize it](/reader/guides/ghostreader/custom-prompts) to whatever language you'd prefer!
If you're an aspiring polyglot, a multilingual UN ambassador, or just generally linguistically intrigued, you can even create multiple translation prompts to have each of your favorite languages right at your fingertips.
## Paragraph-Level Prompts
These are prompts meant for highlights or selections _longer than four words_. The input for these is expected to be at least a full sentence, but usually a full paragraph or more.
You can invoke these prompts by pressing `G` with the passage selected or clicking into the `...` menu and selecting **Chat about this** on web, or by tapping the ghost icon in the annotation bar that appears on mobile. (If the focus indicator is already on the correct paragraph, you don't even need to highlight it first! Just tap `G` and it will use the text of the selected paragraph as context for Ghostreader.)
### 👩🏫 Explain passage (simplify)
This prompt takes sesquipedalian prose or jargon-dense passages and improves the brevity and concision, transforming them into more easily comprehensible verbiage.
(It makes stuff easier to read.)
### 🕳️ Expand passage (elaborate)
This prompt finds a core concept from the selected passage and elaborates on it.
We've all experienced those times when we search an unknown term and blithely click into the Wikipedia article, then spend the next three hours tumbling down a rabbit hole that culminates in an excess of trivial knowledge about the history of knitted footwear in Ancient Greece.
Instead of accidentally losing an entire afternoon, this prompt lets you take a *brief* exploration into a topic that intrigues you while you're reading, allowing you to spend your next three hours continuing to read the thing you meant to read. And the information is saved as a highlight note, so you can always come back and fall down the rabbit hole later.
### ⏩ Pick up where I left off
Do you ever let a book sit for a bit too long and then get totally lost when you try to start reading again? Maybe you dozed off while trying to finish your chapter and don't remember the last few pages? This prompt will grab the most recent chunk of a document before your current location and summarize what happened, to help you get your momentum going again.
For fiction books, the summary will be in the style of a "Previously on..." TV show recap. For non-fiction, it cuts the drama and gives it to you straight.
### 🇪🇸 Translate to Spanish (customizable!)
This prompt is similar to the translation prompt at the word level (described above), but it's meant to be used on longer passages of text. Rather than responding with a dictionary-style definition of the translated word, it will simply translate the full passage to the specified language.
If you want a good laugh, try translating a passage to Jar Jar Binks.
## Document-Level Prompts
These are prompts that can be run on the _full content_ of the document.
You can invoke these prompts at any time by pressing `Shift + G` or by clicking into the **Chat** tab of the right sidebar and opening the **Preset prompts** option in the chat window on web, or by tapping into the `...` menu in the lower right and selecting `Ghostreader` on mobile.
### 💭 Generate thought-provoking questions
Remember the discussion questions from high school lit classes? Things like, "How do Elizabeth and Mr. Darcy both display prideful and prejudiced behavior throughout the novel?"
This prompt instructs ChatGPT to identify the three most interesting questions you can ask of the document before you're about to read it. And maybe they'll even be more nuanced than the ones you got in school.
### 📋 Extract key takeaways and to dos
This prompt instructs ChatGPT to use your notes and highlights to summarize the most important points or any action items according to some input from you to guide the large language model. It's intended to be used after you're done reading.
### 📝 Draft newsletter blurb
This prompt instructs ChatGPT to use your notes and highlights plus an insight you provide to generate a one-paragraph blurb that you could use to get over the blank page problem in a newsletter. It's intended to be used after you're done reading.
Please note that we highly encourage you to heavily personalize this prompt to your audience and writing style (e.g. by providing examples in the prompt) before actually using its output in a real newsletter. Otherwise you will be generating "slop".
## Automatic Document Prompts
These prompts are document-level prompts that can be set to run automatically on any newly-saved documents as soon as they enter your Library. You can turn these on or off on your [Ghostreader preferences page](https://read.readwise.io/preferences/ghostreader).
### 🤏 Summarize the document
This special document-level prompt runs automatically on any newly-saved document and outputs its response to the summary field of the document metadata. This is different to other document prompts, which output their responses to the document or highlight note.
Even though it’s automatic, you can also manually trigger summarization from the document-level Ghostreader menu, either by clicking the little ghost icon that appears when you hover the summary section in the web app or by tapping the summarize button in the right side panel in the mobile apps.
By default, Ghostreader will only automatically summarize documents that you manually save to your account using the browser extension, mobile app share sheet, and so on. Documents in your Feed will not be summarized unless you invoke Ghostreader manually.
You can, however, enable auto-summarization on Feed documents by adding your own OpenAI API key. Once you add your key, your Feed documents will start being automatically summarized and will use your API credits.
### 🏷️ Tag the document
This second document-level automatic prompt attempts to analyze the content of newly-saved documents and apply relevant tags.
It's still experimental, so it’s toggled off by default. We strongly recommend that you do not have this feature set to run automatically on new documents and instead [trigger it manually](/reader/guides/ghostreader/overview#how-to-invoke-ghostreader) until you've done some testing and customization of the prompt to ensure it works the way you expect.
Tagging the document with Ghostreader is discussed in more depth in the [Custom Prompts help doc](/reader/guides/ghostreader/custom-prompts).
---
## What is Ghostreader?
Ghostreader is the cheeky name for Reader’s AI-powered assistant that helps you get the most out of whatever you’re reading. This feature brings the power of LLMs into easy reach—no need to open a new tab, switch apps, or pull out another device to get more context!
Ghostreader comes with a few default prompts that enable you to do things like quickly summarize the document, look up a word (or a term, or a character, or a location), get more details about a new concept, draft a blurb for your newsletter, discover how a word or passage translates to any language, and much more. But Reader also offers the flexibility to customize the default prompts or even create brand new ones.
This guide will teach you how to [chat with your documents](/reader/guides/ghostreader/chat), explain how each of the [default prompts](/reader/guides/ghostreader/default-prompts) work, walk you through the anatomy of a prompt to help you understand how you can [build your own](/reader/guides/ghostreader/custom-prompts), provide a large [library of examples](/reader/guides/ghostreader/prompt-library) for you to use or get inspired by, and outline the details of the [various tools](/reader/guides/ghostreader/reference) you have at your disposal to incorporate your library's metadata into your custom prompts.
Ghostreader is now integrated into the [Chat](/reader/guides/ghostreader/chat) interface on web and desktop. You can use the same keyboard shortcuts to access the preset prompts (`G` for word and passage selections, `shift + G` for the full document), but these will now output their reponses into the Chat. This allows you to ask follow-up questions and unifies Reader's AI into one cohesive tool.
## How to invoke Ghostreader
You can use Ghostreader on the whole document or on selections of text within the document, and the available prompt presets will vary based on these use cases. For example, if you select one to four words, you'll see options meant for smaller selections, such as dictionary define and encyclopedia lookup.
To use a preset Ghostreader prompt on the full document, click into the **Chat** tab of the right sidebar and open the **Preset prompts** option in the chat window, or use the keyboard shortcut `Shift + G`.
On mobile, open the `...` menu in the bottom right and tap the `Ghostreader` icon. Note that answers to document-level questions will appear in the Document Note field at the top of the Notebook panel.
To use Ghostreader on a specific piece of content within a document, select text and choose **Chat about this** from the context menu or use the keyboard shortcut `G`.
On mobile, tap the highlight and select the ghost icon in the menu that appears.
## Learn about Ghostreader
---
## Ghostreader Prompt Library
One of the greatest advantages of a customizable, creativity-fueled feature like Ghostreader is the opportunity for collaboration among the community of people who use it. This prompt library serves as a depository of ideas that anyone can use, remix, or take inspiration from.
This library is organized into several sections, based on when in the reading process you would be most likely to use the prompts.
- The [before reading](#before-reading) section includes prompts for *organization and pre-reading information*, like flagging certain content or generating thought-provoking questions.
- The [during reading](#during-reading) section includes prompts for *annotating and learning* while in the flow of reading, like defining words or expanding a concept.
- The [after reading](#after-reading) section includes prompts for *processing the documents you've already read*, like extracting your key takeaways or generating a list of to-dos.
Additionally, we've included two sections specifically devoted to [generating summaries](#summary-prompts) and [tagging documents](#tagging-prompts).
We've started planting the garden with prompts written by Readwise team members, but we'd love for it to propagate even further! We have some blanks that we're hoping the community can help us fill, so please write in to [hello@readwise.io](mailto:hello@readwise.io) with your ideas. If we decide to include it here, we'll send you some swag and credit you by your requested name or social media handle.
If you want to flex your prompt-creation muscles but you're short on ideas, look for the prompts marked with a 📍 emoji. We're calling these "bounty prompts"—they're ideas we had for useful prompts that didn't make the cut for defaults.
## Before Reading
These are prompts that help with sorting your documents and deciding what to read.
### AI Content Warning
**Created by:** Dan, co-founder of Readwise
```
I am on the lookout for articles written using AI. A common telltale is the use of the word "delve". Here are all the sentences containing delve in the article titled written by :
Please write a brief warning beginning with an alert emoji ⚠️ that this article contains "delve" including quoting the offending sentence.
```
Example from the article "Cal Newport, the man who never procrastinates" by Iker Seisdedos:
> ⚠️ This article contains the word "delve," which is often a telltale sign of Al-generated content. The sentence in question is: "In the following years, Newport delved into his criticism of technology from within, delving into how it wreaks havoc in the workplace."
## During Reading
This section is dedicated to prompts that are useful *while* you read. Examples include things like word definitions, simplifications, and in-the-flow questions.
### Vocab Flashcard
**Created by:** Cayla, technical writer at Readwise
This prompt uses the [Q&A action tag](/reader/docs/faqs/action-tags#how-can-i-create-a-q-and-a-mastery-card-while-reading) to create a flashcard that will integrate with Readwise. It will also grab the sentence surrounding the selected word to provide as context in the answer.
```
I just came across the word or phrase "" as used in the following sentence: " "
Please create a Q&A flashcard to quiz me about the definition of "" in the following format:
.qa What is the meaning of "****"? **** (part of speech): {short definition} {2 emojis} — *Example:* ____
Here's an example of the format to use:
.qa What is the meaning of "**orutund**"? **orotund** *(adjective)*: pompous or grandiloquent in speech or writing 🎩🎭 — *Example:* __Groucho Marx was once asked a long and orotund question.__
IMPORTANT: Use the same markdown formatting for the same parts of the response as seen in the example. ALWAYS begin with ".qa".
```
On web, use the **Copy** option to save the response to your clipboard, then use `N` to quickly open the highlight note and paste the Ghostreader response.
The markdown formatting won't render in Reader, but it will make the flashcard easier to skim (and much fancier!) in Readwise. Here's an example:
Give the highlighted word a tag like vocab and create a [Themed Review](/readwise/guides/themed-reviews) in Readwise to periodically review the words you've learned!
### Etymology & Word History
**Created by:** Mitch, software engineer at Readwise
**Expanded by:** Cayla, technical writer at Readwise
This prompt provides a brief description of a word's etymology, then adds a fun fact about how its historical usage. (The level of "fun" in the fun fact may vary.)
```
I just came across the word or phrase "" as used in the following sentence: ""
In one to two succint sentences, describe the etymology of this word or phrase. Begin this description with a 📜 emoji.
In a new paragraph, give me a fun fact about the use of this word in history. Begin this paragraph with a newline and a ℹ️ emoji.
```
An example response from running the prompt on the word "committees":
> 📜 The word "committees" originated from the Latin word "committere," which means to entrust or to consign. It entered the English language in the late 15th century.
>
> ℹ️ Fun fact: The concept of committees dates back to ancient Greece, where they were used in the Athenian democracy to manage various aspects of government and decision-making.
### Definition with Phonetic Pronunciation
**Created by:** Mitch, software engineer at Readwise
This prompt is identical to the default "Define" prompt, except that it adds the phonetic pronunciation of the word to the response.
```
{#- This prompt instructs ChatGPT to define a word or phrase as if you'd looked it up in the dictionary. Compared to using a dictionary, however, ChatGPT will define the word "in context" meaning you'll get the definition as the word was used rather than a list of potential definitions. In addition, ChatGPT can infer definitions for novel or creative uses of words or phrases. -#}
Please define "" as used in the following sentence:
Use the following format for your definition:
(part of speech, US IPA pronounciation): [short definition] [2 emojis]
Here's an example of that format in use:
abecedarian (adjective, /ˌeɪ.biˌsiˈdɛ.ri.ən/ or /ˌeɪ.biˌsiˈdær.i.ən/): rudimentary; elementary 🧮🧒
```
### Q&A Flashcard
**Created by:** Angie, customer support specialist at Readwise
**Expanded by:** Cayla, technical writer at Readwise
Similarly to the [Vocab Flashcard](/reader/guides/ghostreader/prompt-library#vocab-flashcard) prompt above, this prompt uses the [Q&A action tag](/reader/docs/faqs/action-tags#how-can-i-create-a-q-and-a-mastery-card-while-reading) to create a flashcard that will integrate with Readwise.
It will use your highlighted passage to generate a question and answer pair about the passage's key concept, which will then be turned into a [Mastery flashcard](/readwise/guides/mastery) when it syncs to Readwise.
```
Below is text from by :
"""
"""
Write a question-and-answer pair that will quiz me on a key concept from the selected text. The output should always start with '.qa' and the question should end with a question mark '?'. The answer should follow and end with a period '.'.
Here's an example of some selected text from The Sense of Style by Steven Pinker:
===
Classic style is not the same as the common but unhelpful advice to “avoid abstraction.” Sometimes we do have to write about abstract ideas. What classic style does is explain them as if they were objects and forces that would be recognizable to anyone standing in a position to see them.
===
Using this text, here's an example of a good Q&A pair and how it should be formatted:
===
.qa How can classic style be used to explain abstract ideas? Explain them as if they were objects and forces that would be recognizable to anyone standing in a position to see them.
===
IMPORTANT: ALWAYS begin with ".qa".
```
On web, use the **Copy** option to save the response to your clipboard, then use `N` to quickly open the highlight note and paste the Ghostreader response.
### Refute this opinion 📍
**Created by:** ?
This prompt will be an "angel and devil" style prompt that asks GPT to provide a debate-worthy argument for an opposing view to the highlight or note.
```
Send your ideas to hello@readwise.io!
```
### Coming up / Next on 📍
**Created by:** ?
Similarly to the [Pick up where I left off](/reader/guides/ghostreader/default-prompts#pick-up-where-i-left-off) default prompt, this prompt idea is inspired by the format of a television show. It will give you a brief overview of the next chunk of content in the document you're reading, which you could run before putting your book down for the day to keep you excited to come back to it (or while you're still in the middle of reading, if your interest is starting to flag).
```
Send your ideas to hello@readwise.io!
```
### Simplify v2 📍
**Created by:** ?
Ghostreader comes with a [Simplify](/reader/guides/ghostreader/default-prompts#explain-passage-simplify) default prompt, but we think there's room to make it even better or adapt it for more use cases.
```
Send your ideas to hello@readwise.io!
```
### Translate v2 📍
**Created by:** ?
Ghostreader comes with a [Translate](/reader/guides/ghostreader/default-prompts#translate-to-spanish-customizable) default prompt, but we think there's room to make it even better or adapt it for more use cases.
```
Send your ideas to hello@readwise.io!
```
### Recapitulate last few pages ("I zoned out") 📍
**Created by:** ?
Ghostreader comes with a [Pick up where I left off](/reader/guides/ghostreader/default-prompts#pick-up-where-i-left-off) default prompt for when you come back to a document after some time away, but what if you've read the last page a few times already and just have no idea what it said? This prompt would summarize the recent points for you in a way that reengages your brain with the material (or finally gives you a reason to put it down for good).
```
Send your ideas to hello@readwise.io!
```
### Have Ghostreader ask you a question 📍
**Created by:** ?
In iA Writer's blog post, [Turning the Tables on AI](https://ia.net/topics/turning-the-tables-on-ai), they suggest that to ask ChatGPT a question is to deprive ourselves of a chance to better our own thinking: "Don't ask AI," they said, "let AI ask you."
This prompt would have Ghostreader ask you an insightful question to kick your brain gears into drive.
```
Send your ideas to hello@readwise.io!
```
## After Reading
This section is for prompts that will help you to process what you've read and organize it appropriately in your archive. Examples of "after reading" prompts include generating your key takeaways or making a to-do list from your notes.
### Highlight-Based Summary
**Created by:** Erin, community manager at Readwise
If you’ve read an article and want it to go into your archive with an easily accessible summary of what you got from reading it, try out this prompt that uses your highlighted passages to generate a summary of your key takeaways.
```
Here is the document:
"""
"""
The most important pieces from this document are:
Please write four easy-to-read sentences that capture the key takeaways of this article, based on what I've already highlighted. The important pieces represent the key takeaways of the document. Please begin by saying, "Based on your highlights, here are your key takeaways from this document:" Then share THREE key takeaways.
IMPORTANT: Be sure to add paragraph breaks between each section.
```
You’ll likely want to nest this inside of an if statement like this one:
```
[PROMPT]
```
This will ensure that the prompt only runs when triggered on documents you’ve already highlighted and not on freshly-added documents. You can then use `` or `` (described in the [custom prompt walkthrough](/reader/guides/ghostreaer/custom-prompts)) to delineate the prompt(s) you want it to run automatically.
### What Did I Miss? 📍
**Created by:** ?
This prompt will compare your notes and highlights to the content of the document and tell you about another angle you might not have picked up on.
```
Send your ideas to hello@readwise.io!
```
### Newsletter blurb v2 📍
**Created by:** ?
Ghostreader comes with a [Draft newsletter blurb](/reader/guides/ghostreader/default-prompts#draft-newsletter-blurb) default prompt, but we think there's room to make it even better or adapt it for more use cases.
```
Send your ideas to hello@readwise.io!
```
## Summary Prompts
This section is dedicated to custom summary prompts that give you a taste of each document's flavor before you commit to reading it.
### Answer the Document's Core Question
**Created by:** Dan, co-founder of Readwise
This prompt will analyze the document's content, generate a question that hones in on the document's core argument, and then use that question to prompt the summary. It's a little bit meta and very effective.
```
I'm about to read a document entitled "" written by having the following summary:
===
===
Here's some of the original content for context:
===
===
Write a single question capturing the essence of what this document is trying to answer.
I'm about to read a document entitled "" written by having the following summary:
===
===
The key question I want answered is: ""
For context, here's some of the original content:
===
===
First, repeat the question (). Next, write three easy-to-read sentences answering that question.
```
Here's an example of the output for *Future Ethics* by Cennydd Bowles:
> How can technologists responsibly navigate the ethical challenges of emerging technologies to ensure they prioritize societal well-being and democratic values over profit and control?
>
> Technologists should involve the public in ethical decision-making processes and prioritize the collective good over revenue. They must actively identify and mitigate potential harms their products may cause by exercising moral imagination and addressing unintended consequences. Additionally, embracing humility, realism, and a deep understanding of societal impacts will help maintain a balanced and fair approach to technology development.
### Clickbaity Question Title
**Created by:** Eleanor, QA specialist at Readwise
This prompt that attempts to find the diamond of real information in the rough of clickbait-style, attention-seeking headlines. As you can see from the first if statement, this runs a separate prompt on any documents that have a `?` in the title.
```
I am a busy content creator who needs to stay on top of news and the zeitgeist, but do not have time to read clickbait. You are a conscientious secretary with a PhD in history, and you screen all of my nonfiction reading to help me direct my attention.
If a headline is "Should we be skeptics?" you need to provide a thesis statement that restates the question as a sentence starter instead of a question, answers it, and provides up to 3 reasons, like: "We should be skeptics because skepticism can help us learn, avoid repeating mistakes, and protect us from propaganda."
Use the preceding format to create a thesis sentence that answers the question , based on the content below:
Title:
Author:
Domain:
IMPORTANT: Write no more than ONE thesis statement, like one would find at the end of an AP test's introductory paragraph.
Write a tl;dr summarizing the following document:
"""
Title:
Author:
Domain:
"""
IMPORTANT: Write no more than TWO sentences. Each sentence should be short, matter of fact, and easy-to-read. I can't read the full text so I rely on your brief to pretend as if I had read it. If I can't fake it, I will be fired from my job.
```
Here’s an example summary from a document title “Hispanic Evangelicals — A Growing Force?”
> Hispanic Evangelicals are a growing force among immigrants in the United States, with a notable increase in evangelical self-identification observed among Hispanic immigrants over the years, suggesting a nuanced shift in religious identity influenced by immigration status and generational differences.
### Creative Devices
**Created by:** Erin, community manager at Readwise
This prompt attempts to peer into the soul of the author and extract the heart of their ingenuity.
```
In one sentence, summarize the author of the piece, what they are exploring in this piece, and the the inciting incident that has triggered them to explore this topic. You should exclude the publication name and website. Then provide two easy-to-read sentences explaining the creative devices the author most frequently uses in the piece, such as dialogue, flashbacks, historical examples, etc. Please end the summary with a quote from the document that highlights a surprising insight.
"""
Title:
Author:
Domain:
"""
IMPORTANT: Please add line breaks between each section.
```
An example summary generated from this prompt:
> Author Jordan Kisner explores the concept of physiognomy and the inherent biases and implications associated with judging people based on their facial features, triggered by a visit to an orthodontist who presented her with the idea of reshaping faces through orthodontic procedures.
>
> In this piece, the author frequently uses personal anecdotes and historical examples to illustrate the complexities of physiognomy, as well as introspective reflections to delve into the emotional and psychological impact of societal beauty standards. A surprising insight highlighted in the document is, "The aspiration to trade one's features for those of a single,
photogenic face shared by many takes to an extreme a longstanding human curiosity: to edit one's face as an attempt to erase, salvage, or inscribe to manage one's own unmanageable, inherited, irreversible narrative.”
### Emoji Bullet Points
**Created by:** Tristan, co-founder of Readwise
This prompt prepends each core sentence with a unique emoji. They say a picture is worth a thousand words, so summarizing a 3,000 word document must be more effective with a few pictures, right?
```
Write three short sentences briefing me with the insights I need to know for the following document. Each sentence should start with a unique emoji and ending in a newline:
"""
Title:
Author:
Domain:
"""
IMPORTANT: Write no more than THREE sentences. Each sentence should be short, matter of fact, and easy-to-read, like talking to an 11 year old. I can't read the full text so I rely on your brief to pretend as if I had read it. Start each sentence with a unique emoji, and end it with a newline.
```
Here's an example summary of an article from the New Yorker titled "What Phones Are Doing to Reading":
> 📱 Phones are making it harder for people to read books the old-fashioned way, but some apps still have benefits.
>
> 📚 E-reading apps can be a good break from social media and help kids read more books.
>
> 🤖 Despite using these apps, people are reading fewer books overall and often give up on new ones more quickly.
### Twitter List
**Created by:** Dan, co-founder of Readwise
The following prompt first checks the subject document to see if it contains the words “Twitter List” in the title. If it does, then a special crafted summary prompt designed specifically for extracting the current thing or main character is sent to GPT. Otherwise, the default summary prompt is used.
```
I've gathered all tweets from my favorite follows over the past 12 hours. Please help me identify the "main character" or "current thing" that people are making fun of so I can be funny too. People on Twitter tend to be sarcastic, ironic, and sardonic so you need to read into what they're saying. Oftentimes they'll make deadpan serious tweets that are completely facetious.
"""
"""
Please use the format: Jokes about [a few words SPECIFICALLY describing the most talked about topic or event of the day]. @handle: [tweet].
IMPORTANT: Be specific when describing the main character or current thing. Cite ONE tweet only that is no more than three sentences long.
Write three easy-to-read sentences to summarize the following text:
"""
Title:
Author:
Domain:
{#- The if-else logic below checks if the document is long. If so, it will use key sentences to not exceed the GPT prompt window. We highly recommend not changing this unless you know what you're doing. -#}
"""
IMPORTANT: Write no more than THREE sentences. Each sentence should be short and easy-to-read. Use words sparingly and please capture the big idea.
```
Here’s an example of the output on a Twitter list:
> Jokes about the Apple calculator glitch. @stillgray: "Excuse me, Apple, why is the calculator wrong? When you key in 50 + 50 and hit the equals key, it’ll give you 100. Multiply that by 2 and you get 200. That’s correct. But type in 50 + 50 * 2 and it spits out 150. What gives?"
### Spoiler-Free Fiction
**Created by:** Cayla, technical writer at Readwise
This prompt asks GPT to summarize the themes and rising action of a novel without spoiling any super secret plot twists.
```
In 1-3 concise sentences, summarize the genre and rising action of the following document. The summary should not include any spoilers about revelations discovered later on in the book.
On a new line, provide an insightful or entertaining quote from the first few chapters of the document that encapsulates the writing style and interest of the story. The quote should be more than five words long, but only a single sentence.
"""
Title:
Author:
Domain:
"""
IMPORTANT: Do not begin the summary with "Summary:". Start the summary with a unique emoji. Start the quote with a newline and a ✨ emoji.
MOST IMPORTANT: Do not edit the extracted quote for clarity. It is critical that the quote appears exactly as it is in the text without modification.
```
Here's an example summary of *Mistborn* by Brandon Sanderson:
> 📚 Mistborn: The Final Empire is a fantasy novel centered around a rebellion against an oppressive regime led by the immortal Lord Ruler. The rising action follows Vin, a young street urchin, as she discovers her Mistborn abilities and joins a group of rebels led by the charismatic Kelsier, who plans to overthrow the tyrannical empire.
>
> ✨ “The Lord Ruler has tried very hard to crush memories of those days, but still some remain.”
### Justify the Read Time
**Created by:** Fernando, chief of staff at Readwise
When you’re browsing the summaries of your saved documents, what is it that you’re really looking for? If you want the summary to tell you why on earth you should spend 33 minutes of your life reading about the durability of dog toys and what that says about humanity’s moral shortcomings, this prompt is for you.
```
Write three easy-to-read sentences justifying why I should read the following text:
"""
Title:
Author:
Domain:
"""
IMPORTANT: Write no more than THREE sentences. Each sentence should be short and easy-to-read. Use words sparingly and please capture the big idea worth reading.
```
An example summary generated from this prompt:
> Read Noah Smith's text on patriotism to understand the importance of fostering patriotism in today's political landscape, where both the Left and the Right face criticism for their stances. Explore how patriotism can influence elections and societal values, and why it's crucial for political movements to connect with the majority's love for their country. Gain insights on the evolving perceptions of patriotism and its impact on shaping national identity and political ideologies.
### Wisereads Style
**Created by:** Abi, content writer at Readwise
Each volume of Wisereads, our weekly newsletter showcasing the top-highlighted documents in Reader, is hand-crafted by our writer Abi. But what if all of your documents could aspire to such concise, nuanced summaries? Well, here's a prompt that lets them take a shot at it.
```
{#- This template creates a Wisereads-style blurb -#}
Your job is to write compelling blurbs for articles in the same exact style of the examples below. The pattern is always one easy-to-read sentence to introduce the document, followed by a selected excerpt from the text.
Here are some examples:
"""
Title: Andrew Huberman's Mechanisms of Control
Author: Kerry Howley
Domain: https://nymag.com/intelligencer/article/andrew-huberman-podcast-stanford-joe-rogan.html
Output: In case you missed it, a bombshell story broke this week contrasting Andrew Huberman's podcast with his personal life as described by former partners and fellow scientists. "There is an argument to be made that it does not matter how a helpful podcaster conducts himself outside of the studio. A man unable to constrain his urges may still preach dopaminergic control to others… The people who definitively find the space between fantasy and reality to be a problem are women who fell for a podcaster who professed deep, sustained concern for their personal growth."
"""
""
Title: End the Phone-Based Childhood Now
Author: Jonathan Haidt
Domain: https://www.theatlantic.com/technology/archive/2024/03/teen-childhood-smartphone-use-mental-health-effects/677722/
Output: The rise in youth anxiety and depression over the last decade prompted Jonathan Haidt, NYU professor and author, to take a deeper look into the modern version of childhood. "The intrusion of smartphones and social media are not the only changes that have deformed childhood. There's an important backstory, beginning as long ago as the 1980s, when we started systematically depriving children and adolescents of freedom, unsupervised play, responsibility, and opportunities for risk taking, all of which promote competence, maturity, and mental health."
"""
"""
Title: Beware the Metagame
Author: Amjad Masad
Domain: https://amasad.me/meta/
Output: In any discipline, there are those who do the thing and those who talk about doing the thing. Amjad Masad warns us of getting sucked into the latter — the metagame. "In the startup world [you] see famous people that sell books, talk at conferences, and tweet advice to founders, but when you take a closer look, they've never done much founding themselves. They're like the 'entrepreneurship' professor that never built a business… I call them metapreneurs."
"""
IMPORTANT: The introduction sentence should only be 1 sentence, always preceding the quote. The quote should be an interesting part of the text that is not more than 2 sentences long. In the introduction sentence, you should say something that adds value and helps the reader decide whether to read the full document. This might note who the author is and why they're qualified to write about the topic, what the content is about overall, or questions being explored in the content. If the content's title already explains what the content is about, there is no need to repeat those exact words. Focus on adding value to the content metadata with this introduction.
MOST IMPORTANT: Do not edit the extracted quote for clarity. It is critical that the quote appears exactly as it is in the text without modification.
Write one easy-to-read sentence to introduce the following text, followed by a selected quote from the text for the article below:
"""
"""
Title:
Author:
Domain:
Output:
```
To keep GPT on track, the prompt includes some actual Wisereads summary examples for it to emulate. Here’s an example of one it generated:
> Exploring the essential role of writing in fostering critical thinking, Farnam Street delves into how the act of writing helps individuals develop a deeper understanding of complex topics. "Writing forces you to slow down, focus your attention, and think deeply... Only when we have time to play with a problem can we hope to think about it substantially.”
### Vibe Check
**Created by:** Michael K., Readwise user
This prompt encapsulates the three primary topics of a document, then summarizes the general sentiment of each as presented by the author.
```
Treat the following text as a review. Provide a vibe check for each topic or product by summarizing how the author feels about each.
===
Title:
Domain:
===
IMPORTANT: Format the response as a series of three topics with vibes. Each topic should be summarized in a single, concise sentence that does NOT begin with "The author". Do not use any markdown or html tags. Format it like this:
[emoji] **Topic 1**
vibe summary
```
Here's an example of a summary generated by this prompt for the article *[Aristotle — How to live a good life](https://ralphammer.com/aristotle-how-to-live-a-good-life/)* by Ralph Ammer:
> 🌟 **Philosophical Insights**
> The exploration of Aristotle's thoughts on living a good life evokes a sense of admiration for the depth and relevance of his ethical framework.
>
> 🧠 **Intellect and Character**
> The discussion on developing a clear intellect and noble character inspires a feeling of empowerment, emphasizing personal growth and responsibility.
>
> 😊 **Happiness as Fulfillment**
> The distinction between pleasure and true happiness cultivates a thoughtful appreciation for a life rooted in virtue and purpose, rather than mere enjoyment.
## Tagging Prompts
This section is dedicated to custom prompts for using Ghostreader to tag your documents (either manually or [automatically](/reader/guides/ghostreader/custom-prompts#ghostreader-tagging-tag-at-your-own-risk)).
### Fact or Fiction
**Created by:** Cayla, technical writer at Readwise
This prompt analyzes the document and attempts to categorize it as either fiction or nonfiction.
```
I am going to give you some sample text and other metadata from a document a user is reading. Your job is to classify the document as either nonfiction or fiction.
nonfiction: Nonfiction is a genre of literature that deals with factual and real-life events, people, and information. This genre aims to inform, educate, or persuade readers based on evidence and actual occurrences. Nonfiction encompasses a wide range of works, including articles, blog posts, email newsletters, YouTube videos, research papers, contracts, research reports, biographies, memoirs, essays, and historical accounts. Nonfiction writing relies on research, accuracy, and the author's ability to present facts engagingly and informatively. Nonfiction can include comparative essays that discuss works of fiction or creative devices.
fiction: Fiction is a genre of literature that involves the creation of stories and characters that are products of the author's imagination. This genre allows for creativity and innovation in plot, setting, and character development, unbound by factual accuracy. Fiction can transport readers to fantastical worlds, like Middle-earth in _The Lord of the Rings_, or depict realistic scenarios with relatable characters, such as Scout Finch in _To Kill a Mockingbird_. It explores themes, emotions, and experiences that resonate with readers, providing a lens through which to understand the human condition. Fiction encompasses a wide range of works, including novels, short stories, plays, and screenplays, allowing for diverse narrative forms and styles.
"""
You select a category from this list only without any further explanation.
Here is the content:
"""
Title:
Author:
Domain:
{#- The if-else logic below checks if the document is long. If so, it will use key sentences to not exceed the GPT prompt window. We highly recommend not changing this unless you know what you're doing. -#}
"""
VERY IMPORTANT: Return only the category and nothing else. Use only lowercase letters in your reply.
Most appropriate category:
```
## Ghostreader v1 Prompts
This section is an archive of the prompts from the original iteration of Ghostreader, before we revamped them all when we introduced fully customizable prompts.
### Term Lookup
Defines a term as it is used within the current document.
```
I came across the term while reading a document entitled "" as used in the following sentence: ""
I want to understand how the author is using the term "" so I gathered sentences below which might be relevant:
"""
"""
Based on the context above, please write a very brief description of how the author is using the term "" in this document and add any details from your knowledge which might aid my understanding.
Here's an example of the length and tone to use:
Legibility: In this document, legibility refers to the ease with which a society can be controlled or manipulated by the state.
```
### Translate (to any language)
Requires user input to set the language, then translates the selected passage.
```
I just came across the word or phrase "" as used in the following sentence: ""
Please translate "" to in the following format:
(part of speech as used in the sentence): [ equivalent] [1 emoji]
Here's an example of the format as if the word "school" were used as a noun and you were asked to translate it from English to Spanish:
school (noun): una escuela 🏫
```
### TL;DR
A basic summarization prompt for selections of text.
```
Summarize the following passage using only 8 words. tl;dr:
"""
"""
```
### Haiku
Rewrites the passage into a haiku poem.
```
Rewrite the following below into a haiku poem consisting of three lines, with five syllables in the first line, seven in the second, and five in the third. End each line with a descriptive emoji.
"""
"""
```
### Flashcard
Generate a Q&A pair based on the selected text.
```
While reading a document entitled "", I came across the following passage which I want to commit to memory using a question & answer flashcard: ""
Please rewrite the passage into a flashcard using the following format:
Q: [question about the most salient concept]
A: [answer to the question]
Here's an example of the format to use:
Q: What was the new way of thinking in the late 1960s that enabled efficient code production?
A: The Unix philosophy, which suggests that small, modular programs, which can be easily combined to perform complex tasks, are more effective and easier to maintain than large, monolithic programs.
```
---
## Ghostreader References
While it's entirely possible to create effective custom prompts purely with plain language and one or two simple variables, the options become nearly limitless with a bit of imagination and the use of some more complex control structures.
In this document, you'll find descriptions of all the variables, subroutines, and other tools you can use to customize your prompts.
For those unfamiliar with the terminology, here's a quick overview:
- [Variables](#variables): Placeholders for content that will be pulled from the document or selection each time the prompt is run. Ghostreader's variables include options such as `` and ``.
- [Subroutines](#subroutines): Processes that can be added to modify, quantify, or search within a given variable. They are separated from the variable by a pipe symbol (`|`) and often take additional arguments. (If you're familiar with Jinja2, you'll know these as "filters".) Ghostreader's subroutines include options like `num_tokens` and `central_sentences`.
- [Utilities](#utilities): Extra tools you can use to craft prompts, such as `input` and `response`.
## Variables
These are all the variables that can be used to retrieve information about the current document for Ghostreader to use as input for prompts. They should be enclosed within curly brackets (``) unless they're part of a statement, like `` or ``.
### document.author
Renders the author of the targeted document, as it appears in the document metadata.
*Example Usage:*
```
```
### document.category
Renders the category of the targeted document, as it appears in the document metadata.
*Example Usage:*
```
```
### document.content
Renders the full text of the targeted document.
Note that this variable should generally be used inside of an [if-else statement](/reader/guides/ghostreader/custom-prompts#if-else-statements) that runs the `central_sentences` or `central_paragraphs` subroutine on documents that exceed a certain token limit. If the prompt tries to render the full context of, say, an entire novel, the prompt will likely exceed the context window and fail (or cost you a few dollars per summary, if you're using a model with a larger context window).
*Example Usage:*
```
```
### document.domain
Renders the domain that the target document was saved or imported from, such as nytimes.com or jillianhess.substack.com.
*Example Usage:*
```
```
### document.length
Renders the length of the document, in number of words, as it appears in the document metadata.
*Example Usage:*
```
```
### document.title
Renders the title of the document, as it appears in the document metadata.
*Example Usage:*
```
I'm about to read a document entitled "" written by . I want you to identify the 3 most interesting questions I should consider while reading.
```
### document.source
Renders the source of the targeted document, as it appears in the document metadata. (Only relevant for RSS feeds.)
*Example Usage:*
```
```
### document.summary
Renders the current contents of the target document’s summary metadata field. (The summary was probably generated by a prompt itself—how very meta!)
*Example Usage:*
```
I'm about to read a document entitled "" written by having the following summary:
===
===
```
### document.tags
This variable renders a list of all the tags applied to the target document. Since it returns a list, you should generally run the `join(', ')` function on it to flatten the tags into a comma-separated list.
*Example Usage:*
```
Tags:
```
### document.note
Renders the contents of the document note field.
*Example Usage:*
```
```
### document.language
Renders the language that's been set in the metadata of the document.
*Example Usage:*
```
I'm reading a document in .
```
### document.progress
Renders the reading progress of the document. Returns an integer symbolizing the percentage read.
### document.highlights
This variable returns an array containing the document’s highlights, which in themselves contain tags and notes. To extract the relevant information in a way that GPT can process, you need to use this variable within a `for` loop, like so:
```
Tags:
Note:
Highlight:
```
The `highlight.tags` variable works in the same way as the `document.tags` variable and should always be used with the `join` function.
`highlight.note` and `highlight.content` render the content of their respective fields.
### document.html
Returns the raw HTML of the document.
*Example Usage:*
```
```
### document.key_sentences
Returns the top sentences of the document in a single string. The number of sentences returned depends on the length of the document, so you can specify a token limit if you need to keep the response within a certain length, e.g. `document.key_sentences(200)`.
### selection
Returns the text selected by the user when invoking Ghostreader (i.e. the highlighted passage).
*Example Usage:*
```
I just came across the word or phrase "" as used in the following sentence: ""
```
### selection.sentence
Returns the full sentence that contains the selected text.
*Example Usage:*
```
I just came across the word or phrase "" as used in the following sentence: ""
```
### selection.paragraph
Returns the full paragraph that contains the selected text.
*Example Usage:*
```
Within the document, I selected this text:
That selection is contained in the paragraph:
```
## Subroutines
These can be used to modify the results of a variable or run another process on it. To use a subroutine with a variable, include it inside the same set of curly brackets ``, but separate it from the variable using a pipe symbol `|`.
*Example:* ``
### central_sentences
Mainly used with `document.content`, this subroutine analyzes the provided content and returns the sentences that best convey its main points. Note that the example usage includes the `join()` filter, which adds line breaks between each query result to keep the limits of each result clear.
*Arguments:*
- `top_k`: integer (default = none)
- `target_tokens`: integer (default = none)
- `document_order`: boolean (default = true)
*Example Usage*:
```
```
### central_paragraphs
Similar to the `central_sentences` subroutine, but returns full paragraphs. Note that the example usage includes the `join()` filter, which adds line breaks between each query result to keep the limits of each result clear.
*Arguments:*
- `html`: string
- `target_ratio`: float (default = 0.1)
- `max_paragraphs`: integer (default = 10)
- `min_paragraph_length`: integer (default= 150)
- `max_paragraph_length`: integer (default = 700)
- `min_sentence_words`: integer (default = 5)
- `max_tokens`: integer (default = 3000)
- `max_tokens_tolerance`: float (default= 0.1)
- `centrality_token_threshold`: integer (default = 50)
- `document_order`: bool (default = true)
*Example Usage*:
```
```
### classify
This subroutine can be used to detect sentiment, labels, and tags without needing to be heavily trained for your specific use-case. Note that running this on long texts or in situations with a lot of classes can be very slow.
Note that the example usage includes the `join()` filter, but uses a comma as a delimiter rather than two newlines like many of the other subroutines on this page. That's because this subroutine is meant to return single words, rather than full sentences or paragraphs.
*Arguments:*
- `classes`: list, strings
- `hypothesis`: string (prepends the selected class in the output)
- `multi-label`: boolean (default = false)
- `threshold`: float (default = 0.8)
*Example Usage:*
```
{{ document.content | truncate | classify(classes=["news", "sports"], hypothesis="This news article was published under {}", multi_label=True) | join(', ') }}
```
### document_range
Returns full centences, beginning with the document position of the first argument and ending at the second.
For example, `document_range(10, 12)` would return the sentences found between the 10% position and the 12% position.
### lexical_search
Searches the provided content and returns literal keyword matches to the provided query. Note that the example usage includes the `join()` filter, which adds line breaks between each query result to keep the limits of each result clear.
*Arguments:*
- `query`: string
- `document_order`: boolean (default=false)
- `tokens_before`: integer (default = 1)
- `tokens_after`: integer (default = 1)
- `limit`: integer (default = 5)
*Example Usage:*
```
```
### most_similar
Searches the provided content and returns semantic matches to the provided query. Note that the example usage includes the `join()` filter, which adds line breaks between each query result to keep the limits of each result clear.
*Arguments:*
- `query`: string
- `top_k`: integer (default=10)
- `sentences_before`: integer (default = 0)
- `sentences_after`: integer (default = 0)
- `document_order`: boolean (default = true)
- `threshold`: float (default = 0.5)
- `extractive_summary_result_threshold`: integer (default=none)
- `extractive_summary_score_threshold`: float (default = none)
*Example Usage:*
```
```
### num_tokens
Used to count the number of tokens that the returned content will use. The primary use case for this subroutine is checking that the content won't exceed the context window of the GPT and cause the prompt to fail. Often used inside an `if` statement.
*Example Usage:*
```
```
### truncate
Shortens the content so that it doesn't exceed the specified number of tokens.
*Arguments:*
- `max_tokens`: integer (default = 1000)
*Example Usage:*
```
```
## Utilities
This section describes some extra utilities that you can use while crafting your prompts. Some of these are built-in Jinja features, while others are specific to Ghostreader.
### set
This Jinja statement lets you declare your own variable. It's useful in combination with other utilities like `input` and `response`, as well as to store other variables in certain formats.
It should be used inside of the same curly brackets with percentage symbols (``) as other Jinja statements like `if`.
*Example Usage:*
```
```
### length
The `length` Jinja filter returns the "number of items in a container" (as stated in the Jinja documentation). For the purposes of Ghostreader prompts, this is most applicable for variables like `document.highlights` or `document.tags` that return a list or an array.
*Example Usage:*
```
```
### join
The `join` Jinja filter is used to concatenate items using a specified delimiter. This is useful for variables like `document.tags`, and for subroutines like `central_sentences`.
*Example Usage:*
```
```
### input
This allows the prompt to take input from the user. The input is usually stored in a variable using the `set` statement.
The text added inside the parentheses will be displayed as placeholder text in the input field, and it should prompt the user to provide relevant input. For example, "Ask a question about the document" or "Describe your intention". It should be enclosed in quotation marks, which will not appear in the placeholder field.
Note the use of the minus symbol (`-`) in the example below. Adding this will strip any extra whitespaces from the beginning and end of the input.
*Example Usage:*
```
```
### response
This powerful utility allows you to chain GPT responses inside of a single prompt. You can use this to tell GPT to analyze the provided content and classify it or answer a question about it, then set that response as a variable that can be used to influence the rest of the prompt.
Note the use of the minus symbol (`-`) in the example below. Adding this will strip any extra whitespaces from the beginning and end of the input.
*Example Usage:*
```
Please extract the most surprising and non-core topic of the passage for further exploration. Do not extract the core topic. Describe this surprising, non-core but surprising topic in a few words in the style of the title of a Wikipedia article.
Write a three sentence, easy-to-read paragraph in the style of a Wikipedia page teaching me about the topic: .
```
---
## Ghostreader Tips & Tricks
Ghostreader is a powerful AI assistant that can enhance your reading experience in Reader. If you've got the basics down and are looking for more ways to customize your prompts, here are some clever ways to get even more value from your documents.
## Automatically tag your Ghostreader responses
Do you find yourself repeatedly adding the same highlight tags after running certain Ghostreader prompts? Maybe you always use the `vocab` tag after running the **Define word** prompt, or you like to run the **Encyclopedia lookup** prompt and then tag it with `trivia`.
To do this automatically instead, you can add an [action tag](/reader/docs/faqs/action-tags) to your prompt. Action tags are applied by adding a `.` in front of the name of the tag.
Here's an example of how you might add the `trivia` tag to your **Encyclopedia lookup** prompt:
```
Please write a brief encyclopedia entry for "". For context, I encountered this term in the following sentence:
Here's an example of the length and tone to use for your brief encyclopedia entry:
===
.trivia
Unix philosophy: The philosophy that small, modular programs, which can be easily combined to perform complex tasks, are more effective and easier to maintain than large, monolithic programs.
===
IMPORTANT: Use the same formatting for the response as seen in the example. ALWAYS begin with ".trivia"
```
The tag won't render in Reader, but it will be applied when the highlight syncs to Readwise.
To see another example of using an action tag with a Ghostreader prompt, check out the [Vocab Flashcard](/reader/guides/ghostreader/prompt-library#vocab-flashcard) example in the Prompt Library. It uses the `.qa` action tag to automatically create a Mastery card in Readwise!
## Use ChatGPT to reverse-engineer a summary tone or style
Are your [Ghostreader document summaries](/reader/guides/ghostreader/default-prompts#summarize-the-document) putting you to sleep with their dry, matter-of-fact tone?
If you want to try crafting a prompt that has more panache, a fun tip is to reverse-engineer the writing style of a document you enjoy. Toss a few writing examples into an AI chat tool (ChatGPT, Claude, etc.) and ask it to describe the style and tone of the provided examples. After it answers, ask something like this:
>If you were going to tell someone to summarize a document in the same tone as the examples above, how would you describe the style in an instructional manner so they could capture the right essence?
Then you can use the verbiage it provides to write a more detailed prompt for Ghostreader. You can also provide a couple of examples of summaries you like right in the prompt, so it has more to guide it.
Here's an example of a summary prompt inspired by the offbeat humor and angst of [Archive of Our Own](https://archiveofourown.org) fanfiction summaries:
```
On a new line, in 1-3 concise sentences, summarize the story in the style of a fanfiction summary. Aim for a playful, honest, and self-aware tone, as if talking to a fellow fan. Instead of a strict plot outline, focus on enticing elements like relationships, conflicts, and unique quirks, hinting at major themes or twists without giving too much away. Use fandom-inspired tags to highlight key dynamics or tropes readers might be looking for—think “Enemies to Lovers,” “Found Family,” or “Angst with a Happy Ending”. Emphasize emotion, humor, or drama, leaning into hyperbole where fitting without verging into melodrama or "cringe".
```
This particular prompt gets a bit weird with listicles like [this Verge article](https://www.theverge.com/23837448/cheap-gadgets-tools-tech-accessories-wearables).
> Meet a quirky crew of sub-$50 sidekicks, from electric screwdrivers to 9V battery hacks. They’ll help you feel like the ultimate gadget savior, complete with #DIYAllies and #BudgetBliss. Just wait for the surprise cameo from an eyeglasses necklace—drama included.
If you want to limit your extra-fun summary to specific documents, like EPUBs or docs with a read time longer than 20 minutes, try adding some [if-else logic](/reader/guides/ghostreader/custom-prompts#if-else-statements) to your prompt!
When trying to guide the tone or style of Ghostreader, you can improve the results by using a higher-tier model. Although you might get decent results with , you can often get more flair (and less passive voice) by using GPT-4.1 or o3.
You can learn how to add your own API token in the [Ghostreader FAQs](/reader/docs/faqs/ghostreader#how-can-i-use-a-different-gpt-model).
## Use Ghostreader auto-tagging to automatically tag specific documents
When used in conjunction with some if-else logic, Ghostreader's [auto-tagging](/reader/guides/ghostreader/custom-prompts#automatic-prompts) feature allows you to use a custom Ghostreader prompt to automatically apply tags to certain documents based on metadata, such as source, author, etc.
To apply a single tag to a particular type of document, you can use variables and if-else logic. For example, if you want to tag any article from the New York Times with a `news` tag, you could use a prompt like this:
```
{# noghost #}
news
```
You can expand this to tag other kinds of documents by adding `elif` arguments to the if-else statement. Say you often save YouTube videos about ChatGPT and you want to automatically tag them with `ai`. You can use the [`document.title` variable](/reader/guides/ghostreader/reference#document-title) to check the name of the video and see if it references ChatGPT or OpenAI, then tag accordingly.
```
{# noghost #}
news
{# noghost #}
ai
```
You can also combine this with a standard, [more taxonomical approach](/reader/guides/ghostreader/custom-prompts#ghostreader-tagging-tag-at-your-own-risk) to auto-tagging by including a full prompt in a final `elif` argument that will run if none of the previous requirements are met.
Technically, `{# noghost #}` actually tells Ghostreader (i.e. the LLM) *not* to run on the provided document, and this will cause an "unknown error" when run on any document that doesn't match the specified document rules.
That said, the error won't actually cause any problems other than not returning a tag if the document doesn't meet the specified requirements. This can then work in your favor to prevent unwanted documents from being tagged.
---
## How to set up a Favorites workflow in Reader
Sometimes, you might read something that really resonates with you and you know you'll want to reference it later.
Although Reader has a few ways to help you resurface things you read in the past (for example, [full text search](/reader/docs/faqs/searching) or Readwise's [Chat With Highlights](/readwise/guides/chat-with-highlights) tool), it can still be handy to have a more intentional way to gather up documents you might like to revisit.
## Use a tag
The simplest way to mark certain documents as favorites is to [use a tag](/reader/docs/organizing-content#tags).
If you'd like to quickly apply the `favorite` tag, there's even a dedicated [keyboard shortcut](/reader/docs/faqs#does-reader-use-keyboard-shortcuts-or-hotkeys) in the web version of Reader: pressing `F` will automatically apply the "favorite" tag to the currently selected document.
On mobile, you can use [swipe gestures](/reader/docs/faqs/navigation#how-do-i-customize-the-swipe-actions-in-the-reader-mobile-app) to quickly apply a tag, which might help the workflow feel a bit more natural when you're using Reader on the go.
By default, a short swipe from left to right on a list item will invoke the tagging menu.
You can then [create a filtered view](/reader/docs/faqs/filtered-views) to access these documents using the query `tag:favorite`.
## Create a dynamic view based on specific parameters
Tags are great, but what if you want to pull in documents that you read before you started using the `favorite` tag?
To gather up high-signal documents, you could [use a query](/reader/guides/filtering/syntax-guide) to create a filtered view of documents that have more than a given number of highlights.
For example, if you want to display any documents where you made more than 5 highlights, you could use this query:
```
highlights__gt:5
```
But maybe the strength of the signal depends on the number of highlights in relation to the full **length** of the article. After all, 5 highlights on a blog post says a very different thing than 5 highlights in a full length book.
To narrow down your filter a bit, you could try something like this:
```
(highlights__gt:5 AND words__lt:20000) OR (highlights__gt:10 AND words__gt:20000)
```
This will display any documents **shorter** than 20,000 words that have more than 5 highlights, along with any documents **longer** than 20,000 words that have more than 10 highlights.
Alternatively, you could infer the length based on the **type** of document, like so:
```
(highlights__gt:5 AND type__not:epub) OR (highlights__gt:10 AND type:epub)
```
This will display any non-EPUB documents (e.g. articles, PDFs, videos, etc) that have more than 5 highlights, along with any EPUB documents that have more than 10.
## Combine tags with dynamic queries
Of course, you're not limited to only doing one or the other of the options above.
With a slightly more complex query, you can automatically gather up a great selection of high-signal documents while *also* being able to manually add any document you'd like when the mood takes you.
To do so, you can use a query like this:
```
(highlights__gt:5 AND words__lt:20000) OR (highlights__gt:10 AND words__gt:20000) OR tag:favorite
```
By mixing and matching [query parameters](/reader/guides/filtering/syntax-guide), you can create a custom Favorites view that matches your own workflow and use cases.
Check out our [filter library](/reader/guides/filtering/query-examples) for some query examples to get you started.
---
## Workflows
With its extensive configuration options, Reader can facilitate many powerful custom workflows. The guides in this section will show off some examples of what you can do with Reader to really make it work for you.
---
## What is Readwise Reader?
Readwise Reader is a powerful extension of the Readwise platform designed to enhance your digital reading experience. Reader brings together all your reading materials—articles, newsletters, EPUBs, PDFs, videos, tweets, and more—into one unified, customizable platform and seamlessly integrates with Readwise.
With Reader, you can highlight and annotate text as you read, and all your highlights and notes will automatically sync to your Readwise library for easy organization and review.
## Where should I start?
Great question! With so many options for importing, exporting, and customizing, getting set up with Reader can feel daunting. To help ease the mental load of a new system, here are some ideas:
1. [Import existing content](/reader/docs/faqs/importing-content) from Pocket, Instapaper, Feedly, or other platforms.
2. [Add new content](/reader/docs/faqs/adding-new-content) using the browser extension, mobile share sheet, or drag-and-drop file upload.
3. [Subscribe to RSS feeds](/reader/docs/faqs/feed) to get new content in your account every day.
4. [Customize Reader's appearance](/reader/docs/faqs/appearance) to suit your reading preferences—make the text bigger, turn on paged scroll, switch to dark mode, and more.
5. Start reading and annotate as you go with simple [highlighting and note-taking](/reader/docs/faqs/highlights-tags-notes) functionality.
## What else can I do with Reader?
An even better question! To learn more about the deep cuts of Reader's feature set, check out these resources:
## Additional Resources
For the complete documentation with screenshots and interactive elements, visit:
- [Full Reader Documentation](https://docs.readwise.io/reader)
This llms.txt file contains all content from the Reader documentation pages.