Documentation

Sign in with GitHub
DocumentationUsing Substrate

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_KEY set 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

1

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.

2

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.

3

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.

4

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

ItemLimit
One question10,000 characters
Paper text per request120,000 characters; longer papers are cut
Messages per request30, counting yours and the assistant's
Messages kept per paper100
Reply length1,600 output tokens
Waiting for the provider45 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.

.env
ANTHROPIC_API_KEY=sk-ant-...
# optional; this is the default when unset
ANTHROPIC_MODEL=claude-sonnet-4-6

With 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.