README file from
GithubNous turns each capture — a typed thought, a voice memo, a call, a photo, a PDF — into a summarized note, tagged from a controlled vocabulary and linked to related notes. When a topic has enough notes, Nous writes a self-updating wiki page that collects them. And it is local-first: Claude Code CLI, local whisper.cpp, and Ollama send nothing off your machine — direct API keys are opt-in.
Works on: Desktop (macOS, Windows, Linux) and Mobile (API-key or local-model mode). Meeting capture is macOS-only. Live voice transcription (beta) is desktop-only.
Contents
- Features
- Your vault as AI context
- Install
- Quickstart
- How it works, briefly
- Documentation
- For developers
- License
Features
- 🎙️ Capture anything — Type, paste, drop a file, record a voice note, or record a meeting on macOS.
- 🏷️ Automatic tags — Every capture gets tags from a controlled vocabulary. No manual sorting.
- 🔗 Automatic links — Related notes connect to each other without manual work.
- 📖 Self-updating wiki pages — When a topic has enough notes, Nous writes a wiki page for it. The page stays current.
- 🔒 Local-first — Claude Code CLI, local whisper.cpp, and Ollama keep data on your machine. API keys are optional.
- 📱 Desktop and mobile — The full pipeline runs on desktop. Mobile supports API-key or local-model mode.
- 🎨 An editorial look, on by default — notes render with a chip header,
small-caps sections, and a folded transcript instead of a raw properties
table. Opt into the full vault-wide theme in Settings → Nous → Appearance —
see
docs/USAGE.md.
Your vault as AI context
A Nous vault is not only for reading back. Real tags and linked wikis are
great context for AI coding assistants - much better than a pile of raw
notes. Add one line to Claude Code's global ~/.claude/CLAUDE.md, for
example "My notes live in ~/path/to/vault - check
10-Notes/20-Tags/30-Wikis for background". Then every project gets
that context automatically, with no extra setup.
The reasoning behind this vault structure is in Personal RAG Without the Drag - why agentic search over an organized vault beats embedding pipelines for personal notes.
Install
- In Obsidian, open Settings → Community plugins. Turn community plugins on.
- Click Browse and search for "Nous". Click Install, then Enable.
Or open Nous's page on Obsidian's site directly.
Quickstart
1. Enable Nous — a setup wizard opens automatically. Choose how Nous writes notes: a Claude subscription, a free local model, or an API key. Then the wizard checks the optional voice and meeting setup.
2. Capture something. There are three ways in, all in the left sidebar. The 🎙️ and 📞 buttons toggle: click to start, talk, then click again to stop. Each action is also a real Obsidian command - open Settings → Hotkeys, search for "Nous", and bind the ones that you use often.
| 🎙️ | Voice note | click the mic |
| 📞 | Meeting (macOS) | click the phone - on a call or in person. A live note opens for your questions |
| 📥 | Anything else | drop it straight into 00-Inbox |
Dictate from anywhere (optional): a system-wide dictation app such as Handy can drop transcripts into the inbox when Obsidian is closed - see the usage docs for the one-line capture script.
3. That is all. Within seconds, Nous tags, summarizes, and links your
capture in 10-Notes. The original text, image, or recording stays
inside the note. When a topic has 4 or more notes, Nous writes a wiki page
for it in 30-Wikis. Obsidian must be open for this to run - new
captures wait in 00-Inbox until you open it.
Do you already have a vault structure? The folder names
(00-Inbox/10-Notes/20-Tags/30-Wikis) are only defaults. You can
change each one in Settings → Nous.
How it works, briefly
- Voice transcription has two paths. With a Gemini or OpenAI key, there
is nothing to install - the key is used only for speech-to-text. For the
fully private path, whisper.cpp
runs on your Mac and your voice never leaves it: setup downloads the
speech model in one click, and
brew install whisper-cppis the one terminal command in the whole product. - The native
nous-recorderhelper records meetings on macOS (setup installs it). When the recording starts, Nous opens a live note for your questions. When you stop, an online call becomes aMe:/Them:dialogue; an in-person meeting becomes one unlabeled room transcript. Details are in the usage docs. - Privacy: Nous sends only your captured notes and tag names to the provider that you chose. Local mode sends nothing anywhere. There is no telemetry.
- Limitations: a group call shows all other participants as one
Them:speaker. Mic capture needs macOS 15 or later. Live voice transcription (beta) needs an OpenAI key and desktop.
Full pipeline detail → docs/ARCHITECTURE.md.
Documentation
docs/TUTORIAL.md |
A slow, step-by-step walkthrough of your first hour with Nous. |
docs/USAGE.md |
Every provider, hotkey, and troubleshooting step. |
docs/ARCHITECTURE.md |
The conceptual model — layers, data flow, design principles. |
docs/TECHNICAL.md |
Code map and implementation detail, for contributors. |
Obsidian LLM Wiki lists Nous as a companion plugin for local voice and meeting capture - the two plugins are independent and can share a vault.
For developers
npm install && npm run build && npm test
npm run build:recorder
npm run build:recorder:universal && npm run package:recorder
Core logic lives in src/ and has no Obsidian dependency. main.ts
connects it to the app. The native macOS meeting helper lives in
native/nous-recorder/.
License
MIT — see LICENSE.