Exporter laden
DokumentationCLI

Die Kommandozeile exporter

Führen Sie Ihre Exporte aus dem Terminal, aus cron, aus Backup-Werkzeugen und über Agenten aus.

exporter ist die Mac App Exporter, ohne Fenster ausgeführt. Sie nutzt dieselben Verbindungen, Exportordner, dieselbe Auswahl und dieselben Einstellungen, die Sie in der App eingerichtet haben, und schreibt in dasselbe Exportprotokoll. Sie funktioniert, während die App geschlossen ist, und fragt nie nach: Fehlt etwas, bricht der Lauf mit Exit-Code 2 und einer Zeile ab, die sagt, was zu tun ist. Nur macOS.

Installation

  1. Installieren Sie Exporter aus dem Mac App Store (Download) und öffnen Sie es.
  2. Verbinden Sie eine App (Apple Notizen, Bear, Logseq, Kontakte, Nachrichten oder Bildschirmzeit) oder einen Ordner für Dokumente und wählen Sie ihren Exportordner (Erste Schritte). Diese Freigaben lassen sich nur in der App erteilen.
  3. Klicken Sie auf der Karte Kommandozeile der App auf „Installationsbefehl kopieren“ und fügen Sie ihn einmal im Terminal ein.

Die App läuft in der Sandbox und kann nicht in Ihren PATH schreiben, deshalb ist der letzte Schritt ein Einfügen. Die Zeile installiert exporter in /opt/homebrew/bin, wenn dieser Ordner existiert und Ihnen gehört (ohne sudo), sonst mit sudo in /usr/local/bin. Erneutes Einfügen ist unbedenklich; es ersetzt, was dort war. exporter help install gibt die Zeile für Ihren Mac aus.

Quellen

--source nimmt einen dieser Werte an:

Quelle auch akzeptiert schreibt
apple apple-notes, applenotes, notes Markdown oder HTML
bear Markdown oder HTML
logseq immer Markdown
contacts apple-contacts, addressbook immer Markdown
messages imessage, chats, conversations immer Markdown
screentime screen-time, usage immer Markdown, eine Datei pro Tag
documents docs, files, pdf die auf der Karte Dokumente angekreuzten Formate

Formate

--format nimmt markdown (oder md) oder html an; Groß- und Kleinschreibung spielen keine Rolle. Alles andere bricht mit error: --format pdf: expected markdown | html und Exit 64 ab.

  • ohne das Flag schreibt sync jede App in dem Format, das auf ihrer Karte eingestellt ist (Apple Notizen und Bear haben jeweils ein eigenes), und export schreibt in der Einstellung der App, die es exportiert; exporter help sync und exporter help export zeigen die aktuellen
  • Logseq, Kontakte, Nachrichten und Bildschirmzeit sind immer Markdown, und Dokumente schreibt die auf seiner Karte angekreuzten Formate, deshalb wird --format html bei ihnen mit einem Hinweis ignoriert: note: logseq export is always markdown, so --format is ignored for this source.
  • Apple Notizen schreibt eine .html-Seite pro Notiz (das HTML-Format), Anhänge nach attachments/ daneben kopiert und verlinkt, keine Front Matter. Das HTML von Bear ist der reine Text der Notiz in einem <pre>, ohne Gestaltung, und Verweise auf Anhänge bleiben Markdown-Text: Die Dateien werden kopiert, nicht verlinkt
  • der MCP-Server liest nur Markdown-Dateien, ein Export, der nur HTML ist, ist für ihn also unsichtbar
  • Apple Notizen und Bear schreiben ein Format pro Lauf; nur Dokumente schreibt beide in einer Synchronisierung. Ein Lauf entfernt nur alte Dateien seines eigenen Formats, ein Wechsel lässt also die Dateien des anderen Formats im Ordner. Für beide Formate geben Sie jedem einen eigenen Ordner:
exporter export --dest ~/Backups/notes-md   --format markdown
exporter export --dest ~/Backups/notes-html --format html

sync

