Exporter downloaden
DocumentatieCLI

De opdrachtregel exporter

Voer je exports uit vanuit Terminal, cron, back-uptools en agents.

exporter is de Mac-app Exporter zonder venster. Hij gebruikt dezelfde verbindingen, exportmappen, selectie en instellingen die je in de app hebt ingesteld, en schrijft naar hetzelfde exportlogboek. Hij werkt terwijl de app gesloten is en stelt nooit vragen: ontbreekt er iets, dan stopt de export met exitcode 2 en één regel die zegt wat je moet doen. Alleen macOS.

Installeren

  1. Installeer Exporter uit de Mac App Store (downloaden) en open hem.
  2. Verbind een app (Apple Notities, Bear, Logseq, Contacten, Berichten of Schermtijd) of een map met documenten, en kies de exportmap (aan de slag). Deze toestemmingen kun je alleen in de app geven.
  3. Druk op de kaart Opdrachtregel in de app op “installatiecommando kopiëren” en plak het één keer in Terminal.

De app draait in een sandbox en kan niet naar je PATH schrijven; daarom is de laatste stap plakken. De regel installeert exporter in /opt/homebrew/bin als die map bestaat en van jou is (geen sudo), anders in /usr/local/bin met sudo. Hem nog eens plakken kan geen kwaad; hij vervangt wat er stond. exporter help install toont de regel voor jouw Mac.

Bronnen

--source accepteert een van deze:

bron ook geaccepteerd schrijft
apple apple-notes, applenotes, notes markdown of html
bear markdown of html
logseq altijd markdown
contacts apple-contacts, addressbook altijd markdown
messages imessage, chats, conversations altijd markdown
screentime screen-time, usage altijd markdown, één bestand per dag
documents docs, files, pdf de formaten die op de kaart Documenten zijn aangevinkt

Formaten

--format accepteert markdown (of md) of html; hoofdletters maken niet uit. Al het andere stopt met error: --format pdf: expected markdown | html en exit 64.

  • zonder deze flag schrijft sync elke app in het formaat dat op zijn kaart is ingesteld (Apple Notities en Bear hebben elk een eigen instelling) en schrijft export de instelling van de app die hij exporteert; exporter help sync en exporter help export tonen de huidige
  • Logseq, Contacten, Berichten en Schermtijd zijn altijd markdown, en Documenten schrijft de formaten die op zijn kaart zijn aangevinkt, dus voor hen wordt --format html genegeerd met een melding: note: logseq export is always markdown, so --format is ignored for this source.
  • Apple Notities schrijft één .html-pagina per notitie (het HTML-formaat), met bijlagen gekopieerd naar attachments/ ernaast en gelinkt, zonder front matter. De HTML van Bear is de platte tekst van de notitie in een <pre>, zonder opmaak, en verwijzingen naar bijlagen blijven Markdown-tekst: de bestanden worden gekopieerd, niet gelinkt
  • de MCP-server leest alleen markdown-bestanden, dus een export die alleen uit HTML bestaat, is voor hem onzichtbaar
  • Apple Notities en Bear schrijven één formaat per export; alleen Documenten schrijft beide in één synchronisatie. Een export verwijdert alleen oude bestanden van zijn eigen formaat, dus na overschakelen blijven de bestanden van het andere formaat in de map staan. Wil je beide formaten, geef elk dan een eigen map:
exporter export --dest ~/Backups/notes-md   --format markdown
exporter export --dest ~/Backups/notes-html --format html

sync

Voert de export uit die je in de app hebt ingesteld, één keer, incrementeel, naar de exportmappen van de app.

exporter sync [--source <source>]... [--format markdown|html] [--full] [--json] [--quiet]
flag wat hij doet standaard
--source <source> alleen deze app, herhaalbaar elke verbonden app; niet verbonden apps worden overgeslagen
--format markdown|html alleen voor deze export, je instelling in de app blijft ongewijzigd. Het resultaat komt in dezelfde exportmap als het andere formaat; wil je beide houden, exporteer elk dan naar een eigen map met export --dest je instelling in de app
--full alles opnieuw exporteren. Het verwijdert vóór het schrijven alleen de bestanden die Exporter schreef; al het andere in de exportmap blijft staan uit
--json een machineleesbaar overzicht uit
--quiet, -q alleen fouten uit
exporter sync --source apple
apple notes: exporting…
apple notes: 1204 of 1204 exported · 3 removed · 18.2s · markdown → /Users/me/Documents/notes

De overzichtsregel is <source>: <succeeded> of <selected> exported, dan, als ze er zijn, N failed, N removed (bestanden van items die zijn verwijderd, hernoemd of verplaatst), N attachment issues, en daarna de duur, het formaat en de map waarnaar geschreven is.

Draait de app, dan exporteert sync niets, eindigt met 0 en toont Exporter is running: real-time sync is live, the export root is already current.

export

Een eenmalige export naar een map naar keuze, voor momentopnamen en scripts. Werkt prima terwijl de app open is.

exporter export --dest <folder> [--source <source>] [--format markdown|html] [--organize folders|tags|smart] [--folder "Name"]... [--tag name]... [--dry-run] [--json] [--quiet]
flag wat hij doet standaard
--dest <folder> verplicht. Moet binnen een map liggen waarvoor toestemming is gegeven op de kaart Opdrachtregel in de app (“map toevoegen…”). Toestemming voor ~/Backups geldt voor elke map daaronder geen
--source <source> de app om te exporteren apple
--format markdown|html het formaat voor deze export je instelling in de app
--organize folders|tags|smart alleen Apple Notities: hoe notities over mappen worden verdeeld je instelling in de app
--folder "Name" alleen deze map van Apple Notities, herhaalbaar, naam hoofdletterongevoelig de selectie die in de app is bewaard
--tag name alleen deze tag, herhaalbaar, Apple Notities of Bear de selectie die in de app is bewaard
--dry-run tonen wat er geëxporteerd zou worden, niets schrijven uit
--json, --quiet (-q) zoals bij sync uit

Zonder --folder of --tag exporteren Apple Notities en Bear de selectie die in de app is bewaard. Logseq exporteert de hele graph, Contacten elke kaart, Berichten elk gesprek, Schermtijd elke dag; filters worden voor hen genegeerd, met een melding.

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]
list wat het toont JSON
sources elke app, verbonden of niet, met het aantal. Documenten wordt niet getoond [{"source": "apple", "connected": true, "notes": 1204}, {"source": "messages", "connected": true, "conversations": 1532}, {"source": "bear", "connected": false}], met pages voor logseq, contacts, en days voor screen-time
folders mappen van Apple Notities met het aantal notities, ingesprongen naar diepte. --source bear is een fout (exit 64) [{"name": "Work", "notes": 42, "level": 0}]
tags tags met aantallen, standaard Apple Notities, Bear met --source bear [{"name": "journal", "notes": 12}]
dests mappen waarnaar export --dest mag schrijven, plus de exportmap van elke app [{"path": "/Users/me/Backups", "kind": "granted"}], waarbij kind granted, granted, volume not mounted of export root (apple-notes) is
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

Met --json: één object per app, genaamd apple-notes, bear, logseq, contacts, messages, screen-time, documents, elk {"connected": true, "lastExport": "2026-09-11 03:00"} (null als er nooit is geëxporteerd); destinations (paden); tier (full of free, de ontgrendeling van Apple Notities) en freeNotesUsed; contactsTier en freeContactsUsed; messagesTier en freeConversationsUsed; screenTimeTier en freeDaysUsed; appRunning. Tijden zijn lokaal, yyyy-MM-dd HH:mm.

log

De recente exports, nieuwste eerst: hetzelfde logboek dat de app toont, uit elke exportmap en elke --dest-map met toestemming. Mappen met een datum die onder een map met toestemming zijn aangemaakt, worden niet gelezen; hun verslag staat in <folder>/.exporter/.

exporter log [--last N] [--json]
flag wat hij doet standaard
--last N hoeveel exports 10
--json één object per export uit
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 is clean, warnings (bijlagen ontbreken) of failures.

doctor

Controleert of exporteren zonder venster zal werken en toont één regel per controle: ok, FAIL met een regel fix: eronder, warn, of -- ter informatie.

exporter doctor

Hij controleert of de database van elke verbonden app leesbaar is en de exportmap schrijfbaar, of elke bewaarde maptoestemming nog klopt, of elke --dest-map schrijfbaar is, de index, en de geïnstalleerde opdracht. Hij sluit af met de versie, of de app draait, en de laatste crash als die er was. Exit 0 toont all good., exit 2 toont N problem(s) found.

report

Toont een diagnoserapport (versie van de app, macOS en hardware, verbindingsstatus, recente exports, laatste crash; geen inhoud van notities) en kopieert het naar het klembord.

exporter report [--send] [--email <addr>]
flag wat hij doet standaard
--send stuurt het rapport naar ons en toont sent., of offline: queued, will send on the next run or app launch. uit
--email <addr> voegt je adres toe zodat we kunnen antwoorden geen

help en versie

  • exporter help [topic]: onderwerpen sync, export, list, status, log, doctor, report, cron, install. De help voor een opdracht toont je huidige instellingen als standaardwaarden
  • sync, export, list, log en report accepteren ook --help of -h
  • exporter version (of --version, -v) toont exporter 3.24
  • exporter zonder meer in een terminal toont het overzicht en eindigt met 64

JSON-uitvoer

--json werkt bij sync, export, list, status en log. De uitvoer is netjes opgemaakt met gesorteerde sleutels. Voeg bij sync en export --quiet toe: zonder die flag komen de voortgangs- en meldingsregels vóór de JSON op stdout. export toont één overzichtsobject, sync toont {"runs": [...]} met één per bron:

{
  "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
}

Terwijl de app draait, toont sync zijn ene regel en geen JSON. Fouten gaan naar stderr als error: <what happened and what to do>.

Exitcodes

code betekenis
0 ok, ook een export die door de gratis hoeveelheid is ingekort
1 exportfouten: een item mislukte, de export stuitte op een fout, of hij selecteerde items en schreef er geen
2 instellen nodig: app niet verbonden, geen toestemming voor de map, map of tag niet gevonden, niets te exporteren; doctor vond problemen; de geïnstalleerde opdracht heeft een oud formaat of de app waar hij naar wijst is weg
64 gebruik: onbekende opdracht of flag, ontbrekende of foute waarde, --folder met Bear, list folders --source bear, exporter zonder meer in een terminal

Waar bestanden terechtkomen

sync schrijft naar de exportmap die voor elke app in Exporter is ingesteld, zoals ~/Documents/notes of ~/Documents/messages; export schrijft naar --dest. Een map in je thuismap of één niveau lager, zoals ~/Documents zelf, krijgt een submap per app (notes-export, messages-export enzovoort), en een map die dieper ligt, wordt gebruikt zoals hij is. De overzichtsregel (na de pijl) en root in de JSON tonen de echte map.

Elke exportmap bevat .exporter/last-export.json en .exporter/last-export.md (de laatste export) en .exporter/history/ (de laatste 50 exports). Apple Notities, Contacten, Berichten, Schermtijd en Documenten houden ook .exporter/files.json bij, elk bestand dat een export schreef: de volgende export verwijdert alleen bestanden uit die lijst die door geen enkel item meer worden gemaakt (Schermtijd verwijdert nooit een dagbestand). Bear en Logseq verwijderen bij de volgende export ook de bestanden van notities die je verwijderde, hernoemde of een andere tag gaf. Exports van Apple Notities en Logseq krijgen ook bases/ met weergaven voor Obsidian.

Gratis hoeveelheid

De opdrachtregel heeft dezelfde gratis hoeveelheden als de app:

app gratis
Apple Notities 100 notities
Contacten 100 contacten
Berichten de 10 recentste gesprekken
Schermtijd de 10 recentste dagen bij de eerste synchronisatie, en alleen die: voor latere dagen heb je de ontgrendeling nodig
Documenten de 10 laatst gewijzigde documenten
Bear en Logseq onbeperkt

Items die al zijn geëxporteerd, blijven gratis opnieuw synchroniseren; de gratis hoeveelheid houdt alleen nieuwe items tegen. Een export die de grens bereikt, exporteert nog wat mag, eindigt met 0 en toont een melding (niet met --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 bevat de versie en het gebruikte aantal voor Apple Notities, Contacten, Berichten en Schermtijd. Elke beperkte app ontgrendel je met een eigen eenmalige aankoop in Exporter, met een prijs per land, zonder abonnement en zonder webkassa. De opdrachtregel leest de aankoop bij elke export; antwoordt de App Store niet binnen 5 seconden, dan gaat de export verder met de gratis hoeveelheid.

Planning

exporter help cron toont deze regels met het volledige pad van de opdracht op jouw Mac: gebruik dat, want het PATH van cron bevat de installatiemap misschien niet. Schrijf in een crontab % als \%:

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

Voor Carbon Copy Cloner en andere back-uptools: voer exporter sync uit als voorafgaand script en vertak op de exitcode. De opdracht blijft verbonden tijdens de hele export, ook als macOS hem pauzeert terwijl niemand is ingelogd. Zolang de app draait, met zijn venster open of dicht, doet sync niets: realtime synchronisatie houdt de map al actueel.

MCP-server

De app, niet de opdrachtregel, draait een lokale MCP-server waarmee Claude, Cursor, VS Code en andere clients je exports kunnen doorzoeken en lezen, op http://localhost:8744/mcp. De pagina over de MCP-server behandelt alles erover, van starten tot de zes tools.

Problemen oplossen

Voer eerst exporter doctor uit; elke mislukte controle toont de oplossing. Hulp behandelt ook de meldingen van de app.

  • X is not authorized: voeg de map (of een bovenliggende map) toe op de kaart Opdrachtregel en voer het opnieuw uit. exporter list dests toont waarvoor toestemming is
  • apple notes is not set up. open Exporter and connect Apple Notes + an export folder. (hetzelfde voor elke app): verbind hem in Exporter
  • sync meldt dat Exporter draait: niets te doen, de app houdt de map actueel. Gebruik export --dest voor een aparte kopie
  • no notes were written. run "exporter doctor" to check folders and permissions.: de export selecteerde notities en schreef er geen; doctor controleert de mappen en toestemmingen
  • bookmark broken: de map is verplaatst, verwijderd, of het volume is niet gekoppeld. Kies de map opnieuw in de app
  • de geïnstalleerde opdracht heeft een oud formaat, of cron en back-uptools zien exit 19: plak het installatiecommando opnieuw
  • de app is verplaatst sinds je de opdracht installeerde: plak het installatiecommando opnieuw
  • ontgrendeld, maar de export zegt gratis: de aankoopcontrole wacht maximaal 5 seconden en gaat dan verder met de gratis hoeveelheid. Voer het opnieuw uit
  • een probleem dat doctor niet kan verklaren: exporter report --send --email you@example.com

Exporter

Versie 3.24 (App Store)

macOS 15 of nieuwer

exporter@tinysend.com

© system operator