Skip to content

Search is only available in production builds. Try building and previewing the site to test it out locally.

Every AI Entry Point

DocGraph’s AI shows up in ten different places. They share a model and a privacy posture but differ in what they read, whether they touch your files, and which formats they work on. This page is the map; each row links to where it’s explained properly.

Everything here except MCP is off until you enable AI and requires a chat model (set one up); the MCP server has its own toggle and runs against the connected agent’s model, not one of yours. Nothing on this page contacts a network service unless you have deliberately set one up — a cloud provider, a remote Ollama, or web search.

Entry pointWhereReadsWritesFormats
Chat panelRight sidebarVault or open fileOnly via agent actions, confirmedAll
SummarizeToolbar ✦ AI menuOpen fileNoAll readable
ProofreadToolbar ✦ AI menuOpen fileOn FixHTML, Markdown
BeautifyToolbar ✦ AI menu (not in <>Source)Open fileImmediatelyHTML
/ AI commandsSlash menuOpen file (Ask AI: your vault)Yes — Ask AI and Write with AI as a draft you acceptHTML only
Selection AISelection toolbar ✨The selectionYesHTML, Markdown
Typing suggestionsInline, as you typeCurrent paragraphOn TabHTML only
File right-clickFile treeThat fileTags onlyText-extractable
Folder right-clickFile treeUp to 12 notes in the folderOnly when you click Create note from this or Create tableText-extractable
MCPExternal agentWhatever it asks forConfirmed, or auto-approvedAll

There are two, and they are not the same thing:

  • ✦ AI menu → Summarize this file summarizes the file you have open, into a popover. Nothing is written.
  • / → Summarize inserts that summary into the page as a blockquote.

Both reuse the same cached result, so the second is instant after the first. A cached summary is also what powers the TL;DR bar that can appear above a page in reading view — it never runs the model just because you opened a file, so no TL;DR means no summary has been made yet.

Right-clicking a file in the tree offers three AI items, on any file whose text can be extracted — including PDFs, spreadsheets and Word documents:

  • Summarize — a modal with the summary. No write.
  • Suggest tags — proposes tags as clickable chips; clicking one applies it. This writes to DocGraph’s tag index, not into the document.
  • Ask AI about this — opens the chat panel with that file as context.

Two models are configured in Settings → AI → Chat & index:

  • The chat model answers in the chat panel.
  • The utility model runs the background jobs: summaries, proofreading, tag suggestions, commit messages, and the quick rewrites chat makes of your question before searching — and the typing suggestions in HTML notes (grey text after the cursor, Tab to accept). With no utility model set, these use the chat model.

Splitting them lets you pair a large chat model with a fast utility one. The trade-off is real and worth knowing: a small utility model makes Proofread nearly useless — see the warning on the editor AI page.

None of these features need a model with tool-calling or thinking support. Those capabilities only matter for the chat panel’s agent actions.

ActionUndoable
Proofread FixYes
Accepting a typing suggestionYes
Rewrite / Shorten / Fix grammarYes
/summarize, /continueYes
/write Accept or DeleteNo
BeautifyNo — Revert bar only, and only until you navigate away
A chat agent changeNot with ⌘Z — use ↩ Undo last AI change under the answer (most changes)
Anything an MCP agent writesNot with ⌘Z — it goes on the same undo stack as the chat agent’s changes

For what neither can reach, version history is the real safety net.

The .md surface has less AI than HTML does. The full comparison is on the editor AI page; the short version is that the toolbar buttons and selection actions work, and the slash-menu AI group and typing suggestions do not exist there at all.

  • AI is off by default and nothing is downloaded or contacted until you turn it on.
  • With a model on this computer — the built-in runtime, Apple’s on-device model or a local Ollama — no vault content leaves your machine for the AI. The status pill in the top-right reads 100% local when that’s true.
  • Web search is off by default; when on, each query is shown to you before it is sent, and a SearXNG server on your own computer keeps it local.
  • Pointing DocGraph at a remote Ollama requires a separate, explicit confirmation, and secret-detection then inspects what would be sent.
  • A cloud provider (OpenAI, Anthropic, OpenRouter, a custom endpoint) is off by default: you save a key, allow it in a system dialog, and pick one of its models. The badge then reads Cloud AI · {provider}, and secrets are blocked from the prompt by default.
  • Every AI run is recorded in Settings → Privacy → Activity & audit — model, task, token counts, and which notes were placed in context. Not a transcript.
  • Two paths are outside that boundary by design and say so: external CLI agents run under their own credentials, and an MCP client relays whatever it reads to its own provider.

