AI Notes
pendingby Gabriele De Rosa
Record audio, transcribe it, and enrich your written notes with AI-powered insights.
AI Notes - Obsidian Plugin
An Obsidian plugin to record audio, transcribe it, and enrich your written notes with AI-powered insights.

Features
- šļø Audio recording ā Record directly from your microphone while editing a note
- āļø Transcription ā Convert recordings to text using whisper.cpp or any OpenAI-compatible endpoint
- š¤ AI enrichment ā Combine your notes and transcriptions, then summarize and structure them with an LLM
- š Organized storage ā Recordings are saved in per-note folders inside a configurable vault directory
- š Flexible backends ā Works with local models (Ollama, whisper.cpp, llama.cpp) or cloud APIs (OpenAI, etc.)
Commands
| Command | Description |
|---|---|
Start/Stop recording | Toggle microphone recording ā audio is embedded in the active note |
Transcribe recordings | Transcribe all embedded audio files in the current note |
Enrich note | Generate an AI-powered summary combining your notes and transcriptions |
All commands are available via the Obsidian command palette (Ctrl/Cmd + P).
Installation
- Open Settings ā Community Plugins ā Browse
- Search for AI Notes
- Click Install, then Enable
Manual installation
- Download the latest release from GitHub Releases
- Extract
main.js,manifest.json, andstyles.cssinto your vault at.obsidian/plugins/ai-notes/ - Reload Obsidian and enable the plugin in Settings ā Community Plugins
Configuration
Open Settings ā AI Notes to configure the plugin.
Recording
| Setting | Description | Default |
|---|---|---|
Recordings folder | Vault folder where audio files are saved | recordings |
Transcription (Whisper)
| Setting | Description | Default |
|---|---|---|
Whisper endpoint URL | whisper.cpp server (http://host:port) or OpenAI-compatible (http://host:port/v1) | http://localhost:8080 |
Whisper model | Model name (only for OpenAI-compatible endpoints) | whisper-1 |
Whisper API key | Optional API key (only for OpenAI-compatible endpoints) | ā |
Enrichment (LLM)
| Setting | Description | Default |
|---|---|---|
LLM endpoint URL | OpenAI-compatible API base URL | http://localhost:11434/v1 |
LLM API key | Optional API key for the endpoint | ā |
LLM model | Model name to use for enrichment | llama3 |
Usage
1. Record
Open a note and run Start/Stop recording from the command palette. The status bar shows š“ while recording. Run the command again to stop ā the audio file is automatically embedded in your note.
2. Transcribe
Run Transcribe recordings to convert all embedded audio files in the current note to text. Transcriptions appear in collapsible blocks below each recording.
3. Enrich
Run Enrich note to send your written notes and transcriptions to an LLM. The AI-generated summary is appended to your note.
Note structure
The plugin organizes your note like this:
Your written notes here...
## š“ REC
![[recording-file.webm]]
<details>
<summary>Transcription</summary>
Transcribed text...
</details>
## š¤ AI
AI-generated enrichment...
Privacy First
This plugin does not connect to any external service out of the box. All endpoints are user-configured ā nothing is sent anywhere until you explicitly set up and point the plugin to your own services.
Works great with local AI! Use llama.cpp, LM Studio, Ollama, whisper.cpp ā or any OpenAI-compatible endpoint ā to keep your data entirely on your machine.
- Transcription: Audio recordings are sent to the Whisper-compatible endpoint you configure.
- Enrichment: Note content and transcriptions are sent to the LLM endpoint you configure.
You are in full control of where your data goes.
Credits
AI Notes is made with ā„ by derogab and it's released under the GPL-3.0 license.
Contributors
Tip
If you like this project or directly benefit from it, please consider buying me a coffee:
š bc1qd0qatgz8h62uvnr74utwncc6j5ckfz2v2g4lef
ā”ļø derogab@sats.mobi
š¶ Sponsor on GitHub
Stargazers over time
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.