Find academic paper citations and BibTeX entries by title. Use when users need to look up papers, generate BibTeX citations, or find references for academic writing.
Look up academic papers by title and return BibTeX citations.
Parse paper title(s) from $ARGUMENTS or conversation context. Accept:
/cite Attention Is All You NeedLook back in conversation for a user-provided S2 API key. If found, pass it via --key. If not found, proceed without one (unauthenticated requests are slower but functional).
Run the S2 script with all titles at once:
uv run ${CLAUDE_PLUGIN_ROOT}/scripts/s2_lookup.py "Title One" "Title Two" --key API_KEY
Omit --key if no API key is available.
Parse the JSON array output. Each element has status: "success" or status: "error".
Collect any titles where S2 returned status: "error". If there are failures, run them through DBLP:
uv run ${CLAUDE_PLUGIN_ROOT}/scripts/dblp_lookup.py "Failed Title One" "Failed Title Two"
Optional flags: --bib-format standard|condensed|crossref.
Parse the JSON array output.
After each lookup, compare the returned title against the intended paper. The APIs sometimes return a different paper with a similar title (e.g., "Multimodal Attention Is All You Need" instead of "Attention Is All You Need"). If the returned paper is not the intended one, retry the query by appending disambiguating information such as the first author's surname or the publication year:
uv run ${CLAUDE_PLUGIN_ROOT}/scripts/s2_lookup.py "Attention Is All You Need Vaswani 2017"
For each title, present:
bibtex language tagmatch_type is "best_available" rather than "exact" — warn the user to verifyFor any titles that failed both sources, list them clearly and suggest:
If the user provided a single title and it succeeded, present just the BibTeX block and a one-line metadata summary.
@Article entry type regardless of actual publication type. DBLP BibTeX is more accurate in entry types.--bib-format accordingly.${CLAUDE_PLUGIN_ROOT}/references/ if you need to troubleshoot API issues.