Rechercher

PythonReactSEOPDF
OpenClaw

zotero-pdf-upload

Upload PDFs and manage items in a Zotero Web Library. Supports both personal and group libraries. Use when a user wants to add papers/PDFs to Zotero, organize collections, or manage their Zotero library through the API.

chenhaox0 installations selon la source☆ 0 Étoiles du dépôt

Installation

Suivez les instructions du dépôt pour votre agent. Consultez les fichiers et dépendances avant l’installation.

SkillHub CLI

skillhub install chenhaox/zotero-pdf-upload

Examinez la source et la compatibilité, puis suivez les étapes d’installation.

Donnez le lien à votre agent et demandez-lui d’examiner instructions et dépendances avant d’expliquer les étapes.

Voir la source ↗Guides

Instructions

zotero-pdf-upload

Use this skill for direct Zotero workflows that must stay safe, explicit, and reusable.

First-time setup check (do this BEFORE any Zotero operation)

Before running any command, check if config.json exists in the skill root directory.

If config.json does NOT exist, stop and inform the user:

This skill is not configured yet. You need to set it up first.

What you need to prepare:

  1. Zotero API Key — Create one at zotero.org/settings/keys

    • Go to Settings → Security → Create new private key
    • Enable: Allow library access, Allow notes access, Allow write access
    • If using group libraries, set Default Group Permissions to Read/Write
    • Click "Save Key" and copy the generated key
  2. Zotero Library URL — Open your library in a browser and copy the URL:

    • Personal: https://www.zotero.org/<your-username>/library
    • Group: https://www.zotero.org/groups/<group-id>/<group-name>/library

Run this one-line setup command from the skill directory:

python scripts/setup.py "<YOUR_LIBRARY_URL>" "<YOUR_API_KEY>"

Do NOT proceed with any Zotero operations until config.json has been created.

Included resources

  • scripts/zotero_workflow.py: CLI entrypoint for parse/inspect/match/create operations.
  • scripts/zotero_client.py: Zotero API client, URL parser, secret loading, collection matching, item creation, PDF upload.
  • tests/smoke_test_zotero_pdf_upload.py: no-network smoke tests.
  • references/config.example.json: runtime config template (uses unified url field for both group and personal URLs).
  • references/item.example.json: item metadata sample.
  • references/approval-flow.md: approval checkpoints and write safety policy.

Required operating policy

  1. Start with read-only steps (parse-url, list-collections, choose-collection).
  2. If collection matching is we...

Informations sur la source

Source
github
Repository
openclaw/skills
Path
skills/chenhaox/zotero-pdf-upload
Version
—
Commit
4997e7a6569c584d42cb9c71c6685fe7061f5f1e
Source de classification
rules
Statut
active
Visibilité
public

Ces informations proviennent de l’analyse indexée et peuvent être anciennes. Vérifiez les fichiers actuels.

README

📎 zotero-pdf-upload

中文版 | GitHub

🤖 AI Skill — Let your LLM manage your Zotero Web Library directly: upload PDFs, create items, and match collections.

⚙️ Configure

You need two things: a Zotero API Key and your Zotero Library URL.

Step 1 — Create a Zotero API Key
  1. Log in to zotero.org and click "Settings" in the top-right corner.

  2. In the Settings page, click "Security" in the left sidebar, then scroll down to the Applications section and click "Create new private key".

  3. Configure the key permissions:

    • Personal Library: ✅ Allow library access, ✅ Allow notes access, ✅ Allow write access
    • Default Group Permissions: Set to Read/Write (if you use group libraries)
    • Click "Save Key" to generate your Zotero_API_Key
  4. Copy the generated key — you'll need it below.

Step 2 — Get your Zotero Library URL

Open your Zotero library in a browser and copy the URL from the address bar:

  • Personal library: https://www.zotero.org/<your-username>/library
  • Group library: https://www.zotero.org/groups/<group-id>/<group-name>/library

For example:

# Personal
https://www.zotero.org/chenhaox/library

# Group
https://www.zotero.org/groups/6320165/fafu_robot/library
Step 3 — Run setup
python scripts/setup.py "<YOUR_LIBRARY_URL>" "<YOUR_API_KEY>"

✅ Done! Restart your conversation and the LLM will automatically detect and use this skill.

💡 Just tell the AI: "Upload this PDF to my Zotero collection X" — it will handle the rest.


🔧 What it does

  • 🔗 Parse Zotero group/user URLs into libraryType + libraryId
  • 📂 List and inspect existing collections
  • 🎯 Heuristically match an item to an existing collection
  • ✋ Require explicit approval before creating collections/ite...

Contenu extrait

SKILL.md
# zotero-pdf-upload

Use this skill for direct Zotero workflows that must stay safe, explicit, and reusable.

## First-time setup check (do this BEFORE any Zotero operation)

Before running any command, check if `config.json` exists in the skill root directory.

**If `config.json` does NOT exist**, stop and inform the user:

> This skill is not configured yet. You need to set it up first.
>
> **What you need to prepare:**
>
> 1. **Zotero API Key** — Create one at [zotero.org/settings/keys](https://www.zotero.org/settings/keys)
>    - Go to Settings → Security → Create new private key
>    - Enable: Allow library access, Allow notes access, Allow write access
>    - If using group libraries, set Default Group Permissions to Read/Write
>    - Click "Save Key" and copy the generated key
>
> 2. **Zotero Library URL** — Open your library in a browser and copy the URL:
>    - Personal: `https://www.zotero.org/<your-username>/library`
>    - Group: `https://www.zotero.org/groups/<group-id>/<group-name>/library`
>
> **Run this one-line setup command** from the skill directory:
> ```bash
> python scripts/setup.py "<YOUR_LIBRARY_URL>" "<YOUR_API_KEY>"
> ```

Do NOT proceed with any Zotero operations until `config.json` has been created.

## Included resources

- `scripts/zotero_workflow.py`: CLI entrypoint for parse/inspect/match/create operations.
- `scripts/zotero_client.py`: Zotero API client, URL parser, secret loading, collection matching, item creation, PDF upload.
- `tests/smoke_test_zotero_pdf_upload.py`: no-network smoke tests.
- `references/config.example.json`: runtime config template (uses unified `url` field for both group and personal URLs).
- `references/item.example.json`: item metadata sample.
- `references/approval-flow.md`: approval checkpoints and write safety policy.

## Required operating policy

1. Start with read-only steps (`parse-url`, `list-collections`, `choose-collection`).
2. If collection matching is we...
README
# 📎 zotero-pdf-upload

[中文版](README_CN.md) | [GitHub](https://github.com/chenhaox/zotero-pdf-upload)

> 🤖 AI Skill — Let your LLM manage your [Zotero Web Library](https://www.zotero.org) directly: upload PDFs, create items, and match collections.

## ⚙️ Configure

You need two things: a **Zotero API Key** and your **Zotero Library URL**.

### Step 1 — Create a Zotero API Key

1. Log in to [zotero.org](https://www.zotero.org) and click **"Settings"** in the top-right corner.

2. In the Settings page, click **"Security"** in the left sidebar, then scroll down to the **Applications** section and click **"Create new private key"**.

3. Configure the key permissions:
   - **Personal Library**: ✅ Allow library access, ✅ Allow notes access, ✅ Allow write access
   - **Default Group Permissions**: Set to **Read/Write** (if you use group libraries)
   - Click **"Save Key"** to generate your `Zotero_API_Key`

4. **Copy the generated key** — you'll need it below.

### Step 2 — Get your Zotero Library URL

Open your Zotero library in a browser and copy the URL from the address bar:

- **Personal library**: `https://www.zotero.org/<your-username>/library`
- **Group library**: `https://www.zotero.org/groups/<group-id>/<group-name>/library`

For example:
```
# Personal
https://www.zotero.org/chenhaox/library

# Group
https://www.zotero.org/groups/6320165/fafu_robot/library
```

### Step 3 — Run setup

```bash
python scripts/setup.py "<YOUR_LIBRARY_URL>" "<YOUR_API_KEY>"
```

✅ **Done!** Restart your conversation and the LLM will automatically detect and use this skill.

> 💡 Just tell the AI: _"Upload this PDF to my Zotero collection X"_ — it will handle the rest.

---

## 🔧 What it does

- 🔗 Parse Zotero group/user URLs into `libraryType` + `libraryId`
- 📂 List and inspect existing collections
- 🎯 Heuristically match an item to an existing collection
- ✋ Require explicit approval before creating collections/ite...

Skills associés

OpenClaw

bambu-studio-ai

heyixuan2

Bambu Lab 3D printer control and automation. Activate when user mentions: printer status, 3D printing, slice, analyze model, generate 3D, AMS filament, print monitor, Bambu Lab, or any 3D printing task. Full pi...

OpenClaw

humanpages

human-pages-ai

Search and hire real humans for tasks — photography, delivery, research, and more

OpenClaw

geo-optimization

capt-marbles

Generative Engine Optimization (GEO) for AI search visibility. Optimize content to appear in ChatGPT, Perplexity, Claude, and Google AI Overviews. Use when optimizing websites, pages, or content for LLM discove...