Führt den Export, den Sie in der App eingerichtet haben, einmal inkrementell in die Exportordner der App aus.

exporter sync [--source <source>]... [--format markdown|html] [--full] [--json] [--quiet]
Flag was es tut Standard
--source <source> nur diese App, wiederholbar jede verbundene App; nicht verbundene werden übersprungen
--format markdown|html nur für diesen Lauf, Ihre Einstellung in der App bleibt unverändert. Es landet im selben Exportordner wie das andere Format; um beide zu behalten, exportieren Sie jedes mit export --dest in einen eigenen Ordner Ihre Einstellung in der App
--full alles neu exportieren. Entfernt vor dem Schreiben nur die Dateien, die Exporter geschrieben hat; alles andere im Exportordner bleibt aus
--json eine maschinenlesbare Zusammenfassung aus
--quiet, -q nur Fehler aus
exporter sync --source apple
apple notes: exporting…
apple notes: 1204 of 1204 exported · 3 removed · 18.2s · markdown → /Users/me/Documents/notes

Die Zusammenfassungszeile lautet <source>: <succeeded> of <selected> exported, dann, falls vorhanden, N failed, N removed (Dateien von Einträgen, die gelöscht, umbenannt oder verschoben wurden), N attachment issues, dann die Dauer, das Format und der geschriebene Ordner.

Läuft die App, exportiert sync nichts, endet mit 0 und gibt Exporter is running: real-time sync is live, the export root is already current. aus.

export

Ein einmaliger Export in einen Ordner Ihrer Wahl, für Schnappschüsse und Skripte. Er läuft problemlos, während die App geöffnet ist.

exporter export --dest <folder> [--source <source>] [--format markdown|html] [--organize folders|tags|smart] [--folder "Name"]... [--tag name]... [--dry-run] [--json] [--quiet]
Flag was es tut Standard
--dest <folder> erforderlich. Muss in einem Ordner liegen, der auf der Karte Kommandozeile der App freigegeben ist („Ordner hinzufügen“). Eine Freigabe für ~/Backups gilt für jeden Ordner darunter keiner
--source <source> die zu exportierende App apple
--format markdown|html das Format für diesen Lauf Ihre Einstellung in der App
--organize folders|tags|smart nur Apple Notizen: wie Notizen in Ordnern angeordnet werden Ihre Einstellung in der App
--folder "Name" nur dieser Ordner aus Apple Notizen, wiederholbar, Name ohne Beachtung der Groß- und Kleinschreibung die in der App gespeicherte Auswahl
--tag name nur dieses Tag, wiederholbar, Apple Notizen oder Bear die in der App gespeicherte Auswahl
--dry-run ausgeben, was exportiert würde, nichts schreiben aus
--json, --quiet (-q) wie bei sync aus

Ohne --folder oder --tag exportieren Apple Notizen und Bear die in der App gespeicherte Auswahl. Logseq exportiert den ganzen Graphen, Kontakte jede Karte, Nachrichten jede Unterhaltung, Bildschirmzeit jeden Tag; Filter werden bei ihnen mit einem Hinweis ignoriert.

exporter export --dest ~/Backups/notes-$(date +%F)
exporter export --dest ~/Backups/work --folder "Work" --format html
exporter export --dest ~/Backups/bear --source bear --tag journal
exporter export --dest ~/Backups/people --source contacts
exporter export --dest ~/Backups/papers --source documents
exporter export --dest ~/Backups/notes --dry-run
would export 100 apple notes · markdown → /Users/me/Backups/notes

list

