Mnemo
unlistedby Ryann
随口说的话 → AI 整理成带双链的概念笔记,知识网自动生长。
Mnemo
Turn what you say into a knowledge graph that grows, links itself, and asks you why.
An Obsidian plugin: type what you just learned — messy, spoken, half-understood — and Mnemo breaks it into concept notes with [[wikilinks]], so your graph view grows on its own.
中文说明见文末。
Why
I kept running into the same problem: the first time I work on a project, I only understand the surface. The deeper logic only clicks on the n-th review — and each time, I have to rebuild the reasoning from scratch, because my notes never recorded how my understanding changed.
The tools didn't help:
- Chat AI understands what I say, but keeps no persistent structure. The conversation ends, the structure disappears.
- Note apps have the graph, but no understanding. I have to build every link by hand, so I don't.
- AI note apps suggest links, or generate read-only mind maps from documents I upload. None of them let me just talk and get a persistent, editable, cross-topic web.
The missing layer is the one that turns speech into structured nodes on disk. That's what this plugin is.
What it does (v0.1)
- A sidebar where you dump what you learned, in your own words
- An LLM breaks it into concepts, aliases, relations, and open questions
- Each concept becomes a
.mdnote with[[wikilinks]]— Obsidian's graph view does the rest - Your own phrasing and confusion are preserved verbatim, not replaced with textbook language
Notes look like this:
---
aliases: [Event Loop, イベントループ]
created: 2026-08-06
---
# 事件循环
一句话:JavaScript 单线程处理异步任务的调度机制。
## 我的理解
(2026-08-06)...your own words, kept as you said them...
## 关联
[[异步]] —— 事件循环是异步的实现机制
## 未解的为什么
- [ ] 为什么 setTimeout(fn, 0) 不是立刻执行?
The open questions and the dated understanding sections aren't decoration — they're the raw material for the next two versions.
Install
Not yet in the community plugin store. Manual install:
- Download this repo (Code → Download ZIP), or clone it
- Run
npm install && npm run buildto producemain.js(or use the prebuilt one) - Copy
manifest.json,main.js, andstyles.cssinto<your vault>/.obsidian/plugins/mnemo/ - Restart Obsidian → Settings → Community plugins → enable Mnemo
- Settings → Mnemo → paste your Anthropic API key
Your API key is stored locally in the plugin's own data file and never leaves your machine except to call the API. Default model is claude-haiku-4-5, which costs well under a cent per run.
Roadmap
| Version | Feature | Status |
|---|---|---|
| v0.1 | Capture → structure → write notes with wikilinks | ✅ done |
| v0.2 | Dedupe & merge — same concept never becomes three files | in progress |
| v0.3 | Socratic follow-up — the plugin asks why, your answer goes back into the note | planned |
| v0.4 | Understanding timeline — revisit a concept and the new understanding is appended, never overwritten | planned |
| v0.5 | Community plugin store submission | planned |
v0.4 is the one nothing else does. Obsidian goes static once you write; Notion buries it. No tool records how your understanding of something changed over time.
Development
npm install
npm run build # bundles main.ts → main.js
Source is a single annotated main.ts in seven sections: types, prompt, LLM call, rendering, vault writing, sidebar view, plugin entry.
Honesty note
The v0.1 scaffold was written with AI assistance while I was learning TypeScript. Everything from v0.2 onward is mine — the commit history shows which is which. I'm building this because I want the tool and because reading working code, then extending it, is how I'm learning.
License
MIT
中文
把你随口说的话,变成一张会生长、可点击、能被追问的知识网。
起点:第一次做项目只能理解表面,很多深层的东西要在第 n 次复盘才想明白——但每次复盘都要从零重建逻辑,因为笔记从来没记录过"我的理解是怎么变的"。
缺的那一层:聊天 AI 有理解力但没有持久的图;笔记软件有图但没有理解力。把对话内容自动落盘成结构化节点的那一层,是空的。
v0.1 能做的:侧边栏倒入一段口语化的、带着困惑的描述 → AI 拆成概念、别名、关系、未解的疑问 → 写成带 [[双链]] 的笔记 → graph view 自动长大。你的原话和困惑被原样保留,不会被替换成教科书语言。
路线图:v0.2 查重合并 → v0.3 苏格拉底追问 → v0.4 认知演变时间轴 → v0.5 提交社区插件市场。
安装、开发方式见上方英文部分。
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.