Tageszeitung
Portable SKILL.md library for Claude Code, Codex-compatible agents, BACH, and local-first LLM workflows
npx -y skills add ellmos-ai/skills --skill tageszeitungAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 2 stars2 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Erstellt eine personalisierte Tageszeitung aus RSS-Feeds und Web-Quellen. Portiert aus dem BACH-Newssystem (news.py + newspaper_generator.py). Eigener SQLite-Store (kein Origin-DB). feedparser optional — XML-Fallback via stdlib. PDF-Export via Edge Headless (msedge.exe).
SKILL.md
5.2 KB, as published. Nobody here has run it
Zweck
Aus konfigurierten RSS-Feeds und Web-Quellen Artikel abrufen, nach Kategorien
sortieren und als HTML/PDF-Tageszeitung rendern. Artikel werden lokal in
tageszeitung/store.db gespeichert und als gelesen markiert.
Trigger
| Phrase | Aktion |
|---|---|
| „Erstell meine Tageszeitung" | Artikel abrufen + PDF rendern |
| „Tageszeitung für heute" | Heutige Zeitung rendern |
| „Füge Feed hinzu [URL]" | RSS-Quelle registrieren |
| „Zeig meine Quellen" | Quellen-Liste ausgeben |
| „Fetch News" | Alle Quellen abrufen (kein Render) |
Workflow
- Quellen prüfen: Alle aktiven Quellen aus
news_sourceslesen. - Fetch: RSS via feedparser (oder xml.etree-Fallback), Web via urllib.
- Deduplizierung: UNIQUE(source_id, url) verhindert Duplikate.
- Render: Ungelesene Artikel nach Kategorie gruppieren → HTML → PDF.
- Liefern: HTML/PDF im Ausgabe-Ordner ablegen (konfigurierbarer Pfad).
CLI-Einstieg
# Quelle hinzufügen
python tageszeitung_core.py add-source "Heise" rss https://www.heise.de/rss/heise-atom.xml --category tech
# Alle Quellen abrufen
python tageszeitung_core.py fetch
# Tageszeitung rendern (HTML + PDF wenn Edge verfügbar)
python tageszeitung_core.py render [--date 2026-06-22] [--out /pfad/]
# Quellen auflisten
python tageszeitung_core.py sources
# Ungelesene Artikel
python tageszeitung_core.py items [--limit 50] [--category tech]
# Artikel als gelesen markieren
python tageszeitung_core.py read <item_id>
# Alternativer Store (z.B. für Tests)
python tageszeitung_core.py --store /tmp/t.db sources --dry-run
Store
| Eigenschaft | Wert |
|---|---|
| Typ | SQLite |
| Pfad (Standard) | skills/assist/tageszeitung/store.db |
| Override | --store <pfad> oder Env TAGESZEITUNG_STORE |
| Tabellen | news_sources, news_items |
Schema (aus BACH news.py portiert)
CREATE TABLE IF NOT EXISTS news_sources (
id TEXT PRIMARY KEY,
name TEXT NOT NULL,
type TEXT NOT NULL DEFAULT 'rss', -- rss | web
url TEXT NOT NULL UNIQUE,
category TEXT DEFAULT 'Allgemein',
schedule TEXT DEFAULT 'daily',
is_active INTEGER DEFAULT 1,
last_fetched TEXT,
fetch_count INTEGER DEFAULT 0,
error_count INTEGER DEFAULT 0,
last_error TEXT,
created_at TEXT NOT NULL
);
CREATE TABLE IF NOT EXISTS news_items (
id TEXT PRIMARY KEY,
source_id TEXT NOT NULL REFERENCES news_sources(id),
title TEXT NOT NULL,
content TEXT,
summary TEXT,
url TEXT,
author TEXT,
published_at TEXT,
fetched_at TEXT NOT NULL,
is_read INTEGER DEFAULT 0,
category TEXT,
UNIQUE(source_id, url)
);
Haltung
- feedparser wird bevorzugt; ohne feedparser greift ein xml.etree-Fallback für einfache RSS 2.0-Feeds.
- PDF-Erzeugung erfordert
msedge.exeim System-PATH oderMSEDGE_PATH-Env. Ohne Edge wird nur HTML gerendert. - Maximale Artikel pro Kategorie: konfigurierbar via
assist/prefs.json(tageszeitung_max_per_category, Standard: 5).
Datenschutz
- Artikel-Inhalte bleiben lokal in
store.db. - Keine externen Analyse-Dienste — nur die konfigurierten RSS-/Web-Quellen werden aufgerufen.
Verwandte Ressourcen
- BACH
hub/news.py— Origin (read-only) - BACH
hub/_services/newspaper/newspaper_generator.py— Origin (read-only)
Changelog
| Version | Datum | Änderung |
|---|---|---|
| 0.1.0 | 2026-06-22 | Erstanlage — BACH-Schema portiert, eigener Store, feedparser optional |