Repository navigation
Releases: Stef4678/zotero-vault-sync
Release list
Zotero Vault Sync 0.0.6
Changed
- Settings are now searchable. The settings tab was migrated to Obsidian's
declarative settings API, so every option in Zotero Vault Sync now shows up in
Obsidian's settings search. - Numeric settings use number inputs with inline validation. Out-of-range or
unparseable input is now rejected and the previous value kept, instead of being
silently replaced by the default. - Folder and URL settings are normalized on write — trimmed, with surrounding
slashes removed and an empty value falling back to the default — so a half-typed
path can no longer reach the mirror mid-session. - Create or refresh views now is a clickable row, the
Mirror foldersection
heading is nowMirror, and two rows gained descriptions they were missing. - Destructive buttons (reset mirror, confirmation dialogs) use Obsidian's
destructive styling.
Requirements
- Obsidian 1.13.0 or later. The declarative settings API requires 1.13.0, so
minAppVersionhas been raised from 1.4.0. If you are on an older Obsidian,
stay on 0.0.5.
Under the hood
- Removed the deprecated
display()andsetWarning()APIs, clearing the
plugin-review findings. - No settings migration needed: keys, defaults and stored values are unchanged.
- Fixes from 0.0.5 are untouched — working
zotero://select/library/items/<key>
links and the annotation toggle still gate output correctly.
Full diff: 0.0.5...0.0.6
Zotero Vault Sync 0.0.5
Fixed
- “Open in Zotero” links now actually select the item. Links were emitted as
zotero://select/items/<key>— a route current Zotero does not act on, so clicking one
opened the Zotero window but selected nothing. Every link now uses
zotero://select/library/items/<key>, which Zotero honours. This covers reference cards,
the Open a Zotero item in the Zotero app command, and generated notes. - The “Open in Zotero” link in generated notes was malformed. The default template
wrapped the{{zoteroLink}}token, which is already a markdown link, producing
[Open in Zotero]([KEY](zotero://…))— a dead target. The token is now interpolated bare. - The “Include PDF annotations” toggle did nothing.
includeAnnotationswas saved but
never read, so highlights were rendered regardless of the switch. It now gates the
annotation list, and switching it off no longer prints a misleading “No annotations.”
line under every attachment.
Changed
- Settings: the “Include in generated notes” row is now three labelled rows —
Include child notes, Include attachments, Include PDF annotations. The three
toggles previously shared one name and were distinguishable only by hover tooltip.
Upgrading
Links already written into your notes are not rewritten by this update:
| Where | How to refresh |
|---|---|
| Generated notes | Zotero Vault Sync: Refresh all generated Zotero notes from the mirror |
| Reference cards | Re-insert with Search Zotero items and insert reference card |
If you had switched annotations off and seen no effect, that setting now takes effect on the
next refresh or regeneration.
Under the hood
- Restored
version-bump.mjs— the scriptpackage.json'snpm versionhook has always
called, but which was never committed, sonpm versioncould not run. - Added regression coverage for both fixes (the annotation test was verified to fail against
the previous logic).
Full diff: 0.0.4...0.0.5
Zotero Vault Sync 0.0.4
Zotero Vault Sync 0.0.4
First release under the Zotero Vault Sync name (renamed from "Zotero Mirror" to avoid clashing with existing plugins of that name).
A Zotero client inside Obsidian: syncs your whole Zotero library into a git-versioned mirror folder in the vault — one JSON file per item, per-PDF annotation files — and rebuilds note views & Dataview dashboards over it. Everything reads from the mirror, so it works instantly and with Zotero closed.
Highlights
- Incremental sync via Zotero's local HTTP API (
?since=protocol), with deletion reconcile - Mirror layout:
items/<key>.json,annotations/<attachmentKey>.json,index.json,collections.json - Regenerable note "views" per item (metadata, child notes, PDF highlights) — user edits preserved between markers
- Generated Dataview dashboards: items table, PDFs & annotations, library stats (created automatically after the first mirror)
- Item picker with reference-card insertion, git-friendly no-write idle syncs
- Local API or zotero.org Web API source (Zotero 7+)
- Release assets carry GitHub artifact attestations
Rename note
- Plugin id changed:
zotero-mirror→zotero-vault-sync. Install folder is now.obsidian/plugins/zotero-vault-sync/— please install this release as a new plugin rather than updating over 0.0.3.
Install
- Download the release assets and place them in
<vault>/.obsidian/plugins/zotero-vault-sync/(or install via BRAT using the0.0.4tag). - Zotero 7+: Settings → Advanced → enable "Allow other applications on this computer to communicate with Zotero".
- Enable the plugin and run Sync now.
MIT © 2026 Kerekes Stefan
Zotero Mirror 0.0.3
What's new in 0.0.3
Maintenance release. No changes to the mirror format or plugin behavior — updating from 0.0.1/0.0.2 is safe.
Changes
- Releases are now built, artifact-attested and published automatically by GitHub Actions on tag push (provenance: built from the source repository)
- Version metadata updated to 0.0.3
Install
- Download the release assets and place them in
<vault>/.obsidian/plugins/zotero-mirror/(or update via BRAT on the0.0.3tag). - Zotero 7+: Settings → Advanced → enable "Allow other applications on this computer to communicate with Zotero".
- Enable the plugin and run Sync now.
MIT © 2026 Kerekes Stefan
Zotero Mirror 0.0.2
What's new in 0.0.2
Housekeeping & review-readiness release on top of 0.0.1. No changes to the mirror format — updating from 0.0.1 is safe.
Changes
- Manifest description shortened (≤ 250 chars, community-plugin requirement)
- Release ships
main.js,manifest.jsonandstyles.cssas release assets - Release assets carry GitHub artifact attestations (built & signed in GitHub Actions on tag push)
- Removed the plugin-name heading from the settings tab
- Cleaned up linter findings: no
anyin the codebase, typed Node http transport,electronimported instead ofrequire() - Settings buttons on
setWarning()for Obsidian ≥ 1.4.0 compatibility - README: screenshots section (plugin settings) and MIT © copyright line
Install
- Download the release assets and place them in
<vault>/.obsidian/plugins/zotero-mirror/(or update via BRAT on the0.0.2tag). - Zotero 7+: Settings → Advanced → enable "Allow other applications on this computer to communicate with Zotero".
- Enable the plugin and run Sync now.
MIT © 2026 Kerekes Stefan
Zotero Mirror 0.0.1
First release
A Zotero client inside Obsidian: syncs your whole Zotero library into a git-versioned mirror folder in the vault — one JSON file per item, per-PDF annotation files — and rebuilds note views & Dataview dashboards over it. Everything reads from the mirror, so it works instantly and with Zotero closed.
Highlights
- Incremental sync via Zotero's local HTTP API (
?since=protocol), with deletion reconcile - Mirror layout:
items/<key>.json,annotations/<attachmentKey>.json,index.json,collections.json - Regenerable note "views" per item (metadata, child notes, PDF highlights) — user edits preserved between markers
- Generated Dataview dashboards: items table, PDFs & annotations, library stats (created automatically after the first mirror)
- Item picker with reference-card insertion, git-friendly no-write idle syncs
- Local API or zotero.org Web API source (Zotero 7+)
Install
- Download/copy this folder into
<vault>/.obsidian/plugins/zotero-mirror/(or install via BRAT using the0.0.1tag). - In Zotero (7+): Settings → Advanced → enable "Allow other applications on this computer to communicate with Zotero".
- Enable the plugin and run Zotero Mirror: Sync now.
MIT © 2026 Kerekes Stefan