Quek Kar Min37 downloadsScuttlebutt - Record or import meeting audio in the sidebar, transcribe it with your local Whisper/vLLM server, then auto-summarize it into a tidy, tagged note. Fully local and private.
Scuttlebutt (n.): the ship's gossip — the talk, the news, what everyone's discussing.
A local-first meeting companion that lives in your Obsidian sidebar, inspired by anarlog. Record (or import) a meeting, transcribe it against your local Whisper/vLLM server, auto-summarize it with your local LLM, review the Summary / Transcript / Memo side-by-side, then save one tidy note with a clean title and tags.
Local-first: everything runs against endpoints you configure. No cloud, no accounts.
On old sailing ships, the scuttlebutt was the cask of drinking water the crew gathered around — a scuttle (a hole cut in something) tapped into a butt (a large barrel). It was the ship's water cooler, and because sailors swapped news and gossip while drinking there, "scuttlebutt" came to mean the talk, the rumors, the news — what everyone's discussing.
That's exactly what this plugin captures: the scuttlebutt of your meetings, turned into notes you can keep.
record | import → transcribe → summarize (+ title + tags) → review in sidebar → save note
whisper.cpp server, etc.). Re-transcribe from the Transcript tab any time.title, date, tags, participants, audio), the summary, and the transcript/memo tucked into collapsible callouts.Product, Engineering, Research, Design, …).YYYY-MM-DD — Topic Title.md, so notes sort chronologically and read cleanly.npm install
npm run build # or: node esbuild.js --watch (watch mode)
bash install.sh ~/path/to/your/vault
Then enable it in Settings → Community plugins → Scuttlebutt, and click the mic ribbon icon to open the sidebar.
Open Settings → Scuttlebutt. There are two endpoints; each has a URL, API key, Test, and Model dropdown. Click Test to validate the endpoint and load its model list — on success the dropdown fills in, on failure it blanks out.
http://localhost:8000/v1http://localhost:8001/v1Other options: input device (see below), spoken/summary language, auto-summarize, title & tag suggestion, output folders, save-audio, and the summary system prompt (with a reset-to-default button).
npm run build # bundle the plugin to ./main.js
npm test # run the unit tests (Node's built-in test runner)
The pure logic (file naming, tag/transcript parsing, multipart encoding, …) lives in src/utils.ts and is covered by tests/utils.test.ts. Obsidian- and DOM-dependent code lives in src/main.ts.
Scuttlebutt runs as an Obsidian plugin (JavaScript in Electron), so it's limited to the browser's getUserMedia / getDisplayMedia APIs. On macOS those cannot capture system audio the way a native app (like anarlog, which uses Core Audio process taps) can. To record the other side of a call on macOS, install a loopback device such as BlackHole, create an Aggregate Device that includes it, and select that device under Settings → Capture → Input device. When "Capture system audio" yields no track, Scuttlebutt tells you and continues with the microphone.
requestUrl, which avoids browser CORS restrictions when calling local servers.MIT © Kar Min