Jamie106 downloadsSync your Jamie meeting notes and transcripts into your vault.
Syncs your Jamie meeting notes and transcripts into an Obsidian vault by polling Jamie's public API and writing Markdown files — continuous, configurable folder-sync driven by an API key.
meetings.list + meetings.get, renders each meeting to a Markdown note (frontmatter, short-summary callout, action-item checkboxes) plus a linked transcript file, with note↔transcript wikilinks.## <title> heading). With re-sync edited notes on, meetings changed in Jamie within the recent window are detected via a content hash and rewritten in place in the folder and per-day modes, where each meeting owns its own file.Not yet implemented: "private notes at top" (Jamie has no equivalent — approximated with the short-summary callout), conflict handling for locally-edited files, and an instant webhook→synced-folder push path.
In Obsidian, open Settings → Community plugins → Browse, search for Jamie Sync, then install and enable it (a Jamie account on a paid plan is required). Obsidian keeps it up to date automatically.
Then configure it:
jk_…, from Jamie → Settings → Developers).pnpm install
pnpm test # vitest run
pnpm run typecheck
Vitest unit tests (no live API key needed) cover the Markdown rendering (src/render/*.test.ts) and the sync engine (src/sync/*.test.ts) against an in-memory filesystem — folder / per-day / daily-note destinations, idempotency, edited-note re-sync, locked-meeting and auth-error handling.
For development, or to run an unreleased build:
pnpm install
pnpm run build # produces main.js
Copy manifest.json and main.js into <your-vault>/.obsidian/plugins/jamie-sync/, enable Jamie Sync under Settings → Community plugins, then configure it as described in Install.
This plugin sends authenticated HTTPS requests to the Jamie public API (https://beta-api.meetjamie.ai) to read your meetings, and stores your API key in the plugin's data.json inside the vault. It makes no other network calls. (This must be disclosed in a community-store submission.)
src/api/ — typed client for Jamie's tRPC-over-HTTP public API (handles the input=/result.data.json envelope, auth, 401/429).src/render/ — pure meeting → Markdown rendering (no Obsidian dependency).src/sync/ — the sync engine; writes through a small FileWriter interface so it runs in both Obsidian and the tests.src/settings/ — settings model + settings tab.src/main.ts — Obsidian plugin entry (commands, interval, vault-backed FileWriter).src/**/*.test.ts — Vitest unit tests for the pure render + sync logic.