Skip to content

About

A citation graph plugin for doing literature research in an Obsidian canvas.

Resources

Contributing

Stars

19 stars

Watchers

1 watching

Forks

Repository files navigation

Citation Graph

Turn your literature into a citation graph on an Obsidian canvas: papers as nodes, citations as arrows, laid out on a timeline by year.

Six paper nodes on a canvas, each with a coloured border and a reading-status label, connected by citation arrows.

Features

  • Build a canvas from a Zotero collection or tag, or add papers one at a time by DOI or arXiv ID. Each paper gets a literature note.
  • Keep it in step with Zotero: references you add to the collection later can be pulled onto a canvas you have already rearranged, without moving anything on it.
  • Grow it with any paper's references and citing works, filtered by year and keyword, and sorted by citations, year, title or the order the paper cites them.
  • Group by topic: tag paper notes with ordinary Obsidian tags (up to three each), and one command rearranges the canvas into a labelled group per tag. Groups overlap, so a paper with two tags sits where both groups meet.
  • Track your reading: every paper shows its status (to read, reading, read, abandoned) as a coloured border.
  • Download PDFs from arXiv into a vault folder, linked from each paper's note and its canvas card, or open the PDF Zotero already stores: each paper added to a canvas is looked up in Zotero by DOI and its PDF linked from the note. PDFs can open in Obsidian or in your system's PDF viewer.
  • Summarize papers with an LLM, written straight into the note.
  • Get recommendations: an LLM suggests papers that belong on the canvas, and each one is checked against a citation database before you see it.

Desktop only. Requires Obsidian 1.13.0 or later.

Quick start

  1. Install Citation Graph from Settings, Community plugins, and enable it.
  2. Start Zotero and enable its local API: Edit, Settings, Advanced, tick Allow other applications on this computer to communicate with Zotero. (Better BibTeX is recommended for citekeys.)
  3. Run Citation Graph: Canvas: create from collection from the command palette and pick a collection.
  4. Select a paper and run Papers: expand paper to add its references and citing works.
  5. Put Reading: cycle reading status on a hotkey to mark papers as you read them.

Every per-paper command is also on the right-click menu of a canvas node. No Zotero? Start from any canvas with Papers: add by DOI or arXiv.

Optional setup

To use You need
Faster citation lookups A free Semantic Scholar API key. Without one, a large collection takes minutes
Summaries and recommendations A provider under Settings, Summaries (see below)
PDF downloads A vault folder under Default download folder, or pick one when downloading
Opening PDFs in your own PDF viewer PDF viewer set to System default app
Opening Zotero PDFs from notes Zotero running when papers are added, or run PDFs: link from Zotero later. Turn off with Link Zotero PDFs
Syncing back to Zotero A Zotero API key and user ID from zotero.org/settings/keys

LLM providers.

  • Claude CLI (default) uses your Claude subscription instead of an API key. Install Claude Code and sign in once by running claude in a terminal. The plugin finds it in ~/.local/bin or on your PATH; otherwise set Claude CLI path.
  • Anthropic, OpenAI or Google Gemini API: paste your API key. These bill you per call.

Keeping PDFs out of git or Sync. PDFs are stored in your vault. Add the download folder to your .gitignore, or to Excluded folders in Obsidian Sync's settings.

Commands

Command What it does
Canvas: create from collection / from tag Builds a canvas from Zotero
Canvas: resolve missing citation edges Draws arrows still missing between papers on the canvas
Canvas: relayout Re-sorts nodes by year
Canvas: update from collection Adds papers new to the canvas's Zotero collection, without moving anything
Canvas: group papers by tag Arranges papers into overlapping labelled groups, one per tag
Canvas: sync to Zotero Pushes the canvas's papers to a Zotero collection
Canvas: send papers to another canvas Copies or moves papers with their arrows
Papers: expand paper Adds a paper's references and citing works
Papers: add by DOI or arXiv Adds one paper
Papers: recommend papers Asks the LLM for papers that fit the canvas
Papers: delete paper Deletes the node, its arrows and its note
Reading: set / cycle / refresh reading status Sets or repaints reading status
PDFs: download Fetches PDFs from arXiv and links them from the paper notes
PDFs: link from Zotero Links each paper's Zotero-stored PDF from its note
PDFs: write summary Writes an LLM summary into the note
Maintenance: clear Semantic Scholar cache Drops cached citation data

Privacy and costs

  • No telemetry. Each service is contacted only by the command that needs it: the Zotero app on your computer, Semantic Scholar, OpenAlex, Crossref and arXiv for paper data, zotero.org for sync, and your chosen LLM provider for summaries and recommendations.
  • Vault only. The plugin reads and writes files only inside your vault.
  • One local program. With the Claude CLI provider, the plugin runs your installed claude binary, only for summaries and recommendations, without a shell, and with only the tools the request needs. Choose an API provider and no program is ever run.
  • Costs. The plugin is free. Summaries and recommendations bill your LLM account or Claude subscription; everything else works without one.

More

  • Full guide: every command, setting and behaviour, exactly what is sent to each service, limitations, and development.
  • Changelog · Contributing · License: MIT

About

A citation graph plugin for doing literature research in an Obsidian canvas.

Resources

Contributing

Stars

19 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages