Skip to content
Features

Knowledge sources

Drafts are grounded in a local index built from material you choose. The index lives at ~/.inboxminder/index/ and never leaves your Mac; at indexing time the text is sent once to your embedding provider to be turned into vectors (a local embedding model keeps even that on the Mac).

Sources

SourceWhat it indexesWhere to set it up
Sent mailYour own past replies, as the style corpus. Always on with the assistantAutomatic
FoldersMarkdown, text and docs in local foldersWizard, Sources editor, [connectors.files]
Docs siteAn llms.txt or llms-full.txt your docs publishWizard, [connectors.llmstxt]
GitHubRepositories, cloned shallowly with your own git credentials, so private repos work[connectors.github]
NotionPages your integration token can readSources editor, inboxminder set-key notion
LinearIssues your API key can readSources editor, inboxminder set-key linear
SlackChannels you list, with a user token that has channels:historySources editor, inboxminder set-key slack
NotesWhat you write in the window's Your notesAutomatic
Canonical answersQ&A snippets in a folder, ranked above everything else[answers], see Drafting
The sources editor in the menu bar
The sources editor in the menu bar

Notion, Linear and Slack tokens are read-only uses; the only write the app ever makes to any of these is filing a Linear issue when you ask for one with a label.

Indexing

The index is built when you go live, refreshed at agent startup, and every indexRefreshHours (default 24) while watching. It is incremental: each source keeps a cursor, each document a content hash, so only changed documents are re-embedded. Notes are indexed the moment you save them.

Sent mail comes in batches of sentBackfillLimit (default 200) per run, newest first, with older history backfilled one batch per run until the mailbox is exhausted. On a large mailbox the voice corpus fills over a few days.

Run it by hand:

inboxminder index                      # everything, incremental
inboxminder index --source files       # one connector
inboxminder index --full               # refetch everything (unchanged text is still not re-embedded)

Changing the embedding provider, model or dimensions needs --full; the content hashes include the embedding config, so everything re-embeds.

Excluding a document

Knowledge in the window, Stop using in drafts, or:

inboxminder knowledge docs             # find the docKey
inboxminder knowledge exclude <docKey>
inboxminder knowledge include <docKey>

An excluded document stays excluded through re-indexing; an included one returns on its next pull. The same works for a single sent email from Voice.

Seeing what a draft would find

echo "how long do refunds take?" | inboxminder knowledge search --stdin
The Knowledge section's look-up
The Knowledge section's look-up

or the search box in Knowledge. If the right passage does not come up, the fix is usually a note, a canonical answer, or a better-structured document, not a prompt change.

Docs-gap drafting

With [docs] on, a customer question your indexed docs cannot answer produces a new page or a surgical edit drafted into a local docs repository's working tree. Nothing is committed, and files with uncommitted changes are never touched. The question is anonymized before the writer sees it; sender identity never reaches the page.

[docs]
enabled = true
repoPath = "~/code/docs"
sources = ["llmstxt"]     # which indexed sources count as "your docs"
instructions = "Use our MDX components; second person; never document internal tooling."

docs.instructions (Preferences → Features → Docs) steers voice, structure and topics to leave out; it cannot make a page invent facts, and gaps still get a [TODO: …]. Drafted pages appear in Written for you with an open-in-Finder link, and in inboxminder written list.

Last updated 14 October 2026. Questions: hi@kelviq.com.