Nous

by Andy Ho
5
4
3
2
1
Score: 51/100

Description

Turn dictated or pasted notes into a linked, tagged Obsidian knowledge graph, powered directly by the Anthropic API.

Reviews

No reviews yet.

Stats

0
stars
180
downloads
0
forks
20
days
1
days
1
days
0
total PRs
0
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
164
commits

README file from

Github

Nous 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

  • 🎙️ 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

  1. In Obsidian, open Settings → Community plugins. Turn community plugins on.
  2. 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-cpp is the one terminal command in the whole product.
  • The native nous-recorder helper 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 a Me:/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.