Zotero Obsidian Bridge
Galaxy-Dawn/claude-scholar
Moves papers from Zotero into an Obsidian project knowledge base as source notes, literature synthesis and writing outputs, with evidence records behind every promoted claim.
Domain-configurable Zotero-to-Obsidian literature curation and paper close-reading skill.
$ npx skills add ganzoth/zotero-taxonomy-curator --skill zotero-taxonomy-curator -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install ganzoth/zotero-taxonomy-curator zotero-taxonomy-curator --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/ganzoth/zotero-taxonomy-curator.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/zotero-taxonomy-curator .claude/skills/zotero-taxonomy-curator && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "zotero-taxonomy-curator" agent skill from https://github.com/ganzoth/zotero-taxonomy-curator/tree/main/skills/zotero-taxonomy-curator into .claude/skills/zotero-taxonomy-curator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "zotero-taxonomy-curator", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/ganzoth/zotero-taxonomy-curator/tree/main/skills/zotero-taxonomy-curatorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add ganzoth/zotero-taxonomy-curator --skill zotero-taxonomy-curator -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install ganzoth/zotero-taxonomy-curator zotero-taxonomy-curator --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ganzoth/zotero-taxonomy-curator.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/zotero-taxonomy-curator .agents/skills/zotero-taxonomy-curator && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "zotero-taxonomy-curator" agent skill from https://github.com/ganzoth/zotero-taxonomy-curator/tree/main/skills/zotero-taxonomy-curator into .agents/skills/zotero-taxonomy-curator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "zotero-taxonomy-curator", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ganzoth/zotero-taxonomy-curator --skill zotero-taxonomy-curator -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install ganzoth/zotero-taxonomy-curator zotero-taxonomy-curator --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ganzoth/zotero-taxonomy-curator.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/zotero-taxonomy-curator .cursor/skills/zotero-taxonomy-curator && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "zotero-taxonomy-curator" agent skill from https://github.com/ganzoth/zotero-taxonomy-curator/tree/main/skills/zotero-taxonomy-curator into .cursor/skills/zotero-taxonomy-curator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "zotero-taxonomy-curator", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/ganzoth/zotero-taxonomy-curator.git --path skills/zotero-taxonomy-curator--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add ganzoth/zotero-taxonomy-curator --skill zotero-taxonomy-curator -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install ganzoth/zotero-taxonomy-curator zotero-taxonomy-curator --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ganzoth/zotero-taxonomy-curator.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/zotero-taxonomy-curator .gemini/skills/zotero-taxonomy-curator && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "zotero-taxonomy-curator" agent skill from https://github.com/ganzoth/zotero-taxonomy-curator/tree/main/skills/zotero-taxonomy-curator into .gemini/skills/zotero-taxonomy-curator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "zotero-taxonomy-curator", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install ganzoth/zotero-taxonomy-curator zotero-taxonomy-curatorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add ganzoth/zotero-taxonomy-curator --skill zotero-taxonomy-curator -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/ganzoth/zotero-taxonomy-curator.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/zotero-taxonomy-curator .github/skills/zotero-taxonomy-curator && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "zotero-taxonomy-curator" agent skill from https://github.com/ganzoth/zotero-taxonomy-curator/tree/main/skills/zotero-taxonomy-curator into .github/skills/zotero-taxonomy-curator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "zotero-taxonomy-curator", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add ganzoth/zotero-taxonomy-curator --skill zotero-taxonomy-curator -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install ganzoth/zotero-taxonomy-curator zotero-taxonomy-curator --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/ganzoth/zotero-taxonomy-curator.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/zotero-taxonomy-curator .opencode/skills/zotero-taxonomy-curator && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "zotero-taxonomy-curator" agent skill from https://github.com/ganzoth/zotero-taxonomy-curator/tree/main/skills/zotero-taxonomy-curator into .opencode/skills/zotero-taxonomy-curator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "zotero-taxonomy-curator", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
zotero-taxonomy-curatorDomain-configurable Zotero-to-Obsidian literature curation and paper close-reading skill.
Zotero Taxonomy Curator is an agent skill from ganzoth/zotero-taxonomy-curator. Domain-configurable Zotero-to-Obsidian literature curation and paper close-reading skill. Use when the user asks to 精读、文献精读、论文精读、生成精读笔记, analyze/read a paper, or process a Zotero item/collection/title/DOI/PDF into a structured Obsidian literature note. It extracts Zotero evidence, writes Chinese close-reading notes, maps original tags to a controlled taxonomy, initializes local config and empty taxonomy, handles review/survey papers with reviewscopetags, writes model and formula sections with LaTeX evidence…
Its SKILL.md is about 2.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 9 other files, including scripts (for example `scripts/curator_common.py`, `scripts/extract_zotero_evidence.py` and `scripts/init_curator_project.py`).
It sits in Research & Science, covering Citation management and Literature review. It works with Zotero, Obsidian and LaTeX. The licence is MIT.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit ca30528. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 5 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
pythonFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Zotero Taxonomy Curator loads about 2.3k tokens when it runs. Until then it costs about 151 tokens; SKILL.md has 1,026 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from ganzoth/zotero-taxonomy-curator at commit ca30528, republished under its MIT licence (© ganzoth). 1,026 words, ~2,296 tokens.
.claude/skills/zotero-taxonomy-curator/SKILL.md (or your agent's skills folder). This skill also uses 7 other files; get the full folder from GitHub.Use this skill when a user wants to turn Zotero items, collections, annotations, manual tags, PDF text, or notes into structured Obsidian literature notes backed by a user-defined taxonomy.
This skill is taxonomy-first. It does not treat paper summarization as the final goal. Its goal is to help the user build a reusable literature system:
Zotero evidence -> controlled taxonomy -> structured note -> literature indexUse sources in this order:
config/local.yaml.config/taxonomy.yaml.templates/literature-note-template.md inside
this skill folder, or a project-level override supplied by the user.Never invent paper conclusions, numerical results, page numbers, formulas, authors, DOI, dataset names, or Zotero keys. If evidence is missing, say so.
Detect review papers before assigning tags. Review signals include review,
survey, systematic literature review, bibliometric, scoping review,
taxonomy, classification, meta-analysis, state-of-the-art, or a paper
whose main contribution is organizing a field rather than proposing a new model
or experiment.
For review papers:
paper_type: review;review_type when possible, such as narrative-review,
systematic-review, bibliometric-review, scoping-review,
taxonomy-review, meta-analysis, tutorial-review, or hybrid-review;canonical_tags narrow: use only the review type and its core scope;review_scope_tags for covered but non-core concepts; these mean "covered
by this review", not "proposed by this paper";canonical_tags;For modeling, optimization, algorithm, learning, or quantitative papers:
When extracting material for a future literature review:
Expected public templates:
config/local.example.yamlconfig/taxonomy.example.yamltemplates/literature-note-template.md, if the user wants to
override the bundled skill templateExpected private local files:
config/local.yamlconfig/taxonomy.yamlDo not require hard-coded absolute paths. If config/local.yaml is absent, ask
the user to run scripts/init_curator_project.py or create it from
config/local.example.yaml.
When a user has just installed the skill or the current project has no
config/local.yaml, initialize the project before extracting papers:
python <skill-dir>/scripts/init_curator_project.pyThe initializer creates:
config/local.yaml;config/taxonomy.yaml as an empty taxonomy starter;templates/literature-note-template.md;notes/literature/;Literature Index.md.It tries to detect Zotero paths from environment variables, Zotero profile
preferences, and common default locations. If detection fails, rerun it with
--zotero-sqlite and --zotero-storage, or edit config/local.yaml.
For each Zotero item, collect:
At this stage, do not translate, summarize, or write final notes.
If deterministic extraction is needed, run
scripts/extract_zotero_evidence.py.
Before writing the note, identify the user's taxonomy categories. Common categories include:
Domain projects may replace these categories with field-specific ones.
Map Zotero tags and evidence-derived concepts to the taxonomy:
标签标记, not as noisy frontmatter fields;canonical_tags;candidate_tags;config/taxonomy.yaml rather than
duplicating the full taxonomy tree in every note;Use the configured template and include:
paper_type: review;If the user has an index file, update it with:
Before reporting completion:
candidate_terms when applicable;review_scope_tags is not being used as a
substitute for ordinary canonical_tags;For deterministic tag checks, run scripts/validate_taxonomy_notes.py.
Use the smallest stable tag set that supports the user's research workflow.
Promote a candidate term to canonical only when:
Do not promote:
For a single item:
Completed
- Zotero item:
- Output note:
- Taxonomy:
- Index update:
Tag decisions
- Canonical:
- Candidate:
- Not mapped:
Risks / missing evidence
- ...For a collection:
Collection summary
- Items scanned:
- Already processed:
- New notes:
- Skipped:
- Failed:
Taxonomy changes
- New candidates:
- New canonical tags:
- Merge suggestions:© ganzoth, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 7 other files (scripts) in skills/zotero-taxonomy-curator of ganzoth/zotero-taxonomy-curator.
Open the folder on GitHubat commit ca30528
Zotero Taxonomy Curator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Zotero Taxonomy Curator this skillganzoth/zotero-taxonomy-curator | 160 | — | ~2.3k | Automated safety check: Pass | MIT | |
| Zotero Obsidian BridgeGalaxy-Dawn/claude-scholar | 5.7k | — | ~514 | Automated safety check: Pass | MIT | |
| Lit SyncAperivue/medsci-skills | 333 | — | ~4.6k | Automated safety check: Pass | MIT | |
| Scholar Lit Reviewjoshzyj/open-scholar-skill | 168 | — | ~14k | Automated safety check: Notes | Custom licence | |
| Comm Lit Review Claude SingleAI4Scientist/nano-scientist | 128 | 4 repos | ~2.2k | Automated safety check: Notes | None | |
| Obsidian Literature Workflowbrycewang-stanford/Auto-Empirical-Research-Skills | 4.6k | — | ~976 | Automated safety check: Pass | Custom licence |
Galaxy-Dawn/claude-scholar
Moves papers from Zotero into an Obsidian project knowledge base as source notes, literature synthesis and writing outputs, with evidence records behind every promoted claim.
Aperivue/medsci-skills
A skill your agent uses when references in a .bib file (often from /search-lit) should land in Zotero and Obsidian.
joshzyj/open-scholar-skill
Conduct a systematic literature review that maps the current landscape of a research question.
AI4Scientist/nano-scientist
Communications-domain literature review with Claude-style knowledge-base-first retrieval.
brycewang-stanford/Auto-Empirical-Research-Skills
A skill your agent uses when the user keeps paper notes inside an Obsidian project knowledge base and wants filesystem-first literature review, explicit agent-first Zotero ingestion, Papers/ plus…
wentorai/research-plugins
22 citation management skills. An agent skill from wentorai/research-plugins.
Categories
Domain-configurable Zotero-to-Obsidian literature curation and paper close-reading skill. Zotero Taxonomy Curator is an agent skill from ganzoth/zotero-taxonomy-curator. Domain-configurable Zotero-to-Obsidian literature curation and paper close-reading skill.
Zotero Taxonomy Curator fits situations like: the user asks to 精读、文献精读、论文精读、生成精读笔记; analyze/read a paper; process a Zotero item/collection/title/DOI/PDF into a structured Obsidian literature note.
Run `npx skills add ganzoth/zotero-taxonomy-curator --skill zotero-taxonomy-curator -a claude-code`. Or copy the skill folder (skills/zotero-taxonomy-curator in ganzoth/zotero-taxonomy-curator) into .claude/skills/zotero-taxonomy-curator in your project. Claude Code loads it when a task matches its description.
Run `npx skills add ganzoth/zotero-taxonomy-curator --skill zotero-taxonomy-curator -a codex`. Or copy the skill folder (skills/zotero-taxonomy-curator in ganzoth/zotero-taxonomy-curator) into .agents/skills/zotero-taxonomy-curator in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add ganzoth/zotero-taxonomy-curator --skill zotero-taxonomy-curator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/zotero-taxonomy-curator, .gemini/skills/zotero-taxonomy-curator, .github/skills/zotero-taxonomy-curator and .opencode/skills/zotero-taxonomy-curator in your project.
Going by SKILL.md and its folder, Zotero Taxonomy Curator needs Python for the scripts in its folder and the command-line tools its instructions call (python). Our summary lists: Python 3.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Zotero Taxonomy Curator is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.3k tokens (SKILL.md is roughly 9.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Zotero Taxonomy Curator: Zotero Obsidian Bridge (Galaxy-Dawn/claude-scholar, 5.7k stars), Lit Sync (Aperivue/medsci-skills, 333 stars), Scholar Lit Review (joshzyj/open-scholar-skill, 168 stars) and Comm Lit Review Claude Single (AI4Scientist/nano-scientist, 128 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
ganzoth (a GitHub user) maintains it in ganzoth/zotero-taxonomy-curator, which has 160 GitHub stars. The repository was last updated on May 8, 2026.
Source: ganzoth/zotero-taxonomy-curator on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.