A powerful Chrome extension that allows users to extract text from selected content or an entire webpage, summarize it using an LLM API, and generate a downloadable PDF. Users can also email the summarized content.
- Extract selected text from a webpage
- Extract full-page text
- Summarize text using an LLM API
- Generate a PDF of the summarized content
- Option to email the summary
notes-maker/
│── manifest.json
│── popup.html
│── popup.js
│── background.js
│── content.js
│── popup.css
│── server.py
│── summarizer.py
│── pdf_generator.py
│── README.md
- Clone the repository:
git clone https://github.com/yourusername/notes-maker.git cd notes-maker - Load the extension in Chrome:
- Open chrome://extensions/ in your browser.
- Enable Developer mode (toggle in the top-right corner).
- Click Load unpacked and select the project folder.
- Install dependencies for the backend (Flask server):
cd server pip install -r requirements.txt - Set up environment variables:
- Create a
.envfile inside theserver/folder. - Add the following:
API_KEY=your-secret-api-key
- Create a
- Click the extension icon in Chrome.
- Choose Extract Selected or Extract Full Page.
- The extension sends the text to the backend for summarization.
- The summarized text appears with options to Download PDF or Send Email.
To keep your API key secure:
- Do not commit
.env(it is in.gitignore). - Manually set the API key in your deployment environment if hosting the server online.
- Use
os.getenv("API_KEY")inapp.pyto access the key securely.
The manifest.json file defines permissions and scripts:
{
"manifest_version": 3,
"name": "Notes Maker",
"version": "1.0",
"permissions": ["scripting", "activeTab", "storage"],
"background": { "service_worker": "background.js" },
"action": { "default_popup": "popup.html" },
"content_scripts": [
{
"matches": ["<all_urls>"],
"js": ["content.js"]
}
]
}- Fork the repo.
- Create a new branch:
git checkout -b feature-branch
- Commit changes and push:
git commit -m "Added new feature" git push origin feature-branch - Submit a pull request!
- If the extension does not work, check Chrome's Developer Console (
Ctrl + Shift + I> Console). - Ensure the Flask server is running before testing the extension.
- API key-related issues? Check
.envsetup and Flask logs.
- GitHub: kamalesh-2003
- LinkedIn: kamalesh-arugunta