exporter list sources|folders|tags|dests [--source apple|bear] [--json]
Liste was sie zeigt JSON
sources jede App, verbunden oder nicht, mit ihrer Anzahl. Dokumente wird nicht aufgeführt [{"source": "apple", "connected": true, "notes": 1204}, {"source": "messages", "connected": true, "conversations": 1532}, {"source": "bear", "connected": false}], mit pages für Logseq, contacts und days für screen-time
folders Ordner in Apple Notizen mit der Zahl ihrer Notizen, nach Tiefe eingerückt. --source bear ist ein Fehler (Exit 64) [{"name": "Work", "notes": 42, "level": 0}]
tags Tags mit Anzahl, standardmäßig Apple Notizen, Bear mit --source bear [{"name": "journal", "notes": 12}]
dests Ordner, in die export --dest schreiben darf, dazu der Exportordner jeder App [{"path": "/Users/me/Backups", "kind": "granted"}], wobei kind den Wert granted, granted, volume not mounted oder export root (apple-notes) hat
exporter list folders --json
[{"name": "Work", "notes": 42, "level": 0}]

status

exporter status [--json]
apple notes    connected · last export 2026-09-11 03:00
bear           not connected
logseq         not connected
contacts       not connected
messages       connected · last export 2026-09-11 03:01
screen time    not connected
documents      not connected
root (apple-notes)  /Users/me/Documents/notes
root (messages)  /Users/me/Documents/messages
destinations   /Users/me/Backups
version        3.24 · free · 100 of 100 free notes used
messages       free · 10 of 10 free conversations used
app            not running

Mit --json: ein Objekt pro App, benannt apple-notes, bear, logseq, contacts, messages, screen-time, documents, jeweils {"connected": true, "lastExport": "2026-09-11 03:00"} (null, wenn nie exportiert); destinations (Pfade); tier (full oder free, die Freischaltung von Apple Notizen) und freeNotesUsed; contactsTier und freeContactsUsed; messagesTier und freeConversationsUsed; screenTimeTier und freeDaysUsed; appRunning. Zeiten sind Ortszeit, yyyy-MM-dd HH:mm.

log

Die letzten Exportläufe, die neuesten zuerst: dasselbe Protokoll, das die App zeigt, aus jedem Exportordner und jedem freigegebenen --dest-Ordner. Datierte Ordner, die unter einem freigegebenen Ordner angelegt wurden, werden nicht gelesen; ihr Protokoll liegt in <folder>/.exporter/.

exporter log [--last N] [--json]
Flag was es tut Standard
--last N wie viele Läufe 10
--json ein Objekt pro Lauf aus
2026-09-11 03:00  apple-notes   1204/1204 exported  3 removed  clean  → /Users/me/Documents/notes

JSON: [{"source", "finishedAt", "selected", "succeeded", "failed", "format", "status", "destination", "prunedFiles", "runError"}]. status ist clean, warnings (fehlende Anhänge) oder failures.

doctor

Prüft, ob der Export ohne Fenster funktioniert, und gibt eine Zeile pro Prüfung aus: ok, FAIL mit einer fix:-Zeile darunter, warn oder -- als Information.

exporter doctor

Es prüft, ob die Datenbank jeder verbundenen App lesbar und ihr Exportordner beschreibbar ist, ob jede gespeicherte Ordnerfreigabe aufgelöst wird, ob jeder --dest-Ordner beschreibbar ist, den Index und den installierten Befehl. Am Ende stehen die Versionsstufe, ob die App läuft, und der letzte Absturz, falls es einen gab. Exit 0 gibt all good. aus, Exit 2 gibt N problem(s) found. aus.

report

Gibt einen Diagnosebericht aus (App-Version, macOS und Hardware, Verbindungsstatus, letzte Läufe, letzter Absturz; keine Notizinhalte) und kopiert ihn in die Zwischenablage.

exporter report [--send] [--email <addr>]
Flag was es tut Standard
--send sendet den Bericht an uns und gibt sent. oder offline: queued, will send on the next run or app launch. aus aus
--email <addr> fügt Ihre Adresse hinzu, damit wir antworten können keine

Hilfe und Version

  • exporter help [topic]: die Themen sync, export, list, status, log, doctor, report, cron, install. Die Hilfe zu einem Befehl zeigt Ihre aktuellen Einstellungen als Standardwerte
  • sync, export, list, log und report nehmen auch --help oder -h an
  • exporter version (oder --version, -v) gibt exporter 3.24 aus
  • exporter allein in einem Terminal gibt die Übersicht aus und endet mit 64

