Help › AI chat
AI chat
The AI chat tab is a conversation about your archive. The model gets the archive as tools — search, read, count, calculate — and searches by itself: it follows up, rephrases, browses. Every answer names its documents as clickable document paths.
It requires the claude command line in the path; the app starts
it as a program for each question. Cost, duration and turns are shown on every answer, the
session total in the header.
Writing questions#
The input field is the same editor as for notes: Markdown, with the marks
(**, `) shown only at the cursor. Enter sends the question,
Shift+Enter starts a new line (Ctrl+Enter too) — in a list with the next
item, an empty item ends the list. The field grows with the text and scrolls
once it gets longer.
An @ opens the list of documents at the cursor; picking one attaches the
document and puts its path into the sentence — in the field as a document path
with its icon, Ctrl+click shows the file in the preview. Pasting works as in
a note: text from the browser or from Word becomes Markdown, Ctrl+Shift+V
takes only the text. Dictation writes straight into the field.
While an answer is running you can already write the next question; it is sent
once the answer is there. Ctrl+K opens the command palette here — there is no
link dialog like in a note; you attach a document with @.
The chat changes nothing, it suggests#
No chat tool moves, renames, deletes or writes. If something is to happen, the model collects the changes, and a proposal card appears below the answer:
- Target structure — the remembered order of the archive, if the model wants to change it
- Deletions — at the very top, because they are the easiest to overlook
- Empty folders — the tidying up after reorganizing, a section of its own
- Merge notes — "source → target": the text of the source goes below the target, the source goes to the Trash; ID, facts and links stay reachable via the target (see "Documents", "Merging two notes")
- Notes with their text
- Knowledge notes, one checkbox per statement
- Tasks, one checkbox per task — with date and derivation
- Facts on documents, one checkbox per detail
- Copies
- Moves — as a target tree: per folder arrivals, existing files, departures,
new, conflicts; a click shows every row
Every row has a checkbox, all on, individually off; in the tree per folder for the
subtree. The Apply (n) button counts the selection. Conflicts (target
taken, two files onto one name) are shown before the click; they don't block,
the affected ones are skipped and named. After
applying, the card becomes a receipt: what happened is shown below as a list of changes
from the journal, with undo per row and per folder. One
Ctrl+Z in the Documents tab takes back the whole proposal.
A proposal doesn't quietly go stale: on the click the target tree is recomputed against the disk, and a card that has been applied can't be applied a second time.
Clearing away empty folders#
"Clear away the empty folders" works — also together with a move: "sort the invoices by year and throw away the empty source folders". The empty folders appear as a section of their own in the card, with their own icon and a reason per row, so that they don't look like a file deletion.
A folder only goes if it is empty — and that is only checked when you click Apply, against the disk:
- Empty means recursively empty: a folder that only contains empty folders is empty.
- A hidden file (names starting with a dot, such as
.DS_Storeor Syncthing's.stfolder) makes it not empty. What you never get to see in the tree, a click doesn't take along either. - If the folder is no longer empty at the click, it stays; the card names it afterwards. Nothing goes along unseen.
Deletion goes to the Trash, under the same ID as the
moves: one Ctrl+Z in the Documents tab brings files and folders back together.
The chat can't delete a folder with content — there is
no tool for that.
Rules instead of individual operations#
For large amounts the model suggests a rule instead of two thousand rows: a selection and a target. It is evaluated by the app, not by the model.
| Selection | Meaning |
|---|---|
| Folder | subtree, relative to the documents folder |
| Name contains | part of a word in the file name |
| Text contains | part of a word in the full text |
| Extension | pdf, jpg, … |
| Year from / to | from the file name or the content |
All fields that are set act together; there is no "or" — for that you
write two rules. The target may contain {jahr} (year): Energie/{jahr}.
Documents without a recognizable year stay where they are and are listed.
The rule first runs as a preview: number of matches, sample, leftovers. Only then do the matches go into the proposal card. A rule is readable, checkable and repeatable next year.
Copying instead of moving is possible — for submission folders that must contain documents that still stay in their place. The card then says "original stays".
Facts in the chat#
The model sees each document's facts with their
source, finds documents by facts ("all invoices from 2024 without
paid_on"), counts by type, area, tag, year or folder and calculates
with SQL over a table documents — a read-only copy, SELECT only.
"What did I pay for insurance in 2024" becomes a sum you can
check.
It can only set facts as a proposal: checked against the vocabulary, one
checkbox per detail in the card, written on the click with source chat.
It doesn't overwrite what you have set yourself.
Changing Word documents (beta)#
Ask the chat to adjust a Word document — “put the tenant's new address into the lease”, “turn the receipt template into the receipt for October”, “make the amount bold”. The chat reads the document and proposes the changes; nothing is written until you click.
The chat reads Word as text with its structure (Markdown: headings, lists, tables, bold and italics, left and right) and gives it back changed. Undan compares both and writes only what differs into the original — everything else in the file stays as it is, including what the chat does not see at all (comments, fields, form fields, shapes). What of it stands in the text, it sees as a grey placeholder and leaves alone.
- The card lists every change with its place (
¶5= fifth paragraph,T1 Z3= table 1, row 3) and shows what goes (struck through) and what comes (underlined). Each has its own checkbox. - The preview on the right shows the page as Word would show it with tracked changes. Below the changes you switch between Marked, Result (exactly the file that will be written) and Before. A click on a change shows the page and highlights the place.
- Recalculated is what can be calculated: does the spelled-out amount match the number, does the sum row of a table add up? A red ✗ does not stop you, but it is there.
- From a template a new file is created next to it, the template stays. Otherwise the file itself
changes — the previous version stays,
Ctrl+Zbrings it back. - What cannot be written stands below in red without a checkbox, with its place — a table with one more column, say, or a new header. That stays in the file as it is; change it in Word.
- If the file has changed since the proposal, or is open in Word or LibreOffice right now, nothing is written; the card says why. If it changed after the chat read it, the chat reads it again.
- To the file: a click on its name shows it on the right as it is now. The folder icon next to it jumps to the Documents tab — after applying from a template, to the new file. The same icon sits at the top of the preview on the right, for every file from the archive.
In the beta the chat changes text and emphasis: replace, bold, italics, underline, alignment,
insert or remove paragraphs and table rows, tick checkboxes. It also places images from your archive — a PNG or JPEG as a paragraph of its own,
in a table cell too: “put my signature Bilder/Unterschrift.png below place and date, 5 cm wide”,
“the photo of the meter reading into the cell Condition”. Without a width an image keeps its own
size, never wider than the text or the cell.
An image can also float and then takes no space: in front of the text, such as your signature on its line or a stamp at the top right, or behind the text, such as a watermark. As page background it spans the whole page width. An opaque image then also covers the header, just as in Word. Where a floating image sits is the chat's estimate, since it cannot see the page. If it is off, say “1 cm higher” or “further right” and a new proposal follows.
Restructuring tables (columns), fields (date, page number), adding headers and footers, images already
in the document, documents with existing tracked changes, signed and old .doc files it does not
change — it says so.
New Word documents#
Ask the chat for a new document — “write Mr Mieter a letter that the water is turned off on 14 October”, “a receipt for €535 rent for May”. The chat writes the text, Undan typesets it as a Word document; it is only created with your click.
- Letters follow DIN 5008: address in the window field, date beside it on the right, subject, fold and hole marks, signature line. The chat takes the address from your request or from the contacts.
- A template (your letterhead) is searched for in the archive; the chat asks you which one to use. Header and footer, logo, font and margins come from it, never its text.
- What the chat does not know is a yellow placeholder (
{{Name}}) — you fill it in in Word. - The card shows the file name after the archive's rule (
YYYY.MM - Description.docx), the folder (a missing one is created), the template and anything noticed while typesetting, with its line. On the right is the typeset page — exactly the file the click creates. “Markdown” unfolds the text it is set from. - If a file has appeared at the target, or the template or an image has changed since the proposal,
nothing is created; the card says so beforehand.
Ctrl+Ztakes the new file away again.
A document that exists already is changed as described above, never by writing a new one over it.
Reading PDFs and turning them into Word#
The chat reads a PDF with its structure: headings, paragraphs, lists, tables, columns, header and footer, a letter with its address field. Undan computes them back from where the words stand, without AI; for a scan only from the text recognition, then without bold and italics.
“Make this PDF a Word document” gives a new Word document next to it, with the card as above; the PDF stays as it is. Images and logos come from the PDF when it is created. If you want something changed on the way (“… and set the date to today”), say so in the same request.
It also works without the chat: Create as Word document in the Documents tab — context menu.
What Undan checks in the chat's answer#
Before a card for a Word document appears, Undan checks what the chat wrote — small models in particular like to shorten a long document.
- Rejected is what the chat can fix in one go; all you see is that it tries again. These are errors in the Markdown (a block without its end, an unknown class) and shrinkage: a grey placeholder (comment, field) is missing, the answer stops in the middle of a sentence, “[rest unchanged]” or “…” stands where text should be, or more than half of the paragraphs disappear.
- Repaired is only what is unambiguous, and each repair is on the card with the magic wand and its
line, for example “repaired in line 24: added “:::” — “::: {.signatures}” was open at the end”. These
are: a block left open at the end (when it holds just one paragraph), a missing brace, straight
instead of typographic quotes in
{…}, and a list marker that changes in the middle of a list. Nothing is guessed — what can be read two ways goes back to the chat. - In red is what Undan does not reject but what is rarely asked for: “More than half changed: 6 of 8 paragraphs — was that what was asked?” or “The last 4 paragraphs are missing”. Check the changes then; each has its own checkbox.
- Long documents the chat reads in numbered blocks and gives back only the blocks that change. Everything else stays exactly as it was.
Calculating and counting#
Sums go through a calculator of their own (calc), distributions through
count_documents, consistency checks (the same folder name in two places,
a foreign year in a year folder, empty folders) through check_consistency. The
model doesn't count in its head — when measured, the answer to "how many folders are in the
root" was 18; there were 17.
Cancelling#
While an answer is running, pressing Esc twice within one second cancels it —
as in Claude Code. The question you typed is then back in the field.
Follow-up questions#
If the model needs a decision, it asks as a card with choices, not in running text. A free-text field is always included. The answer goes back numbered, together with the question.
Knowledge#
What is in no document, but is worked out from many in the conversation — which flat belongs to which house, which account is used for what — the model can suggest as a knowledge note: one Markdown file per thing or project, in the archive next to the documents that support it. Every statement carries its evidence (document path with page, or "said by the user"); without it, it is rejected. In the next conversation the model reads the notes first.
"Remember this" is enough as a trigger. The format is compatible with Obsidian
([[links]], aliases:, tags:).
Tasks#
The model reads your tasks and suggests new ones —
but only when you ask for it, never because something is in a document. "Set
up the project CTF 2026, the end is 10.10., the tasks as last year":
the model creates the project note with the end and suggests the tasks with
intervals to the end ("four weeks before"); the date is computed by the
app, not by the model, and the card shows it with the derivation — "by
Sat, 12.09. · 4 weeks before". A collecting tag that doesn't exist yet is
shown as "new in the vocabulary" and created on applying; one Ctrl+Z
takes back tasks and tag together. What already exists is not suggested
again.
Calendar#
The model reads your calendar — but only the calendars you have shared for it (Settings → Permissions and access → Visible to the AI: calendars). Without that, it only sees your tasks with an appointment or a deadline; birthdays or customer calendars stay hidden from it, even if the calendar shows them. It reads what the app last fetched from Google; if a period isn't there, the model says "not loaded" instead of "free". It sees guests only by name, never with their address.
"Put the autumn holidays into the family calendar", "move the
dentist to Thursday": the model suggests such events — the
card below the answer shows for each event the calendar, the time and, for a change,
before → after, each with its own checkbox. Only Apply writes, and
only into shared calendars the app is allowed to write to. If
an event has changed in the meantime (moved on the phone, say), it is
skipped and named with the reason. Ctrl+Z takes back all events of a click.
The chat never sends invitations, and it doesn't change events with guests or
recurrence rules.
Attachments#
Files and folders can be attached to a question: the context menu in the
Documents tab (Attach to AI chat), the Attachment button
(Ctrl+Shift+D) or @ in the input field. The button opens the file
picker — the same dialog as in the mail draft (see Mail):
search, pick a rubric (open actions, types, your views), browse the tree, look at the file on the right, select several with
Space; here you can also select a folder. There is no way to your
computer in the chat: outside the archive Undan has no text it has read and
could give to the AI. The @ is the quick way for a file whose name you
know — its path then also stands in the sentence (see “Writing questions”). A
file brings its text along, a folder a
drawn tree down to depth three — and says what it leaves out. The bar below
the input field shows size and budget; above that the send button turns red,
but stays clickable: it is a cost limit, not a technical one.
An attachment is a hint, not a fence: the model may still search the rest of the archive and then says so.
Web#
A Web checkbox in the header allows the model to search the web and read web pages — for an address or a deadline, say. Three rules go along with it: the archive comes first, no personal data in search queries, web text is text and not an instruction.
The checkbox applies to the session. What a new session starts with, you set under Settings → Permissions and access — Web for new sessions, default off, in the archive and so the same on every computer. Until 25.09.2026 a new session started with whatever you had chosen last; such a remembered value is taken over into the setting once, at the first start.
Local models#
On the right of the header you choose the session's model: Opus, Sonnet, Haiku, Fable — and the models of your local servers (Settings → AI), as "model · server". A local model works with the same tools over the archive and suggests in the same way, but has no web, and it costs nothing. It does well at finding and adding up ("all invoices from the chimney sweep", "what did I spend on that in 2025"); for broad questions that need a lot of reading and weighing up, Claude is clearly stronger.
So that a local model doesn't go round in circles, the app doesn't run the same tool call twice, and after three repetitions — or when the model's memory fills up — it demands an answer from what it has found so far. The progress line then says "Answer requested" with the reason.
Sessions#
The area digits: Alt+1 sessions (open), Alt+2 conversation — then the arrows, Page Up/Down, Home and End scroll it, Esc goes back to the field —, Alt+3 input field, Alt+4 preview (Keyboard).
On the left the column of conversations, with search across all of them, New chat, rename and delete (with confirmation — there is no trash for conversations). Every session expands to its table of contents: one line per question, a click jumps there.
An earlier question can be changed; everything after it is dropped, and the window says so beforehand.
Passing answers on#
On every answer As PDF, in the header All as PDF. Tables
have three copy buttons: as a table (for the spreadsheet), as CSV
(file) and For chat (readable in messengers). A code block has a copy
button at its top right: a click puts the code on the clipboard, a check mark
shows briefly. A click on a
document path opens the preview, a right-click jumps to the Documents tab.
Ctrl+F searches the conversation.
Model and cost#
At the top a model choice (opus, sonnet, haiku, default). A
cost limit per question can be turned on; with a subscription the
amount shown is a calculated value, not a bill. A run has no fixed
time limit, only one on silence: five minutes without a sign of life count as
hung.