Skip to content

danielfleischer/elfeed-ai

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

elfeed-AI

GNU Emacs MELPA

AI-powered article summarization for elfeed, using gptel.

Mark articles in the elfeed search buffer, press S, and get concise summaries in a dedicated Org buffer — powered by any LLM backend that gptel supports (Claude, ChatGPT, Gemini, Ollama, etc.).

Features

  • Mark/unmark individual entries with m / u (or unmark all with U)
  • Summarize multiple articles in one shot, asynchronously
  • Output is a clean Org buffer with one heading per article, including feed name, date, and URL as properties
  • Full gptel integration: configure model, backend, temperature, system prompt and more via g inside the menu
  • The Elfeed-AI directive is registered in gptel’s directive list so it appears alongside your other directives
  • Summaries are filled/reflowed with fill-region for readable output
  • Summarizes the RSS/Atom feed content as stored by elfeed — no live web crawling; works best with feeds that include full article text

./assets/usage.png

./assets/summary.png

Requirements

Installation

MELPA

(use-package elfeed-ai
  :ensure t
  :hook (elfeed-search-mode . elfeed-ai-mode))

straight.el / use-package

(use-package elfeed-ai
  :straight (:host github :repo "danielfleischer/elfeed-ai")
  :hook (elfeed-search-mode . elfeed-ai-mode))

;; Example specifying the version-control backend explicitly
(use-package elfeed-ai
  :vc (elfeed-ai :url "https://github.com/danielfleischer/elfeed-ai")
  :hook (elfeed-search-mode . elfeed-ai-mode))

Manual

Clone the repo, add it to your load-path, then:

(require 'elfeed-ai)
(add-hook 'elfeed-search-mode-hook #'elfeed-ai-mode)

Usage

  1. Open elfeed with M-x elfeed
  2. Navigate to entries and press m to mark them for summarization (the summarize tag appears on each marked entry)
  3. Press S to open the elfeed-ai menu
  4. Optionally press g to open the full gptel menu and configure the model, backend, system prompt, temperature, etc.
  5. Press s to summarize — results appear asynchronously in *elfeed-ai*

Keybindings

These are active when elfeed-ai-mode is enabled:

KeyCommandDescription
melfeed-ai-markMark entry for summarization
uelfeed-ai-unmarkUnmark entry
Uelfeed-ai-unmark-allUnmark all entries in current search
Selfeed-ai-menuOpen the summarization transient
selfeed-ai-summarize(inside menu) Run summarization
ggptel-menu(inside menu) Configure gptel

Configuration

System prompt

(setq elfeed-ai-system-prompt
      "Summarize this article in 3 bullet points. Be concise.")

Output buffer name

(setq elfeed-ai-buffer-name "*my-summaries*")

Choosing a model

Configure gptel as usual. To use a specific model for elfeed-ai, set it via the gptel menu (Sg) before summarizing — the choice is reflected in the #+MODEL: header of the output buffer.

License

GPLv3. See ./LICENSE or the header of elfeed-ai.el.

About

Summarize elfeed articles using gptel.

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors