Universal citation management and academic reference toolkit
Project description
OmniCite
Universal Citation Management & Academic Reference Toolkit
Transform messy references into standardized citations
✨ Features • 🚀 Quick Start • 📖 Documentation • 🤝 Contributing
✨ Features
- 🔍 Smart Recognition - Fuzzy matching with CrossRef & Google Scholar APIs
- 📚 Multi-format Support - TXT, BibTeX input → BibTeX, APA, MLA output
- 🎯 High Accuracy - 4-stage refinement pipeline ensures quality
- 🤖 Auto-completion - Intelligently fills missing bibliographic data
- 🎛️ Interactive Mode - User choice for ambiguous matches
- ⚙️ Template System - Flexible output field configuration
- 🎓 Conference Paper Support - Recognizes papers from NIPS, CVPR, ICML, etc.
- 📄 arXiv Integration - Automatically fetches metadata for arXiv papers
- 🌟 Famous Paper Database - Built-in recognition for landmark papers
🚀 Quick Start
Installation
Option 1: Install from PyPI (Recommended)
pip install omnicite
Option 2: Install from Source
git clone https://github.com/HzaCode/OmniCite.git
cd omnicite
pip install -r requirements.txt
pip install -e .
Basic Usage
Input (references.txt):
10.1038/nature14539
Attention is all you need
Vaswani et al.
NIPS 2017
Command:
omnicite process references.txt --output results.bib --quiet
Output:
✅ Results saved to: results.bib
📊 Processing Report:
Total entries: 2
Successfully processed: 2
Failed entries: 0
Generated (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",
}
@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",
booktitle = "Advances in Neural Information Processing Systems",
year = 2017,
url = "https://arxiv.org/abs/1706.03762",
}
💡 Advanced Usage
🎨 Multiple Output Formats
# APA format
omnicite process refs.txt --output-format apa
# → LeCun, Y., Bengio, Y., & Hinton, G. (2015). Deep learning. Nature, 521(7553), 436-444.
# → Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., ... & Polosukhin, I. (2017).
# Attention is all you need. In Advances in Neural Information Processing Systems (pp. 5998-6008).
# BibTeX format (default)
omnicite process refs.txt --output-format bibtex
# MLA format
omnicite process refs.txt --output-format mla
# → LeCun, Yann, Yoshua Bengio, and Geoffrey Hinton. "Deep Learning." Nature 521.7553 (2015): 436-444.
# → Vaswani, Ashish, et al. "Attention Is All You Need." Advances in Neural Information Processing Systems. 2017.
🤖 Interactive Mode
omnicite 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
Year: 2015
Match Score: 92.5
DOI: 10.1038/nature14539
2. Deep belief networks
Authors: Hinton, Geoffrey E.
Journal: Scholarpedia
Year: 2009
Match Score: 78.3
DOI: 10.4249/scholarpedia.5947
Please select (1-2, 0=skip): 1
✅ Selected: Deep learning
🐍 Python API
from omnicite import process_references
def callback(candidates):
return 0 # Select first candidate
result = process_references(
input_content="Deep learning review\nLeCun, Bengio, Hinton\nNature 2015",
input_type="txt",
template_name="journal_article_full",
output_format="bibtex",
interactive_callback=callback
)
print(f"Processed: {result['report']['succeeded']} entries")
📑 Supported Paper Types
OmniCite now supports various types of academic papers:
Journal Articles with DOI:
10.1038/nature14539
→ Automatically fetches complete metadata from CrossRef
Conference Papers:
Attention is all you need
Vaswani et al.
NIPS 2017
→ Recognizes conference venues (NIPS/NeurIPS, CVPR, ICML, etc.)
→ Generates @inproceedings BibTeX entries
arXiv Papers:
1706.03762
→ Fetches metadata from arXiv API → Includes abstract and all authors
Papers with URLs:
https://arxiv.org/abs/1706.03762
→ Extracts identifiers from URLs → Supports arXiv, DOI, and conference paper URLs
⚙️ Configuration
📋 Command Line Options
| Option | Description | Default |
|---|---|---|
--input-type |
Input format (txt, bib) | txt |
--output-format |
Output format (bibtex, apa, mla) | bibtex |
--template |
Template to use | journal_article_full |
--interactive |
Enable interactive mode | False |
--quiet |
Suppress verbose logging | False |
--output, -o |
Output file path | stdout |
Examples:
# Basic processing
omnicite process input.txt
# With custom options
omnicite process input.bib --input-type bib --template conference_paper --output results.bib
# Interactive mode with APA output
omnicite process mixed.txt --interactive --output-format apa
🎨 Template System
Create custom template my_template.yaml:
name: my_template
entry_type: "@article"
fields:
- name: author
required: true
- name: title
required: true
- name: journal
required: true
- name: year
required: true
- name: doi
required: false
source_priority: [crossref_api]
Usage:
omnicite process refs.txt --template my_template
🤝 Contributing
We welcome contributions! See CONTRIBUTING.md for guidelines.
📄 License
This project is licensed under the MIT License.
OmniCite - Making citation management simple and accurate ✨
⭐ Star • 📖 Docs • 🐛 Issues • 💬 Discussions
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file onecite-0.0.3.tar.gz.
File metadata
- Download URL: onecite-0.0.3.tar.gz
- Upload date:
- Size: 31.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d738f2461216046a6387ff1e25310b76e0e2384ff8573b28275b4f858ce11db2
|
|
| MD5 |
13395c2bce707313f01a8708eca17947
|
|
| BLAKE2b-256 |
0f004e660ccbc87222ebb4d00370a824894133f3a3e5fa31c18b08caf3e15db7
|
File details
Details for the file onecite-0.0.3-py3-none-any.whl.
File metadata
- Download URL: onecite-0.0.3-py3-none-any.whl
- Upload date:
- Size: 35.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.1
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c4406e48bbea0a649e533a408ad0cc90d6d2677204c78486901a80e779e790c4
|
|
| MD5 |
06cdf44898b34c00640ed2a9b234daa9
|
|
| BLAKE2b-256 |
b6c16cc5f7963b20ee8f1cef2c0b58da8d249263bccb1480a00de523cf93cd8e
|