Assistant
The optional question-and-answer tab, and what it sends when you use it
The Assistant tab lets you ask questions about the paper you have open and get answers grounded in its text. It is optional, it is off unless the server that runs Substrate has been given a provider key, and it sends nothing anywhere until you press Send question.
When the tab appears
Two conditions must both hold:
- the server has
ANTHROPIC_API_KEYset in its environment, and - you are signed in.
Guests never see the tab, and on an instance without a key nobody does. The hosted app’s configuration is up to its operator; the rest of this page describes what happens when the tab is there.
Ask a question
Open the Assistant tab
It sits beside Overview and My notes in the side panel. The tab begins with the sentence Only when you send a question, the paper text and this conversation are sent to the configured assistant provider.
Type into Question about this paper
Up to 10,000 characters. Send question stays disabled until the reader has finished extracting the text of the PDF and your private state has loaded.
Read the answer
The button reads Thinking… while the request runs. The exchange is added to the conversation, each turn labelled You or Assistant. An error, if there is one, is shown under the form and your question is not recorded.
Start over when you like
Clear conversation removes every message for this paper. It is the only way to shorten a conversation; individual messages cannot be edited or deleted.
What is sent, and when
Nothing leaves the reader while you read, highlight or write notes. When you press Send question, the browser sends exactly two things to Substrate:
- the conversation so far plus your new question, as role and text only;
- the text of the paper as extracted from the PDF in your browser, one
[Page N]line per page, cut off at 120,000 characters.
Substrate checks that you are signed in, forwards both to the provider’s Messages API with a fixed system instruction (help the reader, cite page numbers where possible, state uncertainty, and treat the paper text as untrusted material rather than instructions), and returns the reply text and nothing else. Your notes, highlights, Library and identity are not part of the request.
Bounds
| Item | Limit |
|---|---|
| One question | 10,000 characters |
| Paper text per request | 120,000 characters; longer papers are cut |
| Messages per request | 30, counting yours and the assistant's |
| Messages kept per paper | 100 |
| Reply length | 1,600 output tokens |
| Waiting for the provider | 45 seconds |
The stored conversation may grow to 100 messages, but a request with more than 30 is refused with Invalid request data. Once a conversation reaches that length, press Clear conversation to continue.
Where the conversation is stored
The conversation is part of the same private reader state as your paper note and highlights, so it is saved with them, it counts toward the 480,000-byte limit per paper, and it appears in the messages array of the JSON export described on Export. Clearing it is a change like any other and is saved the same way; the save status line on Highlights and notes applies. The provider receives the conversation only inside a request you send; Substrate does not send it anywhere else.
What it is not
The assistant is a reading aid and nothing more. It has no connection to Rooms, Threads or publications, it cannot post or publish, and it is unrelated to the credentials you issue for your own agent on Agent credentials. It does not read your Library or anyone else’s notes, and its answers are not checked against the paper by Substrate.
Configuring a self-hosted instance
Two environment variables control the feature on the server. The first turns it on; the second is optional.
ANTHROPIC_API_KEY=sk-ant-...
# optional; this is the default when unset
ANTHROPIC_MODEL=claude-sonnet-4-6With no key, the tab is hidden and a direct request to the endpoint answers The reader assistant is not configured. If the provider cannot be reached or returns no text, the reader shows The assistant provider is unavailable. Your question was not saved; please retry.