A second brain that answers back.
StemmaFlow connects your notes, PDFs, clips and highlights into one living knowledge graph — then lets you ask questions across all of it. Every answer cites the exact source, and every note stays yours in plain Markdown.
NotebookLM gives you answers. Obsidian gives you a graph. StemmaFlow gives you both — on top of Markdown you own.
Answers with receipts.
Links that build themselves.
Three systems that turn a folder of notes into something you can question.
Ask across everything
Notes, PDFs, web clips and transcripts live in one searchable space. Answers come back with the exact source attached, so you can check the thinking.
A graph that grows itself
Wikilinks, backlinks and semantic links connect as you write. See clusters, gaps and orphan notes at a glance — then fill them in.
Plain Markdown, forever
Every note is a .md file in a folder you choose. Sync it, version it, or walk away with it — there is no export button to hunt for.
Also included: audio overviews, hybrid semantic search, encrypted multi-device sync, and offline-first storage.
Extend it.
Or build the extension yourself.
StemmaFlow is a workspace, not a walled garden. The plugin runtime is sandboxed, fully typed and open, so anyone can add a source, swap in an AI model, or build a new view of your graph.
Sandboxed, typed and open
Import from Zotero, arXiv and Readwise. Run a local model. Sync to S3 or Git. If the community has not built it yet, the SDK is a weekend away.
- Isolated Web Worker & WASM sandbox
- Typed SDK hooks:
source:import,model:embed,view:render - Zero lock-in, open source license
// Every plugin is a typed module.
import { definePlugin } from "@stemmaflow/sdk";
export default definePlugin({
id: "arxiv-importer",
permissions: ["vault:write", "net:fetch"],
hooks: {
"source:import": async (ctx) => {
const paper = await fetchPaper(ctx.input.url);
return ctx.vault.createNote({
title: paper.title,
body: toMarkdown(paper),
tags: ["paper", ...paper.categories],
link: { type: "source", url: ctx.input.url },
});
},
},
});
Free to think.
Upgrade when you outgrow it.
Start with a full vault, not a trial. No credit card.
Free
For personal notes and first experiments.
Start free- 3 vaults
- 1 GB of sources
- 150 AI answers a month
- 10 community plugins
- Markdown export
Pro
For daily drivers who think across everything.
Start a 14-day trial- Unlimited vaults
- 100 GB of sources
- Unlimited AI answers
- Audio overviews and briefs
- Every community plugin
- Encrypted multi-device sync
Team
For labs, studios and research teams.
Talk to us- Everything in Pro
- Shared vaults and permissions
- Admin console and SSO
- Audit log and usage analytics
- Private plugin registry
Yearly billing saves 20%. Prices in USD; taxes may apply.
Before you switch.
Is my vault used to train AI models?
No. Your notes are never used for training and never shared across accounts. Answers are generated per request from the sources you select, and on Pro you can bring your own model key.
Can I import my existing Obsidian vault?
Yes. Point StemmaFlow at a folder of Markdown and it preserves frontmatter, wikilinks, embeds and attachments. The vault stays the source of truth — StemmaFlow reads it in place or syncs a copy.
What happens if I stop paying?
Nothing is held hostage. Your vault stays readable and exportable as plain Markdown. AI answers, audio overviews and multi-device sync pause until you upgrade again.
How do plugins work, and are they safe?
Plugins are TypeScript modules that declare the permissions they need, then run sandboxed in a worker. Publish to the public registry or keep a private one for your team.
Does it work offline?
Writing, linking, search and the graph all work offline because the vault lives on your device. AI features need a connection unless you install a local-model plugin.