In Agent Mode the assistant works through tools, and an MCP agent gets the same set. There are 87: 43 read-only tools that run without asking, and 44 write tools that stop and ask you first (Asks in the tables) — unless you choose Approve all this session in chat, or an MCP client’s auto-approve covers them. With Agent Mode off, only read-only tools are offered — the write tools are not merely blocked, they are absent — and a model usually starts with a short menu of the common ones, asking for the rest when it needs them.

Two more tools exist only in the in-app assistant: web_search, when web search is on, and propose_web_search, which offers to turn it on when it is off. They are never exposed over MCP, so an MCP agent gets the same 87.

ToolKindWhat it does
search_vaultReadsSearch for relevant passages by keywords, meaning and link structure, with optional filters such as tag, person and date. Returns passages with their file paths and the links between them.
find_notesReadsList the notes a request means (“find the note about X”), with the reason each was picked; the best one opens when it is clearly ahead.
read_fileReadsRead a file’s text, a page at a time for long files.
read_spreadsheetReadsRead exact cells and rows from a spreadsheet (.xlsx, .xls, .ods, .csv), by sheet, with paging.
list_filesReadsList files and folders by exact path, folder prefix, filename fragment, or files with no readable text only.
get_outlineReadsA file’s heading tree, to find the right section before reading a long document.
get_note_contextReadsOne note’s properties, tags, outline, the notes linking to it (each with the sentence around the link), the notes it links to and the links among those notes, in one call — what an agent reads before editing a note.
open_fileReadsShow a file to you at the end of a turn. Navigation only; nothing is changed.
list_lockedReadsNames the encrypted files that exist. Their contents are never readable until you unlock them.
docgraph_helpReadsAnswer a question about DocGraph itself — features, settings, shortcuts — from the copy of this user guide bundled with the app, citing the section it used.
ToolKindWhat it does
create_fileAsksCreate a new HTML note. Never overwrites an existing file.
edit_fileAsksFind-and-replace edit, on HTML and Markdown notes. The card shows what is removed and what is put in.
append_to_fileAsksAppend an HTML fragment to the end of a page.
copy_fileAsksDuplicate a file byte-for-byte, including images and PDFs.
rename_fileAsksRename or move a file and rewrite the links that pointed at it.
delete_fileAsksMove one or more files to the OS trash, with an undo entry each.
list_templatesReadsList the notes in the Templates folder.
create_from_templateAsksCreate a note from a template, filling {{title}} and the date tokens.
daily_noteAsksReturn the path of a day’s daily note, creating it from the template if it doesn’t exist. Never makes a second note for the same day.
captureAsksAdd a note or a todo to the capture inbox note.
add_taskAsksAdd a todo in one step — its text, the people it is for and its due or start date — to the capture inbox, today’s daily note, the open page or a named note. Dates in your own words are read by DocGraph on your clock and shown on the card.
get_authoring_guideReadsThe page-conventions reference the AI follows when it builds pages.
validate_pageReadsLint an HTML page it wrote: page skeleton, table, query and chart marker ids, in-vault links, scripts.
ToolKindWhat it does
list_backlinksReadsNotes that link to a note, with depth and PageRank.
get_outbound_linksReadsNotes a note links to, with depth and PageRank.
graph_neighborsReadsNotes linked to or from a note, in both directions.
run_graph_queryReadsWalk the link graph from a note by direction, depth and link type (rel).
shortest_pathReadsThe shortest link chain between two notes (up to 6 hops), with each hop’s link type.
find_orphansReadsNotes no other note links to.
find_broken_linksReadsLinks that point at files that don’t exist.
set_link_relAsksSet or clear the typed link (rel) on the links from one HTML page to a target. HTML pages only.
ToolKindWhat it does
get_tagsReadsThe tags on one file, both yours and auto-generated.
list_tagsReadsEvery tag in the vault with the number of files carrying it.
list_pages_by_tagReadsEvery file carrying a tag.
apply_tagsAsksApply up to 12 tags to a file. Written to DocGraph’s tag index, not into the document.
query_propertiesReadsFind pages by their page properties (key/value metadata).
set_propertyAsksSet one page property.
delete_propertyAsksRemove a page property.
get_ontologyReadsThe vault’s declared note types, entity kinds, link types and typed property keys.
list_peopleReadsEvery @name the vault mentions, most-mentioned first.
mentions_ofReadsNotes that mention a person with @name.
ToolKindWhat it does
list_tasksReadsThe vault’s todos, filterable by status, assignee and dates. Each is addressed as <path>#<ordinal>.
set_taskAsksTick a task off, or un-tick it.
set_task_propsAsksSet a task’s assignees, assigner and start and due dates. Omitted properties are cleared. Dates in your own words are read on the card, as for add_task.
set_block_propsAsksSet or remove properties on HTML lines or todos. One call can change many files, so it always asks, even with Approve all this session on.
ToolKindWhat it does
create_folderAsksCreate a folder.
move_folderAsksMove a folder and rewrite the links into it.
delete_folderAsksDelete a folder and everything in it, to the OS trash. Undoable in-app only up to 100 files / 2 MB.
set_folder_iconAsksSet a folder’s or a page’s icon and colour.
clear_folder_iconAsksRemove a folder’s or a page’s icon.
get_tree_orderReadsThe tree’s manual sibling order.
set_tree_orderAsksSet the manual order of a folder’s children.
set_pinned_filesAsksPin or unpin files at the top of the tree.
ToolKindWhat it does
list_tablesReadsList the vault’s data tables.
get_table_schemaReadsA table’s columns and types.
query_tableReadsFilter, sort and page a table’s rows.
search_tablesReadsKeyword search inside table cells.
get_relatedReadsFollow a relation column to the row it points at in another table.
list_saved_queriesReadsList the saved queries.
run_saved_queryReadsRun a saved query.
query_sourceReadsQuery the vault’s own data — files, tasks, tags, people, dates, links, properties — without a saved query.
create_tableAsksCreate a data table.
rename_tableAsksRename a table.
delete_tableAsksDelete a table with all its rows and columns. Undoable with Undo last AI change.
add_columnAsksAdd a column.
update_columnAsksRename a column or change its type; cell values are kept.
insert_rowAsksAdd a row.
update_rowAsksChange a row.
delete_rowAsksDelete a row.
set_table_sortAsksSet a table’s display sort, like clicking its column headers.
save_queryAsksSave a named query over a table.
delete_queryAsksDelete a saved query.
import_spreadsheet_as_tableAsksImport a .xlsx or .csv as one editable table per sheet, plus a page that embeds them. The source file is copied, not changed.
ToolKindWhat it does
list_chartsReadsList the saved charts.
read_chartReadsRead the categories and values a chart plots right now, to check it before citing it.
create_chartAsksCreate a bar, line, area, pie, scatter or Gantt chart from a table or query, or update an existing one by id.
delete_chartAsksDelete a chart.
read_boardReadsA whiteboard’s nodes, edges and frames (no positions). Called before edit_board.
create_boardAsksCreate a whiteboard or diagram from a description of nodes and edges.
edit_boardAsksAdd, change or connect nodes on an existing board.
ToolKindWhat it does
git_statusReadsUncommitted changes in the vault.
git_historyReadsPast snapshots of the vault, or of one file.
git_snapshotAsksTake a local version-history snapshot. Never pushes.
ToolKindWhat it does
make_searchableAsksMake scanned PDFs or images searchable. Their text is read on this computer, in the background.
remove_from_searchAsksTake PDFs or images out of search and delete the text read from them.
ToolKindWhat it does
read_memoryReadsRead Memory/agent.md, the lines remembered across chats.
propose_memoryAsksPropose one line (up to 300 characters) to remember. You approve it first; it is never auto-approved.