Skip to content

philffm/ai-summary-helper

Repository files navigation

AI Summary Helper

You are on the hunt for interesting articles around the web, open 100 tabs and end up… not reading them. Sounds familiar?

Summary Helper allows to summarize articles with a custom prompt - so it can be as tailored to your language, profession or point of view as you define it. The summary gets inserted in the content area itself. This way you can easily forward the artice including the generated summary to your Kindle device e.g. using Reabbles Send-to-Kindle tool.

AI Summary Helper - Instantly summarize all the web content your browse | Product Hunt Chrome Web StoreCreate Bookmarklet

On the go I am way more likely to engage with the content I intentionally selected earlier. The tailored briefing then helps me to recall why I chose the article, suggests me books and other media related to it.

AI Summary Helper

Variant A: Create your Bookmarklet

  • Browser & OS-agnostic, even works on iOS

Demo

Variant B: Download Chrome Browser Plugin

Overview

This project includes two components:

  • Chrome Extension: A browser plugin for generating AI summaries of web content.
  • Bookmarklet Generator: A tool for creating bookmarklets that provide AI summaries.
Bookmarklet Browser Extension
OpenAI
Mistral AI
Ollama (Local)
Custom Prompt 🟠 Initially set base prompt ✅ Base + custom prompt per request
Cross Platform

Project Structure

  • chrome-extension/: Contains the files for the Chrome extension.
  • bookmarklet-generator/: Contains the files for the bookmarklet generator.
  • privacy.md: Privacy policy for the project.

Installation and Usage

Chrome Extension

  1. Navigate to the chrome-extension directory and follow the instructions in the readme.md.

Bookmarklet Generator

  1. Navigate to the bookmarklet-generator directory and follow the instructions in the readme.md.

Feature Agenda 🚀

Bookmarklet generator generally ships faster since it is faster to iterate on.

Browser Plugin

Bookmarklet Generator

  • Save API Key in Browser
  • iOS compatibility
  • Select dom element by clicking to make insertion-point be definable by user
  • Add status state
  • Support other providers (on-device? What are some local LLMs we could use for this / API through localhost?)
    • Ollama
  • Include update mechanism (make the bookmarklet check this repo for a newer script)

Privacy Policy

The privacy policy for this project is available in the Privacy section.

License

2024 Phil Wornath - MIT License

Troubleshooting

Configuring CORS for Ollama (The "Failed to Fetch" Error)

It looks like you've hit the classic CORS (Cross-Origin Resource Sharing) wall. Even though the configuration is correct, the browser blocks requests from websites (like arxiv.org) to your local Ollama instance for security reasons because Ollama isn't explicitly saying "I allow requests from this website."

Since the extension's content script runs directly on the page, its "Origin" is the website you are visiting, and Ollama rejects it by default.

To fix this, you need to set the OLLAMA_ORIGINS environment variable. Here is the breakdown based on your operating system:

1. Windows (Most Common Issue)

  1. Quit Ollama entirely. Look for the Ollama icon in your System Tray (bottom right, near the clock), right-click it, and select Quit.
  2. Open the Start Menu, search for "Edit the system environment variables," and open it.
  3. Click Environment Variables.
  4. Under User variables, click New:
    • Variable name: OLLAMA_ORIGINS
    • Variable value: *
  5. Click OK on all windows.
  6. Crucial: Open a new Terminal or Command Prompt and type ollama serve (or simply relaunch the Ollama app from the Start menu).

2. MacOS

  1. Quit Ollama from the Menu Bar icon.
  2. Open Terminal and run:
    launchctl setenv OLLAMA_ORIGINS "*"
  3. Restart the Ollama application.

Note: To make this permanent, you usually need to add that line to your ~/.zshrc or ~/.bash_profile.

3. Linux (Systemd)

If you are running Ollama as a service:

  1. Run sudo systemctl edit ollama.service.
  2. Add these lines under the [Service] section:
    [Service]
    Environment="OLLAMA_ORIGINS=*"
  3. Save and exit, then run:
    sudo systemctl daemon-reload
    sudo systemctl restart ollama

🧐 Why is this happening? Browsers follow a "Same-Origin Policy." When the extension tries to fetch localhost:11434, the browser sends a "Preflight" request (an OPTIONS check) to see if the server allows it. If OLLAMA_ORIGINS isn't set, Ollama doesn't include the Access-Control-Allow-Origin header in its response, and the browser kills the request. Setting it to * tells Ollama to accept requests from any origin.

Use Ollama via HTTPS (Advanced)

If you are running Ollama on a remote server behind an HTTPS proxy (like Nginx, Apache, or Cloudflare), you normally do not need to set OLLAMA_ORIGINS on the server itself. Instead, ensure your proxy is configured to allow CORS headers:

  • Why? Browsers block "Mixed Content" (requesting HTTP from an HTTPS site). Using an HTTPS endpoint for Ollama solves this.
  • How? Add Access-Control-Allow-Origin: * to your proxy configuration settings.

For more detailed guidance, refer to the comprehensive guide on handling CORS settings in Ollama here.

Compatible Tools

Tools that are compatible with AI Summary Helper. Feel free to add your own tool to the list.

Name Description URL
Reabble Send to Kindle Send your summarized articles to Kindle. https://send.reabble.com/
Web Clipper Clip your summarized web pages to different places (e.g. OneNote, Notion, GitHub etc.) https://clipper.website/
Inoreader RSS Feed Reader https://www.inoreader.com/

About

Fetch and insert AI-generated summaries of web content. Combine with Send To Kindle for quick summaries and full articles. Support for Mistral and OpenAI

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages