Kommandolinjen exporter
Kjør eksportene dine fra Terminal, cron, sikkerhetskopieringsverktøy og agenter.
exporter er Mac-appen Exporter kjørt uten vindu. Den bruker de samme tilkoblingene, eksportmappene, utvalget og innstillingene du har satt opp i appen, og den skriver til den samme eksportloggen. Den fungerer mens appen er lukket, og den spør aldri om noe: alt som mangler, stopper kjøringen med avslutningskode 2 og én linje som sier hva du skal gjøre. Bare macOS.
Installer
- Installer Exporter fra Mac App Store (last ned) og åpne den.
- Koble til en app (Apple Notater, Bear, Logseq, Kontakter, Meldinger eller Skjermtid) eller en mappe med Dokumenter, og velg eksportmappen (kom i gang). Disse tilgangene kan bare gis i appen.
- Trykk på “Kopier installeringskommando” på appens kort Kommandolinje, og lim den inn én gang i Terminal.
Appen kjører i en sandkasse og kan ikke skrive til PATH, og derfor er det siste trinnet en innliming. Linjen installerer exporter i /opt/homebrew/bin når den mappen finnes og tilhører deg (ingen sudo), ellers i /usr/local/bin med sudo. Det er trygt å lime den inn igjen; den erstatter det som lå der. Linjen installerer også notes-exporter, kommandoens gamle navn, så eldre skript og cron-linjer fortsetter å fungere. exporter help install skriver ut linjen for Macen din.
Kilder
--source tar én av disse:
| kilde | godtas også | skriver |
|---|---|---|
apple |
apple-notes, applenotes, notes |
markdown eller html |
bear |
markdown eller html | |
logseq |
alltid markdown | |
contacts |
apple-contacts, addressbook |
alltid markdown |
messages |
imessage, chats, conversations |
alltid markdown |
screentime |
screen-time, usage |
alltid markdown, én fil per dag |
reminders |
apple-reminders, lists, todos |
alltid markdown, én fil per liste |
claude-code |
claudecode, claude, claude-code-sessions |
markdown, den opprinnelige loggen eller begge, som avhuket på kortet |
wallet |
passes, pkpass, boarding-passes, tickets |
alltid markdown, én fil per kort |
documents |
docs, files, pdf |
formatene som er avhuket på kortet Dokumenter |
Formater
--format tar markdown (eller md) eller html; store og små bokstaver spiller ingen rolle. Alt annet stopper med error: --format pdf: expected markdown | html og avslutningskode 64.
- uten den skriver
synchver app i formatet som er satt på kortet (Apple Notater og Bear har hvert sitt), ogexportskriver innstillingen til appen den eksporterer;exporter help syncogexporter help exportviser de nåværende - Logseq, Kontakter, Meldinger og Skjermtid er alltid markdown, og Dokumenter skriver formatene som er avhuket på kortet, så for dem ignoreres
--format htmlmed en merknad:note: logseq export is always markdown, so --format is ignored for this source. - Apple Notater skriver én
.html-side per notat (HTML-formatet), med vedlegg kopiert tilattachments/ved siden av og lenket, uten frontmatter. HTML fra Bear er notatets rene tekst i en<pre>, uten formgivning, og henvisninger til vedlegg blir stående som Markdown-tekst: filene kopieres, men lenkes ikke - MCP-serveren leser bare markdown-filer, så en eksport som bare er HTML, er usynlig for den
- Apple Notater og Bear skriver ett format per kjøring; bare Dokumenter skriver begge i én synkronisering. En kjøring fjerner bare gamle filer i sitt eget format, så å bytte etterlater filene i det andre formatet i mappen. For begge formatene gir du hvert sin egen mappe:
exporter export --dest ~/Backups/notes-md --format markdown
exporter export --dest ~/Backups/notes-html --format html
sync
Kjører eksporten du har satt opp i appen, én gang, trinnvis, til appens eksportmapper.
exporter sync [--source <source>]... [--format markdown|html] [--full] [--json] [--quiet]
| flagg | hva det gjør | standard |
|---|---|---|
--source <source> |
bare denne appen, kan gjentas | hver tilkoblet app; de som ikke er koblet til, hoppes over |
--format markdown|html |
bare denne kjøringen, appinnstillingen din endres ikke. Den havner i samme eksportmappe som det andre formatet; for å beholde begge eksporterer du hvert til sin egen mappe med export --dest |
appinnstillingen din |
--full |
eksporter alt på nytt. Den fjerner bare filene Exporter har skrevet, før den skriver; alt annet i eksportmappen blir liggende | av |
--json |
en maskinlesbar oppsummering | av |
--quiet, -q |
bare feil | av |
exporter sync --source apple
apple notes: exporting…
apple notes: 1204 of 1204 exported · 3 removed · 18.2s · markdown → /Users/me/Documents/notes
Oppsummeringslinjen er <source>: <succeeded> of <selected> exported, deretter, når de finnes, N failed, N removed (filer fra elementer som ble slettet, fikk nytt navn eller ble flyttet), N attachment issues, og til slutt varigheten, formatet og mappen som ble skrevet.
Hvis appen kjører, eksporterer sync ingenting, avslutter med 0 og skriver ut Exporter is running: real-time sync is live, the export root is already current.
export
En engangseksport til en mappe du velger, for øyeblikksbilder og skript. Den kjører fint mens appen er åpen.
exporter export --dest <folder> [--source <source>] [--format markdown|html] [--organize folders|tags|smart] [--folder "Name"]... [--tag name]... [--dry-run] [--json] [--quiet]
| flagg | hva det gjør | standard |
|---|---|---|
--dest <folder> |
påkrevd. Må ligge i en mappe som har fått tilgang på appens kort Kommandolinje (“Legg til mappe…”). En tilgang til ~/Backups dekker hver mappe under den |
ingen |
--source <source> |
appen som skal eksporteres | apple |
--format markdown|html |
formatet for denne kjøringen | appinnstillingen din |
--organize folders|tags|smart |
bare Apple Notater: hvordan notatene legges i mapper, for denne kjøringen | “Organiser” på kortet |
--folder "Name" |
bare denne mappen i Apple Notater, kan gjentas, navnet matches uavhengig av store og små bokstaver | utvalget som er lagret i appen |
--tag name |
bare denne taggen, kan gjentas, Apple Notater eller Bear | utvalget som er lagret i appen |
--dry-run |
skriv ut hva som ville blitt eksportert, skriv ingenting | av |
--json, --quiet (-q) |
som for sync | av |
Uten --folder eller --tag eksporterer Apple Notater og Bear utvalget som er lagret i appen. Logseq eksporterer hele grafen; Kontakter, Meldinger, Skjermtid og Dokumenter eksporterer det som er avhuket på kortene deres, akkurat som sync; filtre ignoreres for dem med en merknad. For Dokumenter skriver --dry-run ut would convert <n> document(s), og en kjøring noterer filene den ikke kan lese: note: 3 file(s) skipped: not a format any engine converts.
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 | hva den viser | JSON |
|---|---|---|
sources |
hver app, tilkoblet eller ikke, med antallet sitt. Dokumenter vises ikke | [{"source": "apple", "connected": true, "notes": 1204}, {"source": "messages", "connected": true, "conversations": 1532}, {"source": "bear", "connected": false}], med pages for logseq, contacts, og days for screen-time |
folders |
mapper i Apple Notater med antall notater, rykket inn etter dybde. --source bear er en feil (avslutningskode 64) |
[{"name": "Work", "notes": 42, "level": 0}] |
tags |
tagger med antall, Apple Notater som standard, Bear med --source bear |
[{"name": "journal", "notes": 12}] |
dests |
mapper som export --dest får skrive til, pluss hver apps eksportmappe |
[{"path": "/Users/me/Backups", "kind": "granted"}], der kind er granted, granted, volume not mounted eller export root (apple-notes) |
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 · 50 of 50 free conversations used
organize apple notes by folder · contacts in one folder
app not running
Med --json: ett objekt per app, med navnene apple-notes, bear, logseq, contacts, messages, screen-time, documents, hvert {"connected": true, "lastExport": "2026-09-11 03:00"} (null når den aldri er eksportert); destinations (baner); tier (full eller free, opplåsingen av Apple Notater) og freeNotesUsed; contactsTier og freeContactsUsed; messagesTier og freeConversationsUsed; screenTimeTier og freeDaysUsed; organize ({"appleNotes": "folders", "contacts": "flat"}, kortenes “Organiser”); appRunning. Tidene er lokale, yyyy-MM-dd HH:mm.
log
De siste eksportkjøringene, nyeste først: den samme loggen som appen viser, fra hver eksportmappe og hver --dest-mappe med tilgang. Daterte mapper som er opprettet under en mappe med tilgang, leses ikke; loggen deres ligger i <folder>/.exporter/.
exporter log [--last N] [--json]
| flagg | hva det gjør | standard |
|---|---|---|
--last N |
hvor mange kjøringer | 10 |
--json |
ett objekt per kjøring | av |
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 er clean, warnings (vedlegg mangler) eller failures.
doctor
Kontrollerer at eksport uten vindu vil fungere, og skriver ut én linje per kontroll: ok, FAIL med en linje fix: under, warn eller -- for informasjon.
exporter doctor
Den kontrollerer at databasen til hver tilkoblet app kan leses og eksportmappen kan skrives til, at hver lagret mappetilgang kan slås opp, at hver --dest-mappe kan skrives til, indeksen og den installerte kommandoen. Den avslutter med versjonsnivået, om appen kjører, og det siste krasjet hvis det fantes et. Avslutningskode 0 skriver ut all good., avslutningskode 2 skriver ut N problem(s) found.
report
Skriver ut en diagnoserapport (appversjon, macOS og maskinvare, tilkoblingsstatus, siste kjøringer, siste krasj; ikke noe innhold fra notater) og kopierer den til utklippstavlen.
exporter report [--send] [--email <addr>]
| flagg | hva det gjør | standard |
|---|---|---|
--send |
sender rapporten til oss og skriver ut sent. eller offline: queued, will send on the next run or app launch. |
av |
--email <addr> |
legger til adressen din så vi kan svare | ingen |
Hjelp og versjon
exporter help [topic]: emnenesync,export,list,status,log,doctor,report,cron,install. Hjelpen for en kommando viser de nåværende innstillingene dine som standardverdiersync,export,list,logogreporttar også--helpeller-hexporter version(eller--version,-v) skriver utexporter 3.24exporteralene i en terminal skriver ut oversikten og avslutter med 64
JSON-utdata
--json fungerer med sync, export, list, status og log. Utdataene er pent formatert med sorterte nøkler. For sync og export legger du til --quiet: uten den skrives fremdrifts- og merknadslinjene ut på stdout før JSON. export skriver ut ett oppsummeringsobjekt, sync skriver ut {"runs": [...]} med ett per kilde:
{
"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
}
Mens appen kjører, skriver sync ut sin ene linje og ingen JSON. Feil går til stderr som error: <what happened and what to do>.
Avslutningskoder
| kode | betydning |
|---|---|
| 0 | ok, også en kjøring som gratiskvoten avbrøt |
| 1 | eksportfeil: et element mislyktes, kjøringen traff en feil, eller den valgte elementer og skrev ingen |
| 2 | trenger oppsett: appen er ikke koblet til, mappen har ingen tilgang, mappen eller taggen ble ikke funnet, ingenting å eksportere; doctor fant problemer; den installerte kommandoen har et gammelt format, eller appen den peker på, finnes ikke lenger |
| 64 | bruk: ukjent kommando eller flagg, manglende eller feil verdi, --folder med Bear, list folders --source bear, exporter alene i en terminal |
Hvor filene havner
sync skriver til eksportmappen som er satt for hver app i Exporter, som ~/Documents/notes eller ~/Documents/messages; export skriver til --dest. En mappe på hjemmemappens nivå eller ett nivå under den, som selve ~/Documents, får en undermappe per app (notes-export, messages-export og så videre), og en dypere mappe brukes som den er. Oppsummeringslinjen (etter pilen) og JSON-feltet root viser den virkelige mappen.
Hver eksportmappe inneholder .exporter/last-export.json og .exporter/last-export.md (den siste kjøringen) og .exporter/history/ (de siste 50 kjøringene). Hver app har også .exporter/files.json, hver fil en kjøring skrev: neste kjøring fjerner bare filer som står der, og som ingen elementer lenger lager, så notater du har slettet, gitt nytt navn eller tagget på nytt, mister den gamle filen (Skjermtid fjerner aldri en dagsfil). Eksporter fra Apple Notater og Logseq får også bases/ med visninger for Obsidian.
Gratiskvote
Kommandolinjen har de samme kvotene som appen:
| app | gratis |
|---|---|
| Apple Notater | 100 notater |
| Kontakter | 100 kontakter |
| Meldinger | de 50 siste samtalene |
| Skjermtid | de 10 siste dagene ved den første synkroniseringen, og bare de: senere dager krever opplåsingen |
| Dokumenter | de 10 sist endrede dokumentene |
| Bear og Logseq | ubegrenset |
Elementer som allerede er eksportert, fortsetter å synkroniseres gratis; kvoten stopper bare nye. En kjøring som når den, eksporterer likevel det den får lov til, avslutter med 0 og skriver ut en merknad (ikke med --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 (50 of 50 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 inneholder nivået og antallet brukte for Apple Notater, Kontakter, Meldinger og Skjermtid. Hver begrenset app låses opp med sitt eget engangskjøp i appen Exporter, priset per land, ikke noe abonnement og ingen betaling på nettet. Kommandolinjen leser kjøpet ved hver kjøring; hvis App Store ikke svarer innen 5 sekunder, fortsetter kjøringen på gratiskvoten.
Planlegging
exporter help cron skriver ut disse linjene med kommandoens fullstendige bane på Macen din: bruk den, fordi PATH i cron kanskje ikke inneholder installeringsmappen. I en crontab skriver du % som \%:
0 3 * * * exporter sync
0 3 * * * exporter export --dest ~/Backups/notes-$(date +\%F)
For Carbon Copy Cloner og andre sikkerhetskopieringsverktøy kjører du exporter sync som et skript før kjøringen og forgrener på avslutningskoden. Kommandoen forblir tilkoblet under hele eksporten, også når macOS setter den på pause mens ingen er logget på. Mens appen kjører, med vinduet åpent eller lukket, gjør sync ingenting: sanntidssynkroniseringen holder allerede mappen oppdatert.
Et sikkerhetskopieringsverktøy som kjører skriptene sine som root (det gjør Carbon Copy Cloner), må starte exporter i den påloggede brukerens økt, ikke bare som den brukeren. sudo -u alene stopper den med en gang med avslutningskode 133; sett launchctl asuser foran:
/bin/launchctl asuser "$(id -u "$CONSOLE_USER")" /usr/bin/sudo -u "$CONSOLE_USER" exporter sync
MCP-server
Det er appen, ikke kommandolinjen, som kjører en lokal MCP-server som lar Claude, Cursor, VS Code og andre klienter søke i og lese eksportene dine, på http://localhost:8744/mcp. Siden om MCP-serveren dekker alt om den, fra å starte den til de seks verktøyene.
Feilsøking
Kjør exporter doctor først; hver kontroll som feiler, skriver ut løsningen sin. Hjelp dekker også appens meldinger.
X is not authorized: legg til mappen (eller en overordnet mappe) på kortet Kommandolinje, og kjør igjen.exporter list destsviser hva som har fått tilgangapple notes is not set up. open Exporter and connect Apple Notes + an export folder.(det samme for hver app): koble den til i Exportersyncskriver ut at Exporter kjører: ingenting å gjøre, appen holder mappen oppdatert. Brukexport --destfor en egen kopino notes were written. run "exporter doctor" to check folders and permissions.: kjøringen valgte notater og skrev ingen;doctorkontrollerer mappene og tillatelsenebookmark broken: mappen er flyttet, slettet, eller volumet er ikke koblet til. Velg den igjen i appen- den installerte kommandoen har et gammelt format, eller cron og sikkerhetskopieringsverktøy ser avslutningskode 19: lim inn installeringskommandoen igjen
- appen er flyttet siden du installerte kommandoen: lim inn installeringskommandoen igjen
- låst opp, men kjøringen sier gratis: kjøpskontrollen venter høyst 5 sekunder og fortsetter deretter på gratiskvoten. Kjør igjen
- et problem doctor ikke kan forklare:
exporter report --send --email you@example.com