Skip to main content

Universal citation management and academic reference toolkit

Project description

OneCite Logo

OneCite

The Universal Citation & Academic Reference Toolkit

Awesome CLI Apps

Tests codecov PyPI Python Downloads MIT Docs Awesome LaTeX

✨ Features🚀 Quick Start📖 Advanced Usage🤝 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.


✨ Features

Feature Description
🔍 Smart Recognition Fuzzy matching against multiple academic databases to find references from incomplete or inaccurate info.
📚 Universal Formats Input .txt/.bib → Output BibTeX, APA, or MLA formats with ease.
🎯 High-Accuracy Pipeline A 4-stage process (clean → query → validate → format) ensures the highest quality output.
🤖 Auto-Completion Automatically enriches entries by filling in missing data like journal, volume, pages, and authors.
🎓 7+ Citation Types Handles journal articles, conference papers, books, software, datasets, theses, and preprints.
🧠 Intelligent Routing Auto-detects content type and domain (Medical/CS/General) for optimal data retrieval.
📄 Universal Identifiers Accepts DOI, PMID, arXiv ID, ISBN, GitHub URL, Zenodo DOI, or even plain text queries.
🎛️ Interactive Mode Manually select the correct entry when multiple potential matches are found.
⚙️ Custom Templates A 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'])

🤝 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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

onecite-0.0.12.tar.gz (8.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

onecite-0.0.12-py3-none-any.whl (46.4 kB view details)

Uploaded Python 3

File details

Details for the file onecite-0.0.12.tar.gz.

File metadata

  • Download URL: onecite-0.0.12.tar.gz
  • Upload date:
  • Size: 8.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.1

File hashes

Hashes for onecite-0.0.12.tar.gz
Algorithm Hash digest
SHA256 d2686997ce1b8dc15a9c7d918bcc1b2524855d0bd5afe7bd84473f2b6470f9be
MD5 70576ef7afbac13291d43a5af94f4775
BLAKE2b-256 535d406b3b03f84722d5be394816876aca2ee84220b1219868cfc8cd22647dce

See more details on using hashes here.

File details

Details for the file onecite-0.0.12-py3-none-any.whl.

File metadata

  • Download URL: onecite-0.0.12-py3-none-any.whl
  • Upload date:
  • Size: 46.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.1

File hashes

Hashes for onecite-0.0.12-py3-none-any.whl
Algorithm Hash digest
SHA256 c9548fc852db2ffe394864092c2ed9501713e8bbb71e18a1c1d27e787cc4a679
MD5 f44ed597100310bea06b01098ed8604b
BLAKE2b-256 c37b43c82f097e56cde1502a9147c493b7e7665351332e92c6808a445d00d289

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page