JSON-Ausgabe

--json funktioniert bei sync, export, list, status und log. Die Ausgabe ist formatiert, mit sortierten Schlüsseln. Fügen Sie bei sync und export --quiet hinzu: Ohne es werden die Fortschritts- und Hinweiszeilen vor dem JSON auf stdout ausgegeben. export gibt ein Zusammenfassungsobjekt aus, sync gibt {"runs": [...]} mit einem pro Quelle aus:

{
  "attachmentIssues" : 0,
  "durationSec" : 18.2,
  "failed" : 0,
  "format" : "markdown",
  "root" : "/Users/me/Documents/notes",
  "runError" : null,
  "selected" : 1204,
  "source" : "apple-notes",
  "status" : "clean",
  "succeeded" : 1204
}

Während die App läuft, gibt sync seine eine Zeile aus und kein JSON. Fehler gehen als error: <what happened and what to do> an stderr.

Exit-Codes

Code Bedeutung
0 ok, auch ein Lauf, den das kostenlose Kontingent verkürzt hat
1 Exportfehler: ein Eintrag ist fehlgeschlagen, der Lauf hatte einen Fehler, oder er hat Einträge ausgewählt und keinen geschrieben
2 Einrichtung nötig: App nicht verbunden, Ordner nicht freigegeben, Ordner oder Tag nicht gefunden, nichts zu exportieren; doctor hat Probleme gefunden; der installierte Befehl hat ein altes Format, oder die App, auf die er zeigt, ist weg
64 Aufruf: unbekannter Befehl oder unbekanntes Flag, fehlender oder falscher Wert, --folder mit Bear, list folders --source bear, exporter allein in einem Terminal

Wo die Dateien landen

sync schreibt in den Exportordner, der in Exporter für jede App festgelegt ist, etwa ~/Documents/notes oder ~/Documents/messages; export schreibt nach --dest. Ein Ordner auf der Ebene Ihres Benutzerordners oder eine Ebene darunter, etwa ~/Documents selbst, bekommt einen Unterordner pro App (notes-export, messages-export und so weiter), und ein tiefer liegender Ordner wird so verwendet, wie er ist. Die Zusammenfassungszeile (nach dem Pfeil) und root im JSON zeigen den tatsächlichen Ordner.

Jeder Exportordner enthält .exporter/last-export.json und .exporter/last-export.md (der letzte Lauf) und .exporter/history/ (die letzten 50 Läufe). Apple Notizen, Kontakte, Nachrichten, Bildschirmzeit und Dokumente führen außerdem .exporter/files.json, jede Datei, die ein Lauf geschrieben hat: Der nächste Lauf entfernt nur dort aufgeführte Dateien, die kein Eintrag mehr erzeugt (Bildschirmzeit entfernt nie eine Tagesdatei). Bear und Logseq entfernen beim nächsten Lauf ebenfalls die Dateien von Notizen, die Sie gelöscht, umbenannt oder neu getaggt haben. Exporte aus Apple Notizen und Logseq bekommen außerdem bases/ mit Obsidian-Ansichten.

Kostenloses Kontingent

Die Kommandozeile hat dieselben Kontingente wie die App:

App kostenlos
Apple Notizen 100 Notizen
Kontakte 100 Kontakte
Nachrichten die 10 neuesten Unterhaltungen
Bildschirmzeit die 10 neuesten Tage bei der ersten Synchronisierung, und nur diese: spätere Tage brauchen die Freischaltung
Dokumente die 10 zuletzt geänderten Dokumente
Bear und Logseq unbegrenzt

Bereits exportierte Einträge synchronisieren weiter kostenlos; das Kontingent stoppt nur neue. Ein Lauf, der es erreicht, exportiert trotzdem, was er darf, endet mit 0 und gibt einen Hinweis aus (nicht mit --quiet):

