Zotman
Zotman is a CLI toolset for managing Zotero PDF attachments using linked files in a structured Cloud (default: Dropbox) folder.
It supports:
- Automatically moving renamed PDFs from Zotero’s storage into a structured subject/year Cloud folder
- Extracting the published year from Zotero’s database to organize PDFs
- Cleaning up orphaned Zotero storage folders not linked to any library item
📦 Installation
pip install zotman
🚀 Usage
Move renamed Zotero PDFs
zotman move --cloud ~/Dropbox/Zotero
This will:
- Watch
~/Zotero/storagefor PDFs renamed by Zotero - Prompt you for a subject (e.g.,
AI,ML) - Look up the published year from
zotero.sqlite - Move the file to:
~/Dropbox/Zotero/<Subject>/<Year>/Author et al. - Title.pdf
The --cloud option allows you to set any base folder (e.g., Dropbox, Google Drive, OneDrive). The default is ~/Dropbox/Zotero.
Use --db if your Zotero database is not at ~/Zotero/zotero.sqlite.
Then, manually re-link the file in Zotero:
Right-click item → Attach Link to File…
Clean orphaned storage folders
zotman clean
This will:
- Read
zotero.sqlite - Identify unused subfolders in
~/Zotero/storage - Prompt before deletion
🧠 Why use Zotman?
Zotero stores files in random folders without year structure. Zotman helps:
- Organize files by subject and year
- Keep filenames clean
- Maintain a consistent Cloud (e.g., Dropbox)-based linked file setup
- Remove clutter from old unlinked folders
🛠 Future Plans
- Automatic re-linking
- Year range filters
- GUI and batch operations
📄 License
MIT License
Metadata
Release files for zotman 0.1.2
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| zotman-0.1.2.tar.gz | 6.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| zotman-0.1.2-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 13.0 kB
Release files / zotman-0.1.2.tar.gz
| Download URL | zotman-0.1.2.tar.gz |
|---|---|
| Size | 6.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ed52fa10f4836eaab1b82bd3c785bebb86b15d452878ce0cf6e1508b4e78cef2
|
|
BLAKE2b-256 checksum How to use checksums |
63a06c8ac46f3d3f5dcbe1cbfe92aa1aadb802d87fce4bf9a8225bd1efccea03
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 31, 2026.
Transparency logRelease files / zotman-0.1.2-py3-none-any.whl
| Download URL | zotman-0.1.2-py3-none-any.whl |
|---|---|
| Size | 6.5 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8caebc0177a2c9fbb8728598ba4b4c88e82adfb6d4670277568435c1fba87399
|
|
BLAKE2b-256 checksum How to use checksums |
ccb78d9eeca3cb11323785ced181499a881d7c1721975c17a70d8dceabec1c0e
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/6.1.0 CPython/3.13.12
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on May 31, 2026.
Transparency log