
Zotsidian
Zotsidian is an Obsidian desktop extension for Zotero 8-first writing, source pages, annotations, and discourse graph workflows.
It started from a simple citation workflow idea inspired by zotero-roam and obsidian-deepsit, and has grown into a more integrated Zotero-to-Obsidian workflow layer with support for discourse-graphs, built with AI-assisted development. Note: the extension has not been tested properly, please feel free to report any issues and suggestions.

Highlights
Zotsidian is built around five practical capabilities:
- Citation workflow
- insert citations with inline
@autocomplete - search Zotero from a dedicated panel
- inspect citekeys with hover cards
- insert citations with inline
- References sidebar
- inspect the references used in the active note without leaving the page
- sort and focus citations while writing
- Source page workspace
- treat
@citekeynotes as paper dashboards - view metadata, attachments, related items, discourse nodes, and references together
- treat
- Zotero annotations
- filter, copy, open, and insert highlights or images directly into your notes
- Discourse graph canvas support
- integrate with
discourse-graphscanvas - detect source nodes, citation text, and discourse nodes
- highlight sidebar items from canvas selections
- jump back from sidebar targets into canvas
- integrate with
Core Features
1. Citation Insert and Hover Cards
Zotsidian supports two citation entry modes:
- inline
@autocomplete inside the editor - a dedicated Zotero search panel
Hover cards let you inspect a citekey without leaving your current context. They work especially well for lightweight writing when you want citation lookup without opening a source page.
Inserted citations can be configured as:
[@citekey]@citekey[[@citekey]]
All three formats are treated as formal citations by the plugin.

2. References Sidebar
For normal notes, the right sidebar shows the references used in the active page.
This supports a writing-first workflow: keep drafting in the main editor while inspecting references, sorting them, and jumping to cited occurrences in parallel.
The References sidebar supports:
- Normal obsidian notes
- obsidian base
- discourse-graphs canvas
- native Obsidian canvas
Sorting modes:
- insertion order
- year, newest first
- author + year
Highlight the current input line's citation in the sidebar. Clicking the number buttion in the sidebar, jump back to the citaiton line. Discouse graph nodes supported as well.

3. Source Page Workspace
A source page is a note named @citekey.
When the active note is a source page, the sidebar becomes a paper workspace and can show:
- Zotero metadata
- attachment links
- external links such as Zotero, Semantic Scholar, Google Scholar, and Connected Papers
- filtered Zotero annotations
- insert / copy / open actions for annotations with one click
- references of the current paper
- citations of the current paper
- related library items already present in your Obsidian / Zotero workflow
- discourse graph nodes detected in the note body

4. Discourse Graph Canvas Support
Zotsidian has dedicated support for the discourse-graphs Obsidian plugin.
On discourse canvas pages, the sidebar can detect:
- source nodes such as
@citekey - discourse nodes such as claim / evidence / question / source
- citation text shapes
It supports:
- sidebar highlighting from canvas selection
- reverse jump from sidebar occurrence buttons back into canvas
- discourse node type filtering inside the sidebar
This is currently the strongest graph workflow in the plugin and one of the main differentiators of Zotsidian.

Lightweight Native Base and Canvas Support
Zotsidian also provides lightweight support for native Obsidian Base and native Canvas.
That means:
- reference extraction can work from those pages
- citation hover cards can still be useful in lightweight workflows
This support is intentionally simpler than the discourse-graphs integration. The full bidirectional graph workflow is designed for discourse-graphs canvas, not native Canvas.
Related Papers and External Providers
For source pages with a DOI or a usable title, Zotsidian can fetch:
- references
- citations
- related library items already present in your Zotero-backed note system
Provider modes:
Auto (Recommended)Semantic Scholar onlyOpenAlex only
Recommended mode tries Semantic Scholar first and falls back to OpenAlex when Semantic Scholar is rate-limited or incomplete.
Do You Need Better BibTeX?
Better BibTeX plugin
In practice, usually yes.
Zotsidian needs usable citation keys to support:
@citation insertion- source pages named
@citekey - citation hover cards
- reference and source resolution
Zotero 8 provides a native Citation Key field, but it does not reliably generate or maintain citation keys for you on its own. For most users, the practical solution is to install Better BibTeX and let it generate and manage citation keys in Zotero.
If you already maintain valid citation keys by some other method, Zotsidian can use them. But for most real workflows, Better BibTeX should be treated as a practical requirement.
Defaults on a Fresh Install
Zotsidian defaults are intentionally conservative:
- Citation insert format:
[@citekey] - Create source page on citation select: off
- Load attachment links in source panel: on
- Source pages folder:
source - Source page template path: empty
- Related papers provider:
Auto (Recommended) - Search panel hotkey:
Cmd+Shift+U/Ctrl+Shift+U
These defaults favor direct writing first, and source-page creation only when the user explicitly wants it.
Requirements
Required
- Obsidian
>= 1.10.6 - Obsidian desktop on macOS, Windows, or Linux
- Zotero Desktop 8 installed on the same computer
- usable citation keys on the Zotero items you want to cite
Required for the full local workflow
Zotsidian is designed around live local resolution against Zotero Desktop. For citation lookup, hover cards, PDF opening, Zotero item opening, source-page enrichment, and annotation workflows to work reliably:
- Zotero Desktop should be running while you use Obsidian
- your cited items should exist in the local Zotero library you want to query
- Zotero local API access should be available on the local machine
- in Zotero, open
Settings / Preferences -> Advancedand enableAllow other applications on this computer to communicate with Zotero
For most users, this also means:
- Better BibTeX should be installed so citation keys are generated and maintained consistently
If Zotero Desktop is closed, some local-library features will degrade or stop working, especially:
- live citation resolution
- opening local PDFs
- opening Zotero items
- attachment discovery in the source sidebar
- annotation refresh and insert workflows
Optional but recommended
- PDF attachments stored in Zotero, if you want
Open PDFactions to work - DOI or at least a usable title on a source item, if you want related references / citations to resolve well
- internet access for:
- Semantic Scholar / OpenAlex related-paper lookup
- Connected Papers
- Google Scholar
Optional integration
- the
discourse-graphsObsidian plugin, if you want discourse canvas support
Optional advanced fallback
- a Better BibTeX JSON export file, only if you want a fallback index source when live Zotero lookup is incomplete
You usually do need citation keys, and Better BibTeX is the normal way to get them reliably.
You do not need a Better BibTeX JSON export for the primary Zotero 8 workflow.
Installation
Install from GitHub Release
This is the recommended installation method before Zotsidian is available in the Obsidian community plugin browser.
- Open the latest GitHub Release for Zotsidian
- Download these release assets:
main.jsmanifest.jsonstyles.css
- Create a folder in your vault:
.obsidian/plugins/zotsidian
- Copy the three files into that folder
- Enable Zotsidian in Obsidian community plugins
Important:
- In Zotero, go to
Settings / Preferences -> Advancedand make sureAllow other applications on this computer to communicate with Zoterois enabled. - If this option is off, Zotsidian may fail to load citation indexes, attachments, hover data, and annotation content.
Manual installation from source
Use this if you want to modify the plugin or test the source code directly.
- Clone the repository
- Install dependencies:
npm install
- Build the plugin:
npm run build
- Create a vault plugin folder:
.obsidian/plugins/zotsidian
- Copy these files from the repository root into that folder:
main.jsmanifest.jsonstyles.css
- Enable Zotsidian in Obsidian community plugins
Development
If you want to develop or debug the plugin locally:
npm install
npm run dev
This will watch the source and rebuild main.js automatically.
You still need to copy the built files into your vault plugin folder, or symlink the project into .obsidian/plugins/zotsidian if you prefer a development setup.
Quick Start
- Start Zotero Desktop
- In Zotero, go to
Settings / Preferences -> Advancedand enableAllow other applications on this computer to communicate with Zotero - Enable Zotsidian in Obsidian
- Make sure the Zotero items you want to cite already have usable citation keys
- for most users, this means Better BibTeX is installed and generating citation keys
- Check these settings:
Default Zotero scopeCitation insert formatCreate source page on citation selectSource pages folder
- Type
@in a note and insert a citation - Hover the citation to inspect metadata or open the PDF / Zotero item
- Use the References sidebar to inspect cited papers
- If needed, open or create an
@citekeysource page for deeper inspection - If you use discourse-graphs, open a discourse canvas and let the sidebar track source nodes and discourse nodes
License
MIT. See LICENSE.
How to Install
- Download the template file from GitHub
- Move it anywhere in your vault
- Open it in Obsidian — done!
Stats
Stars
24
Forks
2
License
MIT
Last updated 20d ago
Categories