zotkit is a headless Python CLI and library for managing Zotero libraries without the desktop app, supporting WebDAV file sync and tag convention enforcement.

Stars

18

7-day growth

No data

Forks

0

Open issues

0

License

MIT

Last updated

2026-07-27

AI repository intelligence
FR-AI / ANALYSIS

Why it is worth attention

It uniquely provides full write capabilities (including WebDAV attachment upload/download) in headless environments, with built-in safety features and LLM agent compatibility.

Who it is for

  • Researchers who need automated Zotero library management
  • Developers building scripts or AI agents that interact with Zotero
  • Users who want to run Zotero tasks on servers, SSH, or CI
  • Anyone requiring code-enforced tag taxonomies to maintain consistency

Use cases

  • Automating reference import and tagging from scripts or CI pipelines
  • Uploading and downloading PDF attachments via WebDAV without the desktop app
  • Cleaning up and reorganizing a messy Zotero library using AI agents
  • Backing up the entire library metadata as a single JSON file

Strengths

  • Fully headless operation without requiring the Zotero desktop app
  • Supports both Zotero Storage and WebDAV for attachment file operations
  • Code-enforced tag conventions via optional conventions.toml prevent inconsistent tagging
  • Dry-run by default with version-checked writes for safe batch operations

Considerations

  • Group libraries are untested for item operations; WebDAV sync is personal-library only
  • The find command lists items client-side, which can be slow for very large libraries
  • Some features like MCP server and server-side search are still on the roadmap

README quick start

zotkit

Headless Zotero library management — no desktop app required.

English | 简体中文

"Headless" simply means zotkit never needs the Zotero app (or any window) open: it is a Python library + CLI that talks straight to the Zotero Web API, so you can search, create, tag, and organize items from any terminal — macOS, Windows, or Linux, your laptop or a remote server. If your attachments sync to a personal WebDAV server, zotkit can upload and download the files themselves by speaking Zotero's WebDAV storage format directly — a capability the Web API itself does not provide. The format is documented in docs/webdav-format.md.

Built for servers, scripts, and LLM agents: every write is dry-run by default, batched, and version-checked, and you can define a tag taxonomy that is enforced in code so an agent (or a tired human) can't pollute your library with inconsistent tags.

Why zotkit

Desktop appOther CLI/MCP toolszotkit
Works headless (server, SSH, CI)✅ read-mostly
Write items/tags/collections⚠️ usually needs the desktop app running
Attachment files (Zotero Storage)⚠️ some✅ upload + download
Attachment files on WebDAV⚠️ download at bestupload + download
Tag conventions enforced in code✅ optional conventions.toml

The zotkit family

Two independent, complementary projects — use either on its own, or both together:

What it is
zotkit (this repo)Headless Python CLI + library. Runs anywhere, needs no Zotero app.
zotkit-readerA Zotero Reader sidebar that embeds a Codex/Claude agent beside the PDF you're reading. Maintained by @ChanceSiyuan.

They share a name and a philosophy, not a codebase: zotkit-reader can call zotkit over MCP for library-wide operations, but neither requires the other to be installed.

Install

Pure Python (3.11+), no platform-specific bits — the same package works on macOS, Windows, and Linux:

pipx install zotkit        # or: uv tool install zotkit / pip install zotkit
uvx zotkit --help

Description

Headless Zotero library management: Web API CRUD + direct WebDAV attachment upload/download — no desktop app required

Related repositories

Similar projects matched by category, topics, and programming language.

0xwilliamortiz
Featured
0xwilliamortiz GitHub avatar

openclaude-improved

OpenClaude is an open-source CLI coding agent that runs on any platform and supports a wide range of LLM providers, offering the same tools and workflows as Claude Code.

AI & Machine LearningLarge Language Models
577
programmersd21
Featured
programmersd21 GitHub avatar

flow

flow is a minimalist terminal dashboard that displays real-time network throughput with smooth animations, multiple responsive modes, and zero configuration.

Developer ToolsCLI & Terminal
277
lopopolo
Featured
lopopolo GitHub avatar

harness-engineering

Harness Engineering is a methodology for improving coding agent outputs by carefully crafting the environment around them—providing curated context, tools, and executable constraints that encode an organization’s nonfunctional requirements and cumulative lessons.

AI & Machine LearningAI Agents
2,390