A modern, minimalist browser extension for generating academic citations. Extract metadata from any webpage and create properly formatted citations in multiple styles.
- Features
- Screenshots
- Installation
- Usage
- Settings
- Supported Metadata Sources
- Project Structure
- Development
- Citation Style Examples
- Contributing
- License
- Acknowledgments
- Automatic Metadata Extraction: Automatically detects title, author, publication date, DOI, and more from web pages
- Smart Metadata Enhancement: Uses Semantic Scholar API to fill in missing metadata for academic papers
- arXiv to Published Version Detection: Automatically detects when an arXiv preprint has a peer-reviewed published version and lets you switch between citing the preprint or the published paper
- Zotero Integration: Save citations directly to your Zotero library with folder/collection selection
- Multiple Citation Styles:
- BibTeX
- APA 7th Edition
- MLA 9th Edition
- Chicago 17th Edition
- Harvard
- IEEE
- Source Types: Supports webpages, articles, books, journals, and news articles
- One-Click Copy: Instantly copy formatted citations to clipboard
- Editable Fields: Manually edit or add metadata before generating citations
- Modern UI: Clean, Material Design-inspired interface with two-column layout
- Customizable Citation Keys: Configure BibTeX key format using tokens like
auth.lower,shorttitle(3,3),year - Multiple Output Formats: Export as Plain Text, Markdown, or HTML
- Optional Access Date: Toggle urldate inclusion for online sources
- Collapsible Details: Hide/show source information fields for a cleaner view
-
Download the repository:
- Click the green "Code" button on GitHub and select "Download ZIP"
- Or clone the repository:
git clone https://github.com/melihcatal/justcite.git
-
Extract the ZIP file if downloaded
-
Open Chrome Extensions:
- Navigate to
chrome://extensions/in your address bar - Or go to Menu (โฎ) โ Extensions โ Manage Extensions
- Navigate to
-
Enable Developer Mode:
- Toggle "Developer mode" switch in the top right corner
-
Load the Extension:
- Click "Load unpacked"
- Navigate to and select the
chromefolder from the extracted files
-
Pin the Extension (optional):
- Click the puzzle piece icon in Chrome's toolbar
- Click the pin icon next to JustCite for easy access
Brave uses the same extension format as Chrome:
-
Download the repository (same as Chrome steps above)
-
Open Brave Extensions:
- Navigate to
brave://extensions/in your address bar - Or go to Menu (โฐ) โ Extensions โ Manage Extensions
- Navigate to
-
Enable Developer Mode:
- Toggle "Developer mode" switch in the top right corner
-
Load the Extension:
- Click "Load unpacked"
- Select the
chromefolder from the extracted files
-
Pin the Extension (optional):
- Click the puzzle piece icon in Brave's toolbar
- Click the pin icon next to JustCite
TBD - Coming Soon!
- Navigate to any webpage you want to cite
- Click the JustCite extension icon in your browser toolbar
- The extension will automatically extract available metadata
- Select your desired citation style (BibTeX, APA, MLA, etc.)
- Choose the source type (Webpage, Article, Book, etc.)
- Expand "Source Details" to edit any fields if needed
- Click "Copy" to copy to clipboard
When viewing an arXiv preprint, JustCite automatically checks if a peer-reviewed version exists:
- A loading indicator shows "Checking for published version..."
- If found, a version switcher appears with two options:
- arXiv: Cite the preprint version
- Published: Cite the peer-reviewed publication with proper journal/conference info
- Click to toggle between versions - all metadata fields update automatically
- The published version includes DOI, journal name, volume, pages, and publication venue
This helps ensure you're citing the most appropriate version of a paper!
Click the โ๏ธ settings icon to customize:
Configure how BibTeX citation keys are generated using these tokens:
auth.lower- First author's last name, lowercaseAuth- First author's last name, capitalizedyear- Publication year (4 digits)shortyear- Publication year (2 digits)title.lower- First word of title, lowercaseshorttitle(n,m)- First n words, max m chars each
Default format: auth.lower + shorttitle(3,3) + year
Example output: smith_mac_lea_2024
JustCite can save citations directly to your Zotero library:
-
Get your Zotero API Key:
- Go to zotero.org/settings/keys
- Click "Create new private key"
- Give it a name (e.g., "JustCite")
- Enable "Allow library access" and "Allow write access"
- Copy the generated key
-
Get your User ID:
- Your numeric User ID is shown at the top of the keys page
-
Configure in JustCite:
- Open JustCite settings (โ๏ธ icon)
- Scroll to "Zotero Integration"
- Paste your API Key and User ID
- Click "Test Connection" to verify
-
Save to Zotero:
- Click the "Zotero" button in the main view
- Select a collection/folder (optional)
- Click "Save to Zotero"
- Sync your Zotero desktop client to see the new item
JustCite extracts metadata from:
- Open Graph tags (
og:title,og:site_name, etc.) - Citation meta tags (
citation_title,citation_author,citation_doi, etc.) - Dublin Core tags (
dc.title,dc.creator, etc.) - JSON-LD structured data
- Standard HTML elements (
<title>,<time>, etc.)
justcite/
โโโ chrome/
โ โโโ manifest.json # Extension manifest (Manifest V3)
โ โโโ popup.html # Extension popup UI
โ โโโ popup.css # Styles (Material Design)
โ โโโ popup.js # Popup logic & Zotero integration
โ โโโ contentScript.js # Page metadata extraction
โ โโโ citationFormatter.js # Citation formatting engine
โ โโโ icons/ # Extension icons
โโโ safari/
โ โโโ JustCite.xcodeproj/ # Xcode project file
โ โโโ Shared (App)/ # Shared app resources
โ โโโ Shared (Extension)/ # Safari extension handler
โ โโโ macOS (App)/ # macOS-specific app files
โ โโโ macOS (Extension)/ # macOS extension config
โ โโโ iOS (App)/ # iOS-specific app files
โ โโโ iOS (Extension)/ # iOS extension config
โโโ README.md
- Google Chrome browser
- Basic knowledge of Chrome extension development
- Edit the source files in the
chrome/directory - Go to
chrome://extensions/ - Click the refresh icon on the JustCite extension card
- Test your changes
The citationFormatter.js module handles all citation formatting logic. To add a new citation style:
- Add a new format method (e.g.,
toVancouver()) - Add the style option to the dropdown in
popup.html - Update the
format()method switch statement
@online{smith_mac_lea_2024,
author = {John Smith},
title = {Machine Learning Fundamentals},
year = {2024},
url = {https://example.com/article},
publisher = {Example}
}Smith, J. (2024). Machine learning fundamentals. Example. https://example.com/article
Smith, John. "Machine Learning Fundamentals." Example, 2024, https://example.com/article.
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Inspired by Zotero and its web connector
- Material Design icons from Google Fonts
- Inter and JetBrains Mono fonts
- Generated with the help of AI coding assistants
Made with โค๏ธ for researchers, students, and anyone who needs quick citations.



