A Chrome/Edge browser extension that allows you to right-click on arxiv.org links and save the papers as PDFs with properly cleaned filenames.
- π±οΈ Right-click context menu on arxiv.org paper links
- π Automatic PDF download with clean filenames
- π§Ή Smart filename cleaning - removes special characters like
:,/,\, etc. - π Download tracking - keeps count of saved papers
- π Paper title extraction from arxiv API
- β Visual indicators on arxiv.org pages showing saveable links
- π Save References - export a paper's references to CSV (via Semantic Scholar API)
- Also available as JSON via the context menu option "Save References (JSON)"
- Download or clone this repository to your local machine
- Open Chrome or Edge browser
- Navigate to extensions page:
- Chrome:
chrome://extensions/ - Edge:
edge://extensions/
- Chrome:
- Enable "Developer mode" (toggle in top-right corner)
- Click "Load unpacked" and select the extension folder
- The extension should now appear in your browser toolbar
To distribute this extension, you would need to:
- Create proper icon files (16x16, 32x32, 48x48, 128x128 pixels) and add them back to manifest.json
- Package the extension as a .zip file
- Submit to Chrome Web Store or Edge Add-ons store
- Visit arxiv.org and browse papers
- Right-click on any paper link (either abstract or PDF links)
- Select "Save Paper as PDF" from the context menu
- Choose save location when prompted
- The PDF downloads with a cleaned filename based on the paper title
On any arxiv.org paper page:
- Right-click anywhere on the page
- Choose "Save References" (CSV) or "Save References (JSON)"
- CSV includes: Title, Year, DOI, arXiv, URL; JSON includes metadata and references array
The extension works with these arxiv.org URL patterns:
https://arxiv.org/abs/2301.12345https://arxiv.org/pdf/2301.12345.pdf- Papers from any arxiv category (cs, math, physics, etc.)
The extension automatically cleans paper titles to create valid filenames:
- Removes special characters:
< > : " / \ | ? * - Replaces spaces with underscores
- Removes multiple consecutive underscores
- Limits filename length to 200 characters
- Falls back to paper ID if title extraction fails
Example:
- Original title:
"Attention Is All You Need: Transformers for NLP" - Cleaned filename:
Attention_Is_All_You_Need_Transformers_for_NLP.pdf
rightclick/
βββ manifest.json # Extension configuration
βββ background.js # Service worker (context menu, downloads)
βββ content.js # Content script (page enhancement)
βββ popup.html # Extension popup interface
βββ popup.js # Popup functionality
βββ icons/ # Extension icons (placeholder)
β βββ README.md
βββ README.md # This file
The extension requires these permissions:
- contextMenus: Create right-click menu items
- downloads: Initiate file downloads
- activeTab: Access current tab information
- storage: Store download statistics
- notifications: Show download status
- https://arxiv.org/\*: Access arxiv.org pages
- https://export.arxiv.org/\*: Fetch paper metadata from arxiv API
- https://api.semanticscholar.org/*: Fetch references for a paper
- Background Script: Handles context menu creation and PDF downloads
- Content Script: Runs on arxiv.org pages to enhance links
- Popup: Provides user interface and statistics
- Manifest V3: Uses modern extension format for security
- Chrome or Edge browser
- Basic understanding of JavaScript and browser extensions
- Make changes to the extension files
- Go to
chrome://extensions/oredge://extensions/ - Click the refresh button for the extension
- Test your changes on arxiv.org
Chrome/Edge require the version in manifest.json to increase for every upload. Use the provided script to bump automatically and add a timestamped version_name:
bump-version.cmdThis will:
- Increment the last segment (e.g., 1.0.0.15 β 1.0.0.16)
- Add/update
version_namewith a UTC timestamp (e.g., v1.0.0.16 2025-09-20T18:45:10Z)
Test the extension on various arxiv.org pages:
- Recent papers: https://arxiv.org/list/cs/recent
- Paper abstract page: https://arxiv.org/abs/2301.12345
- PDF link: https://arxiv.org/pdf/2301.12345.pdf
- Check if extension is enabled in browser extensions page
- Verify permissions are granted during installation
- Refresh the arxiv.org page after installing the extension
- Check browser console for error messages (F12 β Console)
- Check browser download settings - ensure downloads are allowed
- Verify arxiv.org is accessible and not blocked
- Try a different paper link - some very old papers may not have PDFs
- Check popup statistics to verify extension is tracking attempts
- Right-click directly on paper links (not just text)
- Ensure you're on arxiv.org domain
- Try refreshing the page and right-clicking again
- Check if other extensions are interfering with context menus
- Icons: Icon references removed to avoid loading errors - extension uses browser default icon
- Old papers: Very old arxiv papers may not have PDF versions available
- Network errors: No retry mechanism for failed API requests
- Filename conflicts: No automatic handling of duplicate filenames
- Custom filename templates
- Batch download multiple papers
- Integration with reference managers
- Support for other academic paper sites
- Download progress indicators
- Better error handling and user feedback
This extension:
- β Only accesses arxiv.org and export.arxiv.org
- β Stores only download count locally
- β Does not track or transmit user data
- β Open source and auditable
This project is open source. Feel free to modify and distribute according to your needs.
- Fork this repository
- Create a feature branch
- Make your changes
- Test thoroughly on arxiv.org
- Submit a pull request
Version: 1.0.0
Last Updated: September 2025
Tested On: Chrome 115+, Edge 115+