A powerful Chrome extension that automatically summarizes academic papers from arXiv using Google's Gemini AI. Get structured, easy-to-understand summaries of complex research papers with just one click.
- 📄 PDF Text Extraction: Automatically extracts text from arXiv papers
- 🤖 AI-Powered Summaries: Uses Google's Gemini AI for high-quality, structured summaries
- 📝 Markdown Formatting: Clean, well-formatted summaries with proper headings and sections
- 🎯 Structured Output: Organized summaries covering:
- Title and Authors Overview
- Key Research Objectives
- Methodology
- Main Findings
- Significant Contributions
- Practical Applications
- Limitations and Future Work
- 🖱️ User-Friendly Interface:
- Draggable popups
- Loading animations
- Clean, modern design
- Easy paper selection
demo.1.mp4
- Node.js (v14 or higher)
- npm (comes with Node.js)
- Google Chrome (or any Chromium browser)
- Go to releases, select the newest version.
- Follow instructions given.
-
Clone the Repository
git clone https://github.com/Talha-Ali-5365/Paper_Summarizer.git cd Paper_Summarizer
-
Install Dependencies
npm install
-
Build the Extension
npm run build
-
Load in Chrome
- Open Chrome browser
- Go to
chrome://extensions/
- Enable "Developer mode" (toggle in top-right)
- Click "Load unpacked"
- Select the
dist
folder from your project directory
- Get your API key for either: Gemini 2.0 Flash Thinking (Google AI Studio), DeepSeek R1 (OpenRouter), OpenAI o3-mini (GitHub models)
- When on arXiv, click the gear (⚙) icon.
- Select your choice of model and enter your API key.
- Visit any paper on arXiv.org
- The extension icon will appear in your Chrome toolbar
- Click on a paper in the search results
- Click "Summarize Selected Paper"
- Wait for the summary to be generated
- View the formatted summary in a draggable popup
PaperSummarizer/
├── src/ # Source code
│ ├── app.js # Core functionality & API integration
│ ├── content.js # UI/UX & content script
│ ├── popup.js # Extension popup
│ └── background.js # Background script
├── public/ # Static files
│ ├── manifest.json # Extension configuration
│ ├── popup.html # Popup interface
│ └── styles.css # Global styles
├── package.json # Dependencies & scripts
└── webpack.config.js # Build configuration
-
Start Development Server
npm run dev
This will watch for changes and rebuild automatically.
-
Making Changes
- Edit files in the
src
directory - The extension will rebuild automatically
- Refresh the extension in Chrome to see changes
- Edit files in the
-
Building for Production
npm run build
- Check the Chrome console for errors
- Extension logs will appear in the console
- API response data is logged for debugging
- Check network requests for API calls
-
PDF Processing (app.js)
- Uses PDF.js for text extraction
- Handles large documents by chunking
- Manages API communication
-
UI/UX (content.js)
- Creates and manages popups
- Handles user interactions
- Implements loading states
- Formats summaries using markdown
-
Extension Configuration (manifest.json)
- Permissions
- Content scripts
- Resource access
pdf.js
: PDF text extractionaxios
: API requestsmarked
: Markdown renderingwebpack
: Building and bundling
-
Extension Not Loading
- Verify the
dist
folder exists - Check manifest.json for errors
- Ensure Developer mode is enabled
- Verify the
-
PDF Not Processing
- Check console for PDF.js errors
- Verify file permissions
- Ensure PDF URL is accessible
-
API Errors
- Verify API key is correct
- Check rate limits
- Monitor network requests
- Fork the repository
- Create a feature branch
- Make your changes
- Submit a pull request
This project is licensed under the MIT License - see the LICENSE file for details.
For issues, questions, or contributions:
- Open an issue on GitHub
- Submit a pull request
- Contact the maintainers
Built with ❤️ for researchers and students