← Back to Skills Marketplace
cnicpyx

arXiv to Zotero

by 清弦. · GitHub ↗ · v1.0.2 · MIT-0
cross-platform ✓ Security Clean
399
Downloads
1
Stars
0
Active Installs
3
Versions
Install in OpenClaw
/install arxiv-to-zotero
Description
Find recent arXiv papers, skip what is already in Zotero, and save new imports with parent-item tagging and PDF attachments into a dedicated collection.
README (SKILL.md)

arXiv to Zotero

Use this skill when the user wants recent arXiv papers found and written into Zotero directly.

Best-fit use cases

  • find papers by topic + time range
  • skip papers already in Zotero
  • attach PDFs when possible
  • keep imports organized with a fixed tag and a dedicated collection

Setup

On first use, if ~/.openclaw/config/skills/arxiv-to-zotero.setup.json is missing, read {baseDir}/setup.md, collect the required Zotero values, tell the user to put ZOTERO_API_KEY in ~/.openclaw/.env, create the setup-state file, and resume the original request exactly once.

Flow

  1. If the user has not already provided them, ask for:
    • topic keywords or phrases
    • a time range
  2. Do not ask the user to write an arXiv query.
  3. If the user gives keywords in Chinese, translate them into concise, technically accurate English search phrases before building the arXiv query.
  4. Build one valid arXiv API search_query yourself.
  5. Run the script once:
python3 {baseDir}/scripts/main.py --config {baseDir}/config.json --query '\x3CarXiv search_query>'
  1. After the script finishes, use result.user_message as the final user-facing notification.

Query rules

  • Use official arXiv fielded search syntax.
  • The final arXiv query must be written in English.
  • Use double quotes for multi-word phrases.
  • Combine alternative keywords with OR when appropriate.
  • Add the requested time range with submittedDate:[YYYYMMDDTTTT TO YYYYMMDDTTTT].
  • Pass the query as normal text. Do not URL-encode it yourself.

Guarantees

  • Existing Zotero items are not modified.
  • New parent items are tagged with arxiv-to-zotero by default.
  • New imports are placed into the arxiv-to-zotero collection by default. If that collection does not exist, the script creates it.
  • If Zotero file upload hits HTTP 413, the script falls back to linked_url for that paper and keeps later attachments in link mode for the same run.

When not to use

Do not use this skill for discussion-only requests, browsing help, or any task that should not write to Zotero.

Network / Privacy

  • Contacts: arXiv Atom API, arXiv PDF URLs, Zotero Web API
  • Secret used: ZOTERO_API_KEY
  • Writes: new Zotero parent items and child attachments only
  • Does not modify existing Zotero items

Natural-language trigger examples

  • 帮我找近三年来 mamba 或者多模态用于股票预测的 arXiv 论文,并导入 Zotero。
  • 帮我查最近两年 test-time adaptation 或 active search 用于组合优化的 arXiv 论文,去重后导入 Zotero。
  • 帮我找近半年的 graph neural network 用于 TSP 或 vehicle routing 的 arXiv 论文,导入 Zotero。
Usage Guidance
This skill appears coherent: it will ask for a Zotero API key and then run the bundled Python script once to search arXiv and create new Zotero items (including attempts to attach PDFs using curl). Before installing: 1) confirm you are comfortable granting the Zotero API key (create a key with the minimal necessary permissions and revoke it later if needed); 2) review the bundled scripts (scripts/main.py) if you want to audit exact network calls and file writes; 3) be aware the skill will create a setup-state at ~/.openclaw/config/skills/arxiv-to-zotero.setup.json and may write non-secret defaults into the skill's config.json; 4) consider running with a small import cap (config.import_policy.max_new_items) or dry-run to verify behavior; and 5) if you do not want the agent to invoke the skill autonomously, disable autonomous invocation in your agent settings.
Capability Analysis
Type: OpenClaw Skill Name: arxiv-to-zotero Version: 1.0.2 The arxiv-to-zotero skill bundle is well-structured and its functionality aligns strictly with the stated purpose of automating research paper imports. The Python script (scripts/main.py) uses standard libraries and subprocess calls to curl for PDF downloads in a safe manner (avoiding shell=True), and interacts only with legitimate endpoints (arXiv and Zotero APIs). No evidence of malicious intent, credential exfiltration, or prompt-injection attacks was found; the skill follows established OpenClaw patterns for configuration and secret management via environment variables.
Capability Tags
requires-sensitive-credentials
Capability Assessment
Purpose & Capability
Name/description (arXiv → Zotero) align with required binaries (python3, curl), the single required environment variable (ZOTERO_API_KEY), the included script (scripts/main.py), and the documented behavior (search arXiv, dedupe against Zotero, create collection, upload PDFs). The Zotero API key is the expected credential for this function.
Instruction Scope
SKILL.md instructs the agent to collect keywords/time range, build a single arXiv query, and invoke the bundled script once. It restricts external network targets (arXiv, arXiv PDF URLs, Zotero API) and documents read/write paths (config.json, ~/.openclaw/.env, setup-state). The instructions do not ask the agent to read unrelated local files or exfiltrate secrets to third-party endpoints.
Install Mechanism
No install spec is provided (instruction-only with bundled script), so nothing arbitrary is downloaded or executed beyond the included Python script and a curl subprocess for PDF downloads. This is a low-risk approach given the script is bundled in the package.
Credentials
Only ZOTERO_API_KEY is required and declared as the primary credential; that is a proportionate requirement for writing to a Zotero account. The SKILL.md/setup.md describe where to put the key (~/.openclaw/.env) and the other Zotero config values are non-secret and stored in config.json. No unrelated credentials are requested.
Persistence & Privilege
always:false (not force-included). The skill writes a per-skill setup-state file and may update its own config.json; it does not request system-wide privileges or modify other skills. Autonomous invocation (disable-model-invocation:false) is the platform default and not by itself a problem.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install arxiv-to-zotero
  3. After installation, invoke the skill by name or use /arxiv-to-zotero
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.2
Summary: Adds dedicated collection organization to arxiv-to-zotero imports. - New imports are now saved into a dedicated "arxiv-to-zotero" collection; the script creates this collection if it doesn't exist. - Clarified and updated documentation to highlight parent-item tagging and collection use. - Maintains deduplication, PDF attachment, and fallback to linked_url if file uploads are too large. - No changes to required environment variables or main flow.
v1.0.1
- Updated the script invocation path in setup instructions to use `{baseDir}/config.json` instead of the user config directory. - Version bump from 1.0.0 to 1.0.1; no behavioral or logic changes.
v1.0.0
arxiv-to-zotero 1.0.0 – Initial release. - Search recent arXiv papers by topic and time range, then import only new matches into Zotero with PDF attachments when available. - Automatically deduplicates against existing Zotero items before importing new papers. - Accepts search topics in either English or Chinese; translates Chinese keywords to English for arXiv querying. - Supports natural language queries for arXiv searches (no manual query crafting needed). - Attaches PDFs directly to Zotero when possible, or falls back to linked URLs if PDFs are too large. - Does not alter existing Zotero items; adds only new papers and attachments.
Metadata
Slug arxiv-to-zotero
Version 1.0.2
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 3
Frequently Asked Questions

What is arXiv to Zotero?

Find recent arXiv papers, skip what is already in Zotero, and save new imports with parent-item tagging and PDF attachments into a dedicated collection. It is an AI Agent Skill for Claude Code / OpenClaw, with 399 downloads so far.

How do I install arXiv to Zotero?

Run "/install arxiv-to-zotero" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is arXiv to Zotero free?

Yes, arXiv to Zotero is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does arXiv to Zotero support?

arXiv to Zotero is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created arXiv to Zotero?

It is built and maintained by 清弦. (@cnicpyx); the current version is v1.0.2.

💬 Comments