baconbro37 downloadsMeeting assistant: live transcript, enhanced notes, summaries and Q&A grounded in your vault. Meeting notes that write themselves, without leaving your vault.
A meeting assistant that lives in Obsidian. You keep typing shorthand in your notes; the plugin listens, transcribes on your Mac, and turns each line into a clean bullet using what was said. After the meeting it writes a summary. During it, you can ask questions answered from the transcript and from your own notes.
Everything runs on your own computer: the writing and retrieval models through Ollama (Gemma 4 12B and EmbeddingGemma 2 by default), and speech recognition with NVIDIA's Nemotron 3.5 ASR model through sherpa-onnx, multilingual, French and English in the same sentence.
1. The plugin. In Obsidian, Settings, Community plugins, Browse, search for "Magical Hamster", install and enable it.
2. The models, in Terminal (about 8 GB and 0.4 GB):
ollama pull gemma4:12b
ollama pull embeddinggemma-2:270m
3. Speech recognition (see below), once.
4. Use it. Open the Magical Hamster sidebar from the ribbon, put the cursor under a meeting heading in your daily note (or press New meeting), and press Record. macOS asks for microphone access for Obsidian the first time.
The plugin does not download or install anything itself. Speech recognition is set up once with a command you run in Terminal (Applications, Utilities); Settings, Magical Hamster, Speech shows it with a button that copies it:
curl -fsSL https://github.com/baconbro/magical-hamster/releases/latest/download/setup-speech.mjs -o setup-speech.mjs && node setup-speech.mjs
It downloads the setup script attached to the plugin's latest release, and runs it with your Node.js. Settings, Magical Hamster, Speech shows the command for the version you have installed; run it again after a plugin update. The script:
sherpa-onnx-node and sherpa-onnx-darwin-arm64, from the npm registry (about 10 MB), at an exact version and with npm's install scripts off;runtime.json.Everything goes into ~/Library/Application Support/magical-hamster/. Add --dry-run to see what it would do without doing it, and --runtime <folder> to use another folder (then name it in the settings, Runtime folder). --model-url <url> takes the model archive from a mirror or a file already downloaded, with --sha256 <hex> (from the release page) as its checksum; --no-verify skips the check, and the output says so. Run it again to repair the runtime or to update the speech worker after a plugin update: it skips what is already there.
What leaves your computer. Nothing, with the default settings: the plugin talks only to Ollama at http://localhost:11434. There is no telemetry and no analytics.
registry.npmjs.org) and GitHub (github.com, and api.github.com for the model's checksum), only when you run it.ollama pull) is between you and Ollama.Files outside the vault. ~/Library/Application Support/magical-hamster/ holds the speech runtime (about 700 MB), the knowledge index of the folders you choose to index, and the token stats. It is kept there so that it is not synced with your vault. Delete the folder to remove all of it; the plugin then shows how to set speech up again.
Recording. The plugin hears what your microphone hears, and keeps no audio: only the text, in the sidebar and, once you save it, in the meeting's note. Ask the people in the meeting before you record them; recording laws differ by place.
Meetings/Mtg-YYYY-MM-DD — <Title>.md (the folder is a setting), and one link line at the end of the meeting's section in your daily note. The first time, it shows you both and asks. A meeting started with New meeting is not tied to a section: it gets the note and no line, until you link it to a section.type, date, hamster_source, tags) to that note. Nothing above the sections changes, and no companion is created. Refused for the daily note and for a note that is already a companion.<!-- hamster:begin enhanced --> … <!-- hamster:end enhanced -->), and the updated date in its properties.The companion stays yours to edit:
It never creates the daily note, never edits your shorthand, and by default puts no [[wikilinks]] and no - [ ] tasks in the text it generates, so that text adds nothing to linked mentions or task queries. A task you type (- [ ] …) keeps a ☐ mark on its enhanced bullet (☑ once you tick it in your note). With the setting Tasks as checkboxes on, it is a real checkbox instead, and so are the action items; task tools then list the task twice, so tick it in your own note: the companion follows. The companion's only link is its links: property, which points back to the daily note: the companion is listed among the daily note's backlinks. Extra properties in the settings adds your own (area: work, say) to each new companion.
What the model writes is drawn in the sidebar and saved to the companion as inert text: an image, an HTML tag or code that another plugin would run (a Dataview query, for instance) appears as the characters it is written with. Obsidian fetches an image the moment it draws one, and a note the model was given as a source could tell it to write one whose address carries your meeting.
1:1, Meeting, Sync, Standup, Prep, Réunion, Rencontre; the pattern is a setting), or contains a name from your entity registry is a meeting: ### 1:1 [[Jane Example]], ### Sync Platform team. ### Budget Prep is not: the word has to come first.1:1 Maya starts a meeting that runs to the next one, whatever blank lines are in between.Entity registry (optional, a setting): a note with one table per ## section (People, Projects, …), whose columns are found by their header, canonical, wikilink, aliases and active. Its names mark headings as meetings, and become a meeting's attendees and projects.
A guided walkthrough is in docs/TUTORIAL.md.
The plugin is under the MIT licence (LICENSE). The packages bundled into main.js are listed with their licences in THIRD_PARTY_NOTICES.md.
What the speech setup downloads is not part of the plugin, and comes under its own licences:
sherpa-onnx-node and sherpa-onnx-darwin-arm64: Apache License 2.0.sherpa-onnx-darwin-arm64: MIT.Building from source, the test suite, the browser harness and the benchmarks are described in docs/DEVELOPMENT.md.