Sahil Maheshwari82 downloadsSync summaries and transcripts from your local Meetily meeting recorder into your vault. Fully on-device, no cloud.
Sync your Meetily meeting summaries and transcripts into Obsidian as clean, linked Markdown. Fully on-device: no cloud service, no API keys, no meeting bots.

Meetily Sync connects two tools you run locally. Set them up in this order.
Meetily is a free, open-source meeting assistant that captures your system audio, transcribes it locally (Whisper / Parakeet), and generates an AI summary. Audio never leaves your computer.
Install Obsidian and open the vault you want your meeting notes to land in.
Install it (see Install), choose a folder, and click Sync now.
Meetily records and summarizes your meetings locally, but that content stays inside the Meetily app. Moving it into your notes means copy-pasting, and nothing ties it back to the rest of your knowledge base.
Meetily Sync closes that gap. It reads Meetily's local database directly and writes every meeting into your vault as Markdown — a summary note and a transcript note per meeting, organized by date and cross-linked. Your meetings become first-class notes you can search, link, tag, and build on, and they never leave your machine.
With the default settings, each meeting produces two notes:
notes/meetily/2026/08/18/Weekly Team Sync-summary.md
notes/meetily/2026/08/18/Weekly Team Sync-transcript.md
meetily_id, title, created/updated, source: meetily) and link to each other, so they behave like a connected pair in your graph.Syncing is idempotent: meetings you have already exported are skipped, so you can sync as often as you like.
From Obsidian (recommended): open Settings → Community plugins → Browse, search for Meetily Sync, install, and enable it.
Manually from a release:
main.js, manifest.json, and styles.css from the latest release.<your vault>/.obsidian/plugins/meetily-sync/.New meetings are written to your output folder. Enable Sync on startup or Auto-sync on a timer in settings to keep it hands-off.
Note locations are built from a base folder + subfolder pattern + filename pattern, so you can put notes wherever you like. Summaries and transcripts can share a folder or live in separate ones.
Notes and Transcripts each have:
| Setting | Notes default | Transcripts default |
|---|---|---|
| Base folder | notes/meetily |
notes/meetily |
| Subfolder pattern | {year}/{month}/{day} |
{year}/{month}/{day} |
| Filename pattern | {title}-summary |
{title}-transcript |
Pattern variables: {title}, {date}, {time}, {year}, {month}, {day}, {quarter}. Leave a subfolder pattern blank for a flat folder.
Content: export summary / export transcript / include frontmatter / default speaker label / overwrite existing.
Automation: sync on startup / auto-sync on a timer + interval / Sync now button.
Advanced → Meetily database location: the path to Meetily's meeting_minutes.sqlite. This is auto-detected for your operating system — leave it blank unless you installed Meetily in a custom location:
~/Library/Application Support/com.meetily.ai/meeting_minutes.sqlite%APPDATA%\com.meetily.ai\meeting_minutes.sqlite~/.config/com.meetily.ai/meeting_minutes.sqliteThe plugin opens Meetily's SQLite database with sql.js (SQLite compiled to WebAssembly), so there are no native modules to build or trust. The WebAssembly binary is embedded in the plugin, so there is nothing extra to place on disk. It loads the database as an in-memory snapshot — Meetily's file is only ever read, never modified — and maps the meetings, transcripts, and summary_processes tables into Markdown.
Meetily runs its database in WAL (write-ahead log) mode, which means a meeting can be committed to a side file before it is folded into the main database. Meetily Sync merges those committed pages when it reads, so a meeting you recorded moments ago appears right away, even while Meetily is still open.
Meetily Sync is transparent about what it touches:
meeting_minutes.sqlite and its -wal sidecar (see paths under Settings). They are read via Node's fs and never written, deleted, or modified. You can override the location in Advanced → Meetily database location.setInterval at the interval you choose. Both are off by default and can be turned off at any time.Because it reads a local file, the plugin is marked isDesktopOnly and does not run on mobile.
To install a build by hand:
npm run build — produces main.js (with the SQLite WebAssembly embedded).<vault>/.obsidian/plugins/meetily-sync/.main.js, manifest.json, and styles.css.DEST="/path/to/YourVault/.obsidian/plugins/meetily-sync"
mkdir -p "$DEST"
cp main.js manifest.json styles.css "$DEST"/
Releases are automated by .github/workflows/release.yml: pushing a tag builds the plugin, attaches main.js, manifest.json, and styles.css to a GitHub Release, and records build-provenance attestations for those assets.
npm version patch # bumps manifest.json + versions.json
git push && git push --tags
The tag must equal the version in manifest.json (no v prefix), which npm version guarantees.
Meetily Sync is listed in the Obsidian community store. New plugins are submitted through the plugin portal at community.obsidian.md (sign in, link the GitHub account, and add the repository); the older pull-request flow against obsidian-releases has been retired. Once a plugin is listed, every later GitHub Release is picked up automatically, and Obsidian runs an automated scorecard scan on each release.
npm install # installs deps and fetches sql.js
npm run dev # watch build -> main.js (+ copies sql-wasm.wasm)
npm run lint # eslint-plugin-obsidianmd rules
npm test # jest unit tests
npm run build # lint + type-check + production bundle
For live testing, symlink the repo into a scratch vault and reload Obsidian after each build:
ln -s "$(pwd)" "/path/to/TestVault/.obsidian/plugins/meetily-sync"
See CONTRIBUTING.md for more.
If Meetily Sync saves you time, you can support development here: