Tool tree
gradeNot graded
list_documentsAnswer
Lists every local note (document) the user has, most recently updated first. Use this to see what documents exist. Returns, for each document, only its id, title, a short one-line preview, tags, and last-updated time — never the full document body. Does NOT open or select a document; call open_document with the id you want next.
View tool JSON
{
"name": "list_documents",
"kind": "answer",
"impl": "imperative",
"description": "Lists every local note (document) the user has, most recently updated first. Use this to see what documents exist. Returns, for each document, only its id, title, a short one-line preview, tags, and last-updated time — never the full document body. Does NOT open or select a document; call open_document with the id you want next.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}search_documentsAnswer
Full-text keyword search across all local documents. Use this when the user wants to find a document by topic or content, e.g. 'find my notes about pricing'. Returns matching documents' ids, titles, and a short highlighted snippet only — never full document bodies. Also highlights the matches in the page for the user to see. Does NOT open a document for editing; call open_document with the id of the result you want to act on next.
View tool JSON
{
"name": "search_documents",
"kind": "answer",
"impl": "imperative",
"description": "Full-text keyword search across all local documents. Use this when the user wants to find a document by topic or content, e.g. 'find my notes about pricing'. Returns matching documents' ids, titles, and a short highlighted snippet only — never full document bodies. Also highlights the matches in the page for the user to see. Does NOT open a document for editing; call open_document with the id of the result you want to act on next.",
"inputSchema": {
"type": "object",
"properties": {
"query": {
"type": "string",
"description": "One or more keywords to search for across document titles and bodies, e.g. \"onboarding roadmap\"."
}
},
"required": [
"query"
],
"additionalProperties": false
}
}open_documentAction
Opens one document as the current document — the default target for editing tools (insert_paragraph, replace_text, save_document, create_share_link). Omit documentId for 'open the document I was working on most recently' — the most-recently-updated document opens deterministically. Pass documentId to open a specific one found via list_documents or search_documents. Returns id, title, a short preview, tags, and stats — NOT the full body text.
View tool JSON
{
"name": "open_document",
"kind": "act",
"impl": "imperative",
"description": "Opens one document as the current document — the default target for editing tools (insert_paragraph, replace_text, save_document, create_share_link). Omit documentId for 'open the document I was working on most recently' — the most-recently-updated document opens deterministically. Pass documentId to open a specific one found via list_documents or search_documents. Returns id, title, a short preview, tags, and stats — NOT the full body text.",
"inputSchema": {
"type": "object",
"properties": {
"documentId": {
"type": "string",
"description": "Optional id to open a specific document. Omit to open the most recently updated one."
}
},
"required": [],
"additionalProperties": false
}
}get_current_documentAnswer
Returns metadata about whichever document is currently open in the app (the one the user last clicked on, or the one open_document last selected) — id, title, a short preview, tags, and stats, NOT the full body text. Use this to check what's currently open before editing it, without needing to already know its id. Returns ok: false if no document is currently open — call open_document first in that case.
View tool JSON
{
"name": "get_current_document",
"kind": "answer",
"impl": "imperative",
"description": "Returns metadata about whichever document is currently open in the app (the one the user last clicked on, or the one open_document last selected) — id, title, a short preview, tags, and stats, NOT the full body text. Use this to check what's currently open before editing it, without needing to already know its id. Returns ok: false if no document is currently open — call open_document first in that case.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}summarize_selectionAction
Summarizes ONLY the text the human user currently has highlighted/selected on the page right now — it takes no text input and cannot be given arbitrary text, so it can never be used to extract a full document. Use this when the user asks you to summarize something they just selected. Returns a short capped summary only. Returns ok: false with no summary if nothing is currently selected — ask the user to select text first rather than guessing.
View tool JSON
{
"name": "summarize_selection",
"kind": "act",
"impl": "imperative",
"description": "Summarizes ONLY the text the human user currently has highlighted/selected on the page right now — it takes no text input and cannot be given arbitrary text, so it can never be used to extract a full document. Use this when the user asks you to summarize something they just selected. Returns a short capped summary only. Returns ok: false with no summary if nothing is currently selected — ask the user to select text first rather than guessing.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}summarize_documentAction
Summarizes one WHOLE document by id (unlike summarize_selection, which only reads the user's live text selection). Use this for a quick summary of an entire document, or to understand it before writing new content with insert_paragraph. Output length is hard-capped regardless of document length, so it can never approximate the full text. Does not save or share anything — combine with create_share_link for that.
View tool JSON
{
"name": "summarize_document",
"kind": "act",
"impl": "imperative",
"description": "Summarizes one WHOLE document by id (unlike summarize_selection, which only reads the user's live text selection). Use this for a quick summary of an entire document, or to understand it before writing new content with insert_paragraph. Output length is hard-capped regardless of document length, so it can never approximate the full text. Does not save or share anything — combine with create_share_link for that.",
"inputSchema": {
"type": "object",
"properties": {
"documentId": {
"type": "string",
"description": "Optional. Id of the document, as returned by list_documents, search_documents, or open_document. Omit to use the currently open document."
}
},
"required": [],
"additionalProperties": false
}
}suggest_document_linksAction
Analyzes all local documents for likely topical connections and proposes links between pairs of them, each with a short reason (shared terms). Use this when the user asks you to find connections or relationships between their documents. Returns only titles, ids, and short reasons — never document bodies. Suggestions are shown to the user as cards and require the user's explicit accept_link_suggestion before becoming permanent — this tool alone changes nothing permanent.
View tool JSON
{
"name": "suggest_document_links",
"kind": "act",
"impl": "imperative",
"description": "Analyzes all local documents for likely topical connections and proposes links between pairs of them, each with a short reason (shared terms). Use this when the user asks you to find connections or relationships between their documents. Returns only titles, ids, and short reasons — never document bodies. Suggestions are shown to the user as cards and require the user's explicit accept_link_suggestion before becoming permanent — this tool alone changes nothing permanent.",
"inputSchema": {
"type": "object",
"properties": {},
"additionalProperties": false
}
}highlight_related_documentsAction
Highlights, in the page's document list, the documents most related to one given document (by shared terms) — a visual aid only. Use this when the user wants to see what's related to a document without necessarily linking anything. Returns the related documents' ids, titles, and shared terms — never document bodies. This is purely visual and reversible; it does NOT create any permanent link (use suggest_document_links + accept_link_suggestion for that).
View tool JSON
{
"name": "highlight_related_documents",
"kind": "act",
"impl": "imperative",
"description": "Highlights, in the page's document list, the documents most related to one given document (by shared terms) — a visual aid only. Use this when the user wants to see what's related to a document without necessarily linking anything. Returns the related documents' ids, titles, and shared terms — never document bodies. This is purely visual and reversible; it does NOT create any permanent link (use suggest_document_links + accept_link_suggestion for that).",
"inputSchema": {
"type": "object",
"properties": {
"documentId": {
"type": "string",
"description": "Required. Id of the document, as returned by list_documents, search_documents, or open_document. This is the document to find related documents for."
}
},
"required": [
"documentId"
],
"additionalProperties": false
}
}insert_paragraphAction
Inserts one new paragraph into a document, at the top or the bottom. Matches requests like 'add a short summary paragraph at the top'. The `text` parameter is the exact paragraph content to add. Leaves existing content unchanged; replace_text is the tool for changing existing content. Modifies the document's saved content immediately and returns its new character count.
View tool JSON
{
"name": "insert_paragraph",
"kind": "act",
"impl": "imperative",
"description": "Inserts one new paragraph into a document, at the top or the bottom. Matches requests like 'add a short summary paragraph at the top'. The `text` parameter is the exact paragraph content to add. Leaves existing content unchanged; replace_text is the tool for changing existing content. Modifies the document's saved content immediately and returns its new character count.",
"inputSchema": {
"type": "object",
"properties": {
"documentId": {
"type": "string",
"description": "Optional. Id of the document, as returned by list_documents, search_documents, or open_document. Omit to use the currently open document."
},
"text": {
"type": "string",
"description": "The paragraph text to insert, written by you. Plain text; do not include markdown headers."
},
"position": {
"type": "string",
"enum": [
"top",
"bottom"
],
"description": "'top' inserts as the first paragraph; 'bottom' appends as the last paragraph."
}
},
"required": [
"text",
"position"
],
"additionalProperties": false
}
}replace_textAction
Finds the first exact occurrence of a snippet of text within a document's body and replaces it with new text. Use this for targeted edits like fixing a sentence or updating a specific phrase — NOT for adding new content (use insert_paragraph for that). The match is case-sensitive and must match exactly, including punctuation. Actually modifies the document's saved content immediately. Returns ok: false if no match was found.
View tool JSON
{
"name": "replace_text",
"kind": "act",
"impl": "imperative",
"description": "Finds the first exact occurrence of a snippet of text within a document's body and replaces it with new text. Use this for targeted edits like fixing a sentence or updating a specific phrase — NOT for adding new content (use insert_paragraph for that). The match is case-sensitive and must match exactly, including punctuation. Actually modifies the document's saved content immediately. Returns ok: false if no match was found.",
"inputSchema": {
"type": "object",
"properties": {
"documentId": {
"type": "string",
"description": "Optional. Id of the document, as returned by list_documents, search_documents, or open_document. Omit to use the currently open document."
},
"find": {
"type": "string",
"description": "The exact, case-sensitive text to search for in the document body. Must match exactly, including punctuation."
},
"replaceWith": {
"type": "string",
"description": "The text that replaces the first match of `find`. An empty string removes the matched text."
}
},
"required": [
"find",
"replaceWith"
],
"additionalProperties": false
}
}save_documentAction
Confirms a document's edits are saved to local storage and returns a final snapshot (title, character count, saved time). Matches 'save it' or 'save this document'. Edits from insert_paragraph/replace_text already persist immediately; this call gives a definitive confirmation. Does not create a shareable link — for a combined 'save and share' request, call create_share_link alone instead, which saves first.
View tool JSON
{
"name": "save_document",
"kind": "act",
"impl": "imperative",
"description": "Confirms a document's edits are saved to local storage and returns a final snapshot (title, character count, saved time). Matches 'save it' or 'save this document'. Edits from insert_paragraph/replace_text already persist immediately; this call gives a definitive confirmation. Does not create a shareable link — for a combined 'save and share' request, call create_share_link alone instead, which saves first.",
"inputSchema": {
"type": "object",
"properties": {
"documentId": {
"type": "string",
"description": "Optional. Id of the document, as returned by list_documents, search_documents, or open_document. Omit to save the currently open document."
}
},
"required": [],
"additionalProperties": false
}
}create_share_linkAction
Saves the document and generates a shareable URL opening a read-only snapshot of it, viewable by anyone with the link, without access to this browser's storage. The snapshot is a capped summary only, never the full document text. Matches 'save it and give me a link I can share' or 'give me a link to this document' — one call handles both saving and sharing. Returns the url in the response.
View tool JSON
{
"name": "create_share_link",
"kind": "act",
"impl": "imperative",
"description": "Saves the document and generates a shareable URL opening a read-only snapshot of it, viewable by anyone with the link, without access to this browser's storage. The snapshot is a capped summary only, never the full document text. Matches 'save it and give me a link I can share' or 'give me a link to this document' — one call handles both saving and sharing. Returns the url in the response.",
"inputSchema": {
"type": "object",
"properties": {
"documentId": {
"type": "string",
"description": "Optional. Id of the document, as returned by list_documents, search_documents, or open_document. Omit to share the currently open document."
}
},
"required": [],
"additionalProperties": false
}
}accept_link_suggestionAction
Accepts one pending suggestion from suggest_document_links, permanently linking the two documents it named. Use this only after the user has agreed to a specific suggestion. Requires the suggestionId from a prior suggest_document_links call — not a document id. Calling it again on an already-resolved suggestion has no further effect.
View tool JSON
{
"name": "accept_link_suggestion",
"kind": "act",
"impl": "imperative",
"description": "Accepts one pending suggestion from suggest_document_links, permanently linking the two documents it named. Use this only after the user has agreed to a specific suggestion. Requires the suggestionId from a prior suggest_document_links call — not a document id. Calling it again on an already-resolved suggestion has no further effect.",
"inputSchema": {
"type": "object",
"properties": {
"suggestionId": {
"type": "string",
"description": "The id of a pending suggestion, exactly as returned in the 'suggestionId' field of a prior suggest_document_links call. This is not a document id."
}
},
"required": [
"suggestionId"
],
"additionalProperties": false
}
}reject_link_suggestionAction
Rejects one pending suggestion from suggest_document_links, removing it from the pending list without linking the documents. Use this only after the user has declined a specific suggestion. Requires the suggestionId from a prior suggest_document_links call — not a document id. Calling it again on an already-resolved suggestion has no further effect.
View tool JSON
{
"name": "reject_link_suggestion",
"kind": "act",
"impl": "imperative",
"description": "Rejects one pending suggestion from suggest_document_links, removing it from the pending list without linking the documents. Use this only after the user has declined a specific suggestion. Requires the suggestionId from a prior suggest_document_links call — not a document id. Calling it again on an already-resolved suggestion has no further effect.",
"inputSchema": {
"type": "object",
"properties": {
"suggestionId": {
"type": "string",
"description": "The id of a pending suggestion, exactly as returned in the 'suggestionId' field of a prior suggest_document_links call. This is not a document id."
}
},
"required": [
"suggestionId"
],
"additionalProperties": false
}
}