note: 42 note(s) skipped: free version limit (100 of 100 free notes). upgrade in the app to export everything.
note: 58 contact(s) skipped: free version limit (100 of 100 free contacts). unlock contacts in the app to export everything.
note: 1522 conversation(s) skipped: free version limit (10 of 10 free conversations). unlock messages in the app to export everything.
note: 11 day(s) skipped: free version limit (10 of 10 free days). unlock screen time in the app to archive every day.
note: 5 document(s) skipped: free version limit (10 of 10 free documents). unlock documents in the app to convert every one.

status --json enthält die Stufe und die genutzte Anzahl für Apple Notizen, Kontakte, Nachrichten und Bildschirmzeit. Jede begrenzte App wird mit ihrem eigenen einmaligen In-App-Kauf in Exporter freigeschaltet, mit Preisen je Land, ohne Abo und ohne Kauf im Web. Die Kommandozeile liest den Kauf bei jedem Lauf; antwortet der App Store nicht innerhalb von 5 Sekunden, läuft der Lauf mit dem kostenlosen Kontingent weiter.

Zeitplanung

exporter help cron gibt diese Zeilen mit dem vollständigen Pfad des Befehls auf Ihrem Mac aus: Verwenden Sie diesen, denn der PATH von cron enthält den Installationsordner vielleicht nicht. Maskieren Sie in einer crontab % als \%:

0 3 * * * exporter sync
0 3 * * * exporter export --dest ~/Backups/notes-$(date +\%F)

Für Carbon Copy Cloner und andere Backup-Werkzeuge führen Sie exporter sync als Skript vor dem Backup aus und verzweigen nach dem Exit-Code. Der Befehl bleibt für den ganzen Export verbunden, auch wenn macOS ihn anhält, während niemand angemeldet ist. Solange die App läuft, bei geöffnetem oder geschlossenem Fenster, tut sync nichts: Die Echtzeit-Synchronisierung hält den Ordner bereits aktuell.

MCP-Server

Die App, nicht die Kommandozeile, betreibt einen lokalen MCP-Server, über den Claude, Cursor, VS Code und andere Clients Ihre Exporte durchsuchen und lesen, unter http://localhost:8744/mcp. Die Seite zum MCP-Server erklärt alles darüber, vom Starten bis zu seinen sechs Tools.

Fehlerbehebung

Führen Sie zuerst exporter doctor aus; jede fehlgeschlagene Prüfung gibt ihre Lösung aus. Die Hilfe behandelt auch die Meldungen der App.

  • X is not authorized: Fügen Sie den Ordner (oder einen übergeordneten) auf der Karte Kommandozeile hinzu und führen Sie den Befehl erneut aus. exporter list dests zeigt, was freigegeben ist
  • apple notes is not set up. open Exporter and connect Apple Notes + an export folder. (dasselbe für jede App): Verbinden Sie sie in Exporter
  • sync meldet, dass Exporter läuft: Nichts zu tun, die App hält den Ordner aktuell. Verwenden Sie export --dest für eine separate Kopie
  • no notes were written. run "exporter doctor" to check folders and permissions.: Der Lauf hat Notizen ausgewählt und keine geschrieben; doctor prüft die Ordner und Berechtigungen
  • bookmark broken: Der Ordner wurde verschoben oder gelöscht, oder sein Volume ist nicht aktiviert. Wählen Sie ihn in der App erneut
  • der installierte Befehl hat ein altes Format, oder cron und Backup-Werkzeuge sehen Exit 19: Fügen Sie den Installationsbefehl erneut ein
  • die App wurde seit der Installation des Befehls verschoben: Fügen Sie den Installationsbefehl erneut ein
  • freigeschaltet, aber der Lauf meldet free: Die Kaufprüfung wartet höchstens 5 Sekunden und läuft dann mit dem kostenlosen Kontingent weiter. Führen Sie ihn erneut aus
  • ein Problem, das doctor nicht erklären kann: exporter report --send --email you@example.com

Exporter

Version 3.24 (App Store)

macOS 15 oder neuer

exporter@tinysend.com

© system operator