Skip to content

Guide · Agent skill

How to use the Citation Management agent skill

Updated · written with AI from the project's own documentation and checked against our catalogue data

The citation-management skill is a set of instructions and Python scripts that lets an AI agent search academic databases, pull complete bibliographic records from identifiers, and produce clean BibTeX files. It is aimed at researchers, students and writers building a reference list for a paper or thesis. By the end of this guide you will know how to install it, how to ask for citation work in plain language, and what it needs to run.

Citation ManagementK-Dense-AI/scientific-agent-skills · MIT

Quick start

  1. 1Download and unzip. Download the ZIP from this page and unzip it into ~/.claude/skills/ or a project's .claude/skills/ folder.
  2. 2Or upload in the Claude apps. In the Claude apps, open Settings, go to Capabilities, then Skills, and upload the skill.
  3. 3Install Python dependencies. Make sure Python 3.9 or later is available with the requests library. Add scholarly only if you need Google Scholar search.
  4. 4Ask in plain language. Describe the task, such as converting a list of DOIs or checking a reference list, and include the file or identifiers.
  5. 5Review the commands. Check the commands the agent proposes to run, especially any that use the network or write files.
  6. 6Validate the output. Run or request the validation step and resolve any missing fields or mismatches before you cite the entries.

What is an agent skill and what does this one do?

An agent skill is a folder of instructions and supporting files that an AI agent loads when a task matches its description. This skill covers citation work: finding papers, extracting metadata, checking references and formatting BibTeX.

Once installed, the agent can search OpenAlex, PubMed and Google Scholar for papers, turn identifiers such as DOIs, PMIDs and arXiv IDs into complete bibliographic records, and produce consistently formatted BibTeX files. It can also check an existing reference list for missing fields, duplicates and mismatches with a manuscript.

  • Search OpenAlex, PubMed and Google Scholar
  • Convert DOI, PMID, PMCID, arXiv ID or URL to metadata
  • Format BibTeX and remove duplicates
  • Validate completeness and agreement with a manuscript

How do you install the citation-management skill?

Download the ZIP from the skill page on this site and unzip it. For a personal setup, place the folder in ~/.claude/skills/. For a single project, place it in the project's .claude/skills/ folder.

In the Claude apps, you can instead upload the skill under Settings → Capabilities → Skills.

  • Personal: unzip into ~/.claude/skills/
  • Project only: unzip into .claude/skills/ inside the project
  • Claude apps: Settings → Capabilities → Skills, then upload

What does the skill need before it runs?

The scripts need Python 3.9 or later with the requests library. Google Scholar search additionally needs the scholarly package. The agent needs network access to the citation services the skill calls.

Network access is required for: api.openalex.org, api.crossref.org, eutils.ncbi.nlm.nih.gov, pmc.ncbi.nlm.nih.gov, doi.org, export.arxiv.org and api.datacite.org.

Four environment variables are optional: NCBI_EMAIL, NCBI_API_KEY, OPENALEX_EMAIL and OPENALEX_API_KEY. They identify you to the services or raise rate limits, and the skill works without them.

  • Python 3.9+ with requests
  • scholarly, only for Google Scholar search
  • Network access to the listed hosts
  • Optional: NCBI_EMAIL, NCBI_API_KEY, OPENALEX_EMAIL, OPENALEX_API_KEY
python scripts/doi_to_bibtex.py 10.1038/s41586-021-03819-2

How do you trigger the skill with a natural request?

You do not need to name the scripts. Describe the job in plain language and mention the item you have, such as a DOI, a PMID or a list of papers. The skill is meant to be used when you need to find papers, verify citation information, convert DOIs to BibTeX, or ensure reference accuracy.

Good requests name the input and the output. For example: convert these three DOIs into a BibTeX file, or check my references.bib for missing fields and duplicates.

  • "Find recent PubMed papers on Alzheimer's disease treatment and give me a BibTeX file."
  • "Convert this list of DOIs into BibTeX and remove duplicates."
  • "Check references.bib against paper.tex and tell me what is missing."
  • "Get the full metadata for PMID 34265844."

What commands does the skill run?

The skill's instructions give these canonical commands. The agent runs them for you, but it helps to know what they do. Writing is opt-in: without --output or --in-place, formatting results go to stdout and the input file is left alone.

Prefer OpenAlex or PubMed as the primary source. Google Scholar has no API, and the scraper is rate-limited and often blocked, so treat it as a supplement.

python scripts/search_openalex.py "CRISPR gene editing" --limit 50 --output results.json python scripts/search_pubmed.py "Alzheimer's disease treatment" --limit 100 --output alz.json python scripts/extract_metadata.py --input identifiers.txt --output citations.bib python scripts/format_bibtex.py references.bib --output clean.bib --rekey --deduplicate python scripts/validate_citations.py references.bib --manuscript paper.tex

What safety points should you know?

The skill runs scripts and makes network requests, so review what the agent is about to run. Metadata from publisher records is treated as untrusted text. The skill's instructions say to pass metadata as a subprocess argument list rather than a shell string, and to validate citation keys against ^[A-Za-z0-9]+$ before they touch a file path.

The skill's instructions also tell the agent not to invent volume, page or DOI values when a publisher record lacks them. Missing fields should be recorded, not guessed.

  • Read the commands before approving them when the agent asks
  • Keep API keys in environment variables, not in files you share
  • Treat extracted metadata as possibly incomplete or wrong

What are the best tips for reliable results?

Search more than one database, since coverage differs and a single source often biases a reference list. Use DOIs when you have them, because they are the most reliable identifier. Check the validation output before you submit.

Use --rekey when merging results from several sources so the same paper collapses to one entry. Confirm duplicates by DOI and bibliographic identity rather than by key alone.

  • Start with OpenAlex or PubMed, then add Google Scholar only if needed
  • Prefer DOIs over titles for lookups
  • Always check the final BibTeX against the publisher page
  • Use the included checklist (assets/citation_checklist.md) before submission

What people use it for

  • Building a BibTeX bibliography for a thesis from a list of PMIDs
  • Converting a set of DOIs from a reading list into one clean .bib file
  • Checking that references in a manuscript match the actual publications
  • Finding duplicate entries after merging results from OpenAlex and PubMed

Frequently asked questions

How do I install the citation-management skill?

Download the ZIP from this page and unzip it into ~/.claude/skills/ for personal use, or into a project's .claude/skills/ folder. In the Claude apps you can instead upload it under Settings → Capabilities → Skills.

What do I need to run it?

You need Python 3.9 or later with the requests library, network access to the listed citation services, and scholarly only if you want Google Scholar search. The four environment variables are optional.

Is the citation-management skill free?

The skill is published under the MIT License, as stated on its page. The optional OpenAlex and NCBI keys are set by you with those services, and this page does not state any prices.

Why does Google Scholar search fail or return few results?

Google Scholar has no API, so the scholarly package scrapes it. The skill's documentation says it is rate-limited and often blocked, so results can be unreliable. Use OpenAlex or PubMed as the primary source.

Can it convert a DOI to BibTeX?

Yes. The doi_to_bibtex.py script takes a single DOI and CrossRef is the primary source for DOI metadata. For lists, extract_metadata.py accepts an input file of identifiers.

Does it work with citation styles other than BibTeX?

No. The tooling centres on BibTeX, so non-BibTeX citation styles and non-academic citation needs are outside its scope.

Can I trust the metadata it produces?

Not fully. Metadata comes from third-party records that can be incomplete or wrong, so check each entry against the publisher page before citing it.

New agent skills, repos and AI tools — every week

The best new skills and open-source projects, the fastest-growing repos, and one free prompt. Five minutes to read. Unsubscribe anytime.

Our verdict

This skill suits researchers, students and writers who need a clean BibTeX bibliography from DOIs, PMIDs or searches, and who want reference lists checked for missing fields and duplicates. It is a poor fit for large-scale Google Scholar harvesting, non-BibTeX styles, or anyone who will cite entries without checking them.

Download the skill