Skip to main content

VSCode + Zotero literature note ingester

Project description

vscotero

Generate markdown literature notes from your Zotero library (metadata + annotations) for use in VS Code (Foam / wiki links compatible).

demonstration of vscotero usage

Features

  • Extract item metadata from a Zotero auto‑exported BibTeX file
  • Pull PDF annotations directly from the Zotero zotero.sqlite database (copied safely to avoid locks)
  • Group annotations by highlight color (configurable colormap)
  • Produce one Markdown note per reference with YAML front matter
  • Deterministic & scriptable CLI (vscotero ingest)

Installation

vscotero is currently distributed as source only. A published Python package (PyPI) is planned for a future release.

  1. Configure Zotero to auto‑export a BibTeX file (Better BibTeX recommended).
  2. Clone this repository.
  3. Choose one of the local setup options below.

Option A: Use uv (recommended)

Use uv to create and manage an isolated environment automatically (no manual activation needed).

Sync / install (safe to re-run):

uv sync

Check the CLI version:

uv run vscotero --version

Ingest (example with a limit + debug):

uv run vscotero ingest --path config.toml --limit 1 --debug

Run tests:

uv run pytest -q

Option B: Use nix

nix-shell
vscotero --version

Option C: Plain pip / virtualenv

python -m venv .venv
source .venv/bin/activate
pip install --upgrade pip
pip install -e .
vscotero --path config.toml

(Future) PyPI installation (planned)

Will become as simple as:

pip install vscotero
vscotero --path config.toml
  1. Create / fill config.toml (example below).

Example config.toml

[notes]
bib_path = "/absolute/path/to/library.bib"   # Zotero auto-export (Better BibTeX)
md_path  = "/absolute/path/to/notes"         # Output folder for generated notes
db_path  = "~/Zotero/zotero.sqlite"           # Zotero database path

Usage

Ingest all notes:

vscotero ingest --path config.toml

Clean existing notes first:

vscotero ingest --path config.toml --clean

Limit number (debugging):

vscotero ingest --path config.toml --limit 5

Color Map

Override in config.toml (any subset):

[notes.colormap]
"#ffd400" = "Insights"
"#ff6666" = "Discrepancies"

Development

Run tests:

uv run pytest -q

View version:

vscotero --version

See CHANGELOG.md for release notes.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

vscotero-0.2.0.tar.gz (9.2 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

vscotero-0.2.0-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

Details for the file vscotero-0.2.0.tar.gz.

File metadata

  • Download URL: vscotero-0.2.0.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for vscotero-0.2.0.tar.gz
Algorithm Hash digest
SHA256 64c705039074ffa9b846f6e186fbd0642ba5b5a40c5caf19a26ad1bd1dbc3afe
MD5 e1c21f25c85f11b6e480187f527fd615
BLAKE2b-256 1c13d8f66ff3ec35c2301e4c61c654258493a7deea75ed166aa37340f46315a6

See more details on using hashes here.

File details

Details for the file vscotero-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: vscotero-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.9

File hashes

Hashes for vscotero-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f51e85d41b3aa53e75f4256f0c00aa8ccde48851f3c6945dfe0970b109dcee49
MD5 51ddd85d487653a26493ee5fd6d57e1a
BLAKE2b-256 1308a12dc9d0edd7a77062bdbaac367a5cc7a57f88b100f898d564c2fa0e1532

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page