Inhalte aufnehmen
lore ingest <path|url>
lore ingest-sessions [framework|all]
Unterstützte Formate
| Format | Methode |
|---|---|
.md, .txt | Direkt |
.html | rehype-parse |
.json, .jsonl | JSON-Parser (normalisierte unterstützte Chat-Exports automatisch) |
.pdf, .docx, .pptx, .xlsx, .epub | Replicate marker |
Bilder (.png, .jpg, .jpeg, .webp, .gif, .bmp) | Replicate vision |
| URLs (Webseiten) | Cloudflare BR /markdown-Endpunkt oder Jina r.jina.ai |
URLs (Dokumente: .pdf, .docx, .pptx, .xlsx, .epub) | Temporärer Download → Replicate Marker |
URLs (Bilder: .png, .jpg, .jpeg, .webp, .gif, .bmp) | Temporärer Download → Replicate Vision |
| Video-URLs | yt-dlp-Untertitel |
Alle aufgenommenen Inhalte werden in .lore/raw/<sha256>/ mit extracted.md und meta.json gespeichert.
Framework-Sitzungs-Aufnahme
Verwenden Sie lore ingest-sessions, um den Sitzungsverlauf aus dem lokalen Framework-Speicher zu ziehen.
Unterstützte Framework-Werte:
claude-codecodex-clicopilot-clicopilot-chatcursorgemini-cliobsidianall(Standard)
Beispiele:
# alle unterstützten Framework-Sitzungsspeicher aufnehmen
lore ingest-sessions all
# nur Claude Code-Sitzungen aufnehmen
lore ingest-sessions claude-code
# nur Discovery ausführen, keine Ingest-Schreibvorgänge
lore ingest-sessions all --dry-run --json
# Standard-Roots überschreiben und Scan-Größe begrenzen
lore ingest-sessions copilot-chat --root ~/Library/Application\ Support/Code/User/workspaceStorage --max-files 200
Flags:
--root <path...>: optionaler Root-Pfad zum Scannen statt Standardwerte--max-files <n>: max. entdeckte Dateien pro Framework (Standard500)--dry-run: nur entdecken, nicht aufnehmenjson: maschinenlesbare Zusammenfassung mitrunId/logPath
Aufnahme-Flow
flowchart LR
A[Eingabe-Pfad oder URL] --> B[Format-Erkennung]
B --> C[Formatspezifischer Parser]
C --> D[Markdown-Normalisierung]
D --> E[Hash- und Duplikatprüfung]
E -->|neu| F[Roh-Eintrag schreiben]
E -->|Duplikat| G[bestehenden Eintrag wiederverwenden]
Roh-Eintrag-Struktur
Jeder Roh-Eintrag wird gespeichert unter:
.lore/raw/<sha256>/
extracted.md
meta.json
original.<ext> (oder original.txt für URLs)
Beispiel meta.json:
{
"sha256": "<sha256>",
"format": "json",
"title": "Conversation Transcript",
"sourcePath": "/abs/path/to/file.json",
"date": "2026-04-09T00:00:00.000Z",
"tags": ["docs", "frontend", "decision"]
}
Ordnerbasierte Themen-Tags
Für lokale Datei-Aufnahme leitet Lore eine kleine Menge Themen-Tags aus Verzeichnisnamen ab und schreibt sie in meta.json.tags.
- Beispiele zugeordneter Kategorien sind
frontend,backend,docs,testing,tooling,infra,data,mobileunddesign. - URL-Aufnahme leitet keine Ordner-Tags ab und behält
tags: []. - Tags sind bewusst begrenzt und dedupliziert, sodass Metadaten präzise bleiben.
Lore wendet während der Aufnahme auch leichte Inhaltsheuristiken an und kann semantische Tags wie decision, preference, problem, milestone und emotional anhängen, wenn übereinstimmende Phrasen erkannt werden.
Duplikatbewusste Aufnahme
Lore berechnet einen SHA-256-Digest aus der ursprünglichen Eingabe und wiederverwendet vorhandene Roh-Einträge, wenn der Digest bereits existiert.
- Duplikat-Treffer-Verhalten:
- Parsen/Extrahieren wird übersprungen
- vorhandene Metadaten werden wiederverwendet
- manifest-mtime wird aktualisiert
- JSON-Ausgabe enthält
duplicate: truebei Duplikat-Treffern.
Beispiel:
lore ingest ./docs/architecture.md --json
Mögliche Ausgabefelder:
{
"sha256": "...",
"format": "md",
"title": "Architecture",
"duplicate": true
}
So funktioniert die Konversations-Export-Aufnahme (.json / .jsonl)
- Lore versucht zuerst, bekannte Konversations-Schemas zu erkennen.
- Wenn ein unterstütztes Schema erkannt wird, schreibt Lore den Inhalt in Transkript-Markdown um:
- Benutzerzüge werden mit
>präfigiert - Assistentenzüge werden als Antwortblöcke beibehalten
- Benutzerzüge werden mit
- Die aktuelle automatische Erkennung zielt auf gängige Exports wie role/content-Arrays, ChatGPT-Mapping-Exports und Codex/Claude-ähnliche JSONL-Logs ab.
- Wenn kein bekanntes Schema erkannt wird, fällt Lore auf generische JSON-zu-Markdown-Umwandlung zurück.
Unterstützte Konversations-Schema-Familien umfassen:
- role/content-Arrays (
[{"role":"user"...}]) - ChatGPT-Mapping-Exports
- Claude/Codex JSONL-Sitzungslogs
- Slack-ähnliche Nachrichten-Arrays
So funktioniert die PDF-Aufnahme
- Lore erkennt eine Dokument-Erweiterung wie
.pdfoder.docx. - Die Datei wird an Replicate Marker (
cuuupid/marker) zur Markdown-Extraktion gesendet. - Das normalisierte Markdown wird in
.lore/raw/<sha256>/extracted.mdgeschrieben. - Metadaten und Quellenverfolgung werden in
.lore/raw/<sha256>/meta.jsongeschrieben.
So funktioniert die Webdokument- und Bild-URL-Aufnahme
Lore erkennt die Dateierweiterung im URL-Pfad, um zwischen Webseiten, Dokumenten und Bildern zu unterscheiden.
Für Dokument-URLs (endend auf .pdf, .docx, .pptx, .xlsx, .epub):
- Lore lädt die Datei in ein temporäres Verzeichnis herunter.
- Sendet sie durch Replicate Marker — denselben Parser, der für lokale Dokumente verwendet wird.
- Räumt die temporäre Datei auf, sobald die Extraktion abgeschlossen ist.
- Speichert das Ergebnis in derselben Roh-Pipeline (
extracted.md+meta.json).
Für Bild-URLs (endend auf .png, .jpg, .jpeg, .webp, .gif, .bmp):
- Lore lädt das Bild in ein temporäres Verzeichnis herunter.
- Sendet es durch Replicate Vision — denselben Parser, der für lokale Bilder verwendet wird.
- Räumt die temporäre Datei auf, sobald die Extraktion abgeschlossen ist.
- Speichert das Ergebnis in derselben Roh-Pipeline.
Für alle anderen URLs (Webseiten, HTML, APIs usw.):
- Ruft Lore den Cloudflare Browser Run
/markdown-Endpunkt auf, wennLORE_CF_ACCOUNT_IDundLORE_CF_TOKENkonfiguriert sind — dies gibt JavaScript-gerendertes Markdown direkt zurück. Standardmäßig wartet Lore aufnetworkidle2(≤2 offene Verbindungen), bevor die Seite erfasst wird. Überschreiben Sie mit--cf-wait-until networkidle0für Seiten, die persistente Verbindungen öffnen. - Bei Cloudflare-Fehler oder fehlenden Anmeldedaten fällt Lore auf Jina
r.jina.aizurück.
Anforderungen: Dokument/Bild-URL-Aufnahme erfordert dieselben Anmeldedaten wie die lokale Dokument/Bild-Aufnahme — ein
TELEPAT_REPLICATE_TOKEN. Webseiten-Aufnahme erfordertLORE_CF_ACCOUNT_ID+LORE_CF_TOKENfür Cloudflare (Jina ist die anmeldefreie Alternative).
So funktioniert die YouTube/Video-Aufnahme
- Erkennt Lore bekannte Video-Hosts (z.B. YouTube, Vimeo, Twitch).
- Es versucht die Untertitelextraktion mit
yt-dlp. - Untertitel werden aus VTT in Klartext-Transkript bereinigt.
- Transkript-Ausgabe wird in derselben Roh-Pipeline gespeichert (
extracted.md+meta.json). - Wenn
yt-dlpnicht verfügbar ist oder Untertitel fehlen, fällt Lore auf URL-Aufnahme-Aufnahme zurück.
Extraktor-Herkunft:
meta.jsonfür Video-Aufnahmen enthält einextractor-Feld.extractor: yt-dlpzeigt an, dass die Untertitelextraktion erfolgreich war.- Fallback-Werte umfassen
url-fallback-no-ytdlp,url-fallback-no-subsundurl-fallback-empty-transcript.
Verwandte Referenzen
Fehlerbehebung
- JSON wurde nicht zu Transkript normalisiert:
- stellen Sie sicher, dass die Datei gültiges JSON/JSONL ist
- prüfen Sie, ob Datensätze sowohl user/assistant-artige Züge enthalten
- wenn das Schema unbekannt ist, fällt Lore bewusst auf generisches JSON-Markdown zurück
- Unerwartete Tags:
- Ordner-Tags sind pfadabgeleitet und begrenzt
- Heuristische Tags sind phrasengetrieben und konservativ
- URL-Aufnahme-Pfad:
- URLs, die auf Dokument- oder Bild-Erweiterungen enden (
.pdf,.docx,.pngusw.), lösen temporären Download und lokalen Parser-Routing aus — identisch mit lokaler Datei-Aufnahme - für Webseiten-URLs mit
LORE_CF_ACCOUNT_ID+LORE_CF_TOKENruft Lore den Cloudflare Browser Run/markdown-Endpunkt direkt auf - bei CF-Fehler oder fehlenden Anmeldedaten fällt Lore automatisch auf Jina-Abruf zurück
- URLs, die auf Dokument- oder Bild-Erweiterungen enden (