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.1.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.1-py3-none-any.whl (8.7 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: vscotero-0.2.1.tar.gz
  • Upload date:
  • Size: 9.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for vscotero-0.2.1.tar.gz
Algorithm Hash digest
SHA256 0513316483e9fd7e6fa33fd21d637dde852143669d61d6de453ef1883273594c
MD5 fc9d6a15f7ca3e1f32cf64287fe37172
BLAKE2b-256 e83701e61d90da4405cb5427233da2fff7170dcb60619a4631a53cf1f703a7b5

See more details on using hashes here.

File details

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

File metadata

  • Download URL: vscotero-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 8.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.30 {"installer":{"name":"uv","version":"0.9.30","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for vscotero-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 6c12da861f931e7122016294eb949350578d8905b45485d2a7da3f30eb68c6ec
MD5 d4c77d8fd66d695f1a5d74894a637f84
BLAKE2b-256 0837daabcf8981019969074c6fb52e55c672b7e268056869f3cf028bbc2a02d4

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