Repository avatar
AI Tools
v0.0.11
active

onecite

io.github.HzaCode/onecite

Generate academic citations from DOI, arXiv, titles, or URLs in BibTeX, APA, MLA formats.

Documentation

OneCite Logo

OneCite

The Universal Citation & Academic Reference Toolkit

Recommended by: (Updating) Β  Awesome LaTeX

Status PyPI Version Python Version Downloads License MCP Registry

✨ Features β€’ πŸš€ Quick Start β€’ πŸ“– Advanced Usage β€’ πŸ€– AI Integration β€’ 🀝 Contributing


OneCite is a powerful command-line tool and Python library designed to automate the tedious process of citation management. Feed it anythingβ€”DOIs, paper titles, arXiv IDs, or even a mixβ€”and get clean, accurate bibliographic entries in return.

πŸš€ OneCite for Web is coming soon at hezhiang.com/onecite


✨ Features

FeatureDescription
πŸ” Smart RecognitionFuzzy matching against multiple academic databases to find references from incomplete or inaccurate info.
πŸ“š Universal FormatsInput .txt/.bib β†’ Output BibTeX, APA, or MLA formats with ease.
🎯 High-Accuracy PipelineA 4-stage process (clean β†’ query β†’ validate β†’ format) ensures the highest quality output.
πŸ€– Auto-CompletionAutomatically enriches entries by filling in missing data like journal, volume, pages, and authors.
πŸŽ“ 7+ Citation TypesHandles journal articles, conference papers, books, software, datasets, theses, and preprints.
🧠 Intelligent RoutingAuto-detects content type and domain (Medical/CS/General) for optimal data retrieval.
πŸ“„ Universal IdentifiersAccepts DOI, PMID, arXiv ID, ISBN, GitHub URL, Zenodo DOI, or even plain text queries.
πŸŽ›οΈ Interactive ModeManually select the correct entry when multiple potential matches are found.
βš™οΈ Custom TemplatesA YAML-based template system provides complete control over the final output format.

🌐 Data Sources

CrossRef Semantic Scholar OpenAlex PubMed dblp arXiv DataCite Zenodo Google Books

πŸš€ Quick Start

Get up and running with OneCite in under a minute.

1. Installation

# Recommended: Install from PyPI
pip install onecite

2. Create an Input File

Create a file named references.txt with your mixed-format references:

# references.txt
# ⚠️ Important: Add blank lines between entries to avoid misidentification

10.1038/nature14539

Attention is all you need, Vaswani et al., NIPS 2017

Goodfellow, I., Bengio, Y., & Courville, A. (2016). Deep Learning. MIT Press.

https://github.com/tensorflow/tensorflow

10.5281/zenodo.3233118

arXiv:2103.00020

Smith, J. (2020). Neural Architecture Search. PhD Thesis. Stanford University.

3. Run OneCite

Execute the command to process your file and generate a clean .bib output.

onecite process references.txt -o results.bib --quiet

4. Get Perfectly Formatted Output

Your results.bib file now contains 7 perfectly formatted entries of different types.

πŸ“„ View Complete Output (results.bib)
@article{LeCun2015Deep,
  doi = "10.1038/nature14539",
  title = "Deep learning",
  author = "LeCun, Yann and Bengio, Yoshua and Hinton, Geoffrey",
  journal = "Nature",
  year = 2015,
  volume = 521,
  number = 7553,
  pages = "436-444",
  publisher = "Springer Science and Business Media LLC",
  url = "https://doi.org/10.1038/nature14539",
  type = "journal-article",
}
@inproceedings{Vaswani2017Attention,
  arxiv = "1706.03762",
  title = "Attention Is All You Need",
  author = "Vaswani, Ashish and Shazeer, Noam and Parmar, Niki and Uszkoreit, Jakob and Jones, Llion and Gomez, Aidan N. and Kaiser, Lukasz and Polosukhin, Illia",
  year = 2017,
  journal = "arXiv preprint",
  url = "https://arxiv.org/abs/1706.03762",
}
# ... and 5 more entries ...

πŸ“– Advanced Usage

🎨 Multiple Output Formats (APA, MLA)
# Generate APA formatted citations
onecite process refs.txt --output-format apa
# β†’ LeCun, Y., Bengio, Y., & Hinton, G. (2015). Deep learning. Nature, 521(7553), 436-444.

# Generate MLA formatted citations
onecite process refs.txt --output-format mla
# β†’ LeCun, Yann, Yoshua Bengio, and Geoffrey Hinton. "Deep Learning." Nature 521.7553 (2015): 436-444.
πŸ€– Interactive Disambiguation

For ambiguous entries, use the --interactive flag to manually select the correct match and ensure accuracy.

Command:

onecite process ambiguous.txt --interactive

Example Interaction:

Found multiple possible matches for "Deep learning Hinton":
1. Deep learning
   Authors: LeCun, Yann; Bengio, Yoshua; Hinton, Geoffrey
   Journal: Nature, 2015
   DOI: 10.1038/nature14539

2. Deep belief networks
   Authors: Hinton, Geoffrey E.
   Journal: Scholarpedia, 2009
   DOI: 10.4249/scholarpedia.5947

Please select (1-2, 0=skip): 1
βœ… Selected: Deep learning
🐍 Use as a Python Library

Integrate OneCite's processing power directly into your Python scripts.

from onecite import process_references

# A callback can be used for non-interactive selection (e.g., always choose the best match)
def auto_select_callback(candidates):
    return 0 # Index of the best candidate

result = process_references(
    input_content="Deep learning review\nLeCun, Bengio, Hinton\nNature 2015",
    input_type="txt",
    output_format="bibtex",
    interactive_callback=auto_select_callback
)

print(result['output_content'])

πŸ€– AI Assistant Integration (MCP)

OneCite provides complete Model Context Protocol (MCP) support, enabling AI assistants to directly use its functionality for literature search, processing, and formatting.

πŸš€ Setup & Usage

1. Installation & Testing

# Install OneCite (includes MCP server)
pip install onecite

# Test the MCP server
onecite-mcp

2. Configure Your AI Assistant

For Claude Desktop

Add the following to claude_desktop_config.json:

{
  "mcpServers": { "onecite": { "command": "onecite-mcp" } }
}

For Cursor

Add the following to .cursor/settings.json:

{
  "mcpServers": { "onecite": { "command": "onecite-mcp" } }
}

Restart your editor to enable the integration.

3. Available Functions & Examples

  • cite: Generate a single citation (e.g., "Generate an APA citation for DOI: 10.1038/nature14539").
  • batch_cite: Process a list of references (e.g., "Batch process these references in BibTeX format").
  • search: Search academic literature by keywords (e.g., "Search for papers on machine learning").

🀝 Contributing

Contributions are always welcome! Please see CONTRIBUTING.md for development guidelines and instructions on how to submit a pull request.

πŸ“„ License

This project is licensed under the MIT License. See the LICENSE file for details.


OneCite: The all-in-one toolkit for every academic reference.

⭐ Star on GitHub β€’ πŸš€ Try the Web App β€’ πŸ› Report an Issue β€’ πŸ’¬ Start a Discussion