Kommandolinjen exporter
Kør dine eksporter fra Terminal, cron, backupværktøjer og agenter.
exporter er Mac-appen Exporter kørt uden et vindue. Den bruger de samme forbindelser, eksportmapper, valg og indstillinger, som du har sat op i appen, og den skriver til den samme eksportlog. Den virker, mens appen er lukket, og den spørger aldrig om noget: alt, der mangler, stopper kørslen med afslutningskode 2 og én linje, der siger, hvad du skal gøre. Kun macOS.
Installér
- Installér Exporter fra Mac App Store (hent), og åbn den.
- Forbind en app (Apple Noter, Bear, Logseq, Kontakter, Beskeder eller Skærmtid) eller en mappe med Dokumenter, og vælg dens eksportmappe (kom i gang). Disse adgange kan kun gives i appen.
- Tryk på “Kopiér installationskommando” på appens kort Kommandolinje, og indsæt den én gang i Terminal.
Appen kører i en sandkasse og kan ikke skrive til din PATH, og derfor er det sidste trin en indsættelse. Linjen installerer exporter i /opt/homebrew/bin, når den mappe findes og tilhører dig (ingen sudo), ellers i /usr/local/bin med sudo. Det er sikkert at indsætte den igen; den erstatter det, der var der. Linjen installerer også notes-exporter, kommandoens gamle navn, så ældre scripts og cron-linjer bliver ved med at virke. exporter help install skriver linjen til din Mac.
Kilder
--source tager en af disse:
| kilde | accepteres også | skriver |
|---|---|---|
apple |
apple-notes, applenotes, notes |
markdown eller html |
bear |
markdown eller html | |
logseq |
altid markdown | |
contacts |
apple-contacts, addressbook |
altid markdown |
messages |
imessage, chats, conversations |
altid markdown |
screentime |
screen-time, usage |
altid markdown, én fil pr. dag |
reminders |
apple-reminders, lists, todos |
altid markdown, én fil pr. liste |
claude-code |
claudecode, claude, claude-code-sessions |
markdown, den originale log eller begge, som markeret på kortet |
wallet |
passes, pkpass, boarding-passes, tickets |
altid markdown, én fil pr. kort |
documents |
docs, files, pdf |
de formater, der er markeret på kortet Dokumenter |
Formater
--format tager markdown (eller md) eller html; store og små bogstaver er ligegyldige. Alt andet stopper med error: --format pdf: expected markdown | html og afslutningskode 64.
- uden den skriver
synchver app i det format, der er sat på dens kort (Apple Noter og Bear har hver sit), ogexportskriver indstillingen for den app, den eksporterer;exporter help syncogexporter help exportviser de nuværende - Logseq, Kontakter, Beskeder og Skærmtid er altid markdown, og Dokumenter skriver de formater, der er markeret på sit kort, så for dem ignoreres
--format htmlmed en bemærkning:note: logseq export is always markdown, so --format is ignored for this source. - Apple Noter skriver én
.html-side pr. note (HTML-formatet), med vedhæftninger kopieret tilattachments/ved siden af og linket, uden frontmatter. Bears HTML er notens rå tekst i en<pre>, uden formgivning, og henvisninger til vedhæftninger efterlades som Markdown-tekst: filerne kopieres, men linkes ikke - MCP-serveren læser kun markdown-filer, så en eksport, der kun er HTML, er usynlig for den
- Apple Noter og Bear skriver ét format pr. kørsel; kun Dokumenter skriver begge i én synkronisering. En kørsel fjerner kun gamle filer i sit eget format, så et skift efterlader det andet formats filer i mappen. For begge formater giver du hvert sin egen mappe:
exporter export --dest ~/Backups/notes-md --format markdown
exporter export --dest ~/Backups/notes-html --format html
sync
Kører den eksport, du har sat op i appen, én gang, trinvist, til appens eksportmapper.
exporter sync [--source <source>]... [--format markdown|html] [--full] [--json] [--quiet]
| flag | hvad det gør | standard |
|---|---|---|
--source <source> |
kun denne app, kan gentages | hver forbundet app; dem, der ikke er forbundet, springes over |
--format markdown|html |
kun denne kørsel, din appindstilling ændres ikke. Den havner i samme eksportmappe som det andet format; for at beholde begge eksporterer du hvert til sin egen mappe med export --dest |
din appindstilling |
--full |
eksportér alt igen. Den fjerner kun de filer, Exporter har skrevet, før den skriver; alt andet i eksportmappen bliver liggende | fra |
--json |
en maskinlæsbar opsummering | fra |
--quiet, -q |
kun fejl | fra |
exporter sync --source apple
apple notes: exporting…
apple notes: 1204 of 1204 exported · 3 removed · 18.2s · markdown → /Users/me/Documents/notes
Opsummeringslinjen er <source>: <succeeded> of <selected> exported, derefter, når de findes, N failed, N removed (filer fra elementer, der blev slettet, omdøbt eller flyttet), N attachment issues, og til sidst varigheden, formatet og den mappe, der blev skrevet.
Hvis appen kører, eksporterer sync intet, afslutter med 0 og skriver Exporter is running: real-time sync is live, the export root is already current.
export
En engangseksport til en mappe efter eget valg, til øjebliksbilleder og scripts. Den kører fint, mens appen er åben.
exporter export --dest <folder> [--source <source>] [--format markdown|html] [--organize folders|tags|smart] [--folder "Name"]... [--tag name]... [--dry-run] [--json] [--quiet]
| flag | hvad det gør | standard |
|---|---|---|
--dest <folder> |
påkrævet. Skal ligge i en mappe, der er givet adgang til på appens kort Kommandolinje (“Tilføj mappe…”). En adgang til ~/Backups dækker hver mappe under den |
ingen |
--source <source> |
den app, der skal eksporteres | apple |
--format markdown|html |
formatet for denne kørsel | din appindstilling |
--organize folders|tags|smart |
kun Apple Noter: hvordan noterne lægges i mapper, for denne kørsel | “Organiser” på kortet |
--folder "Name" |
kun denne mappe i Apple Noter, kan gentages, navnet matches uden hensyn til store og små bogstaver | det valg, der er gemt i appen |
--tag name |
kun dette tag, kan gentages, Apple Noter eller Bear | det valg, der er gemt i appen |
--dry-run |
skriv, hvad der ville blive eksporteret, skriv intet | fra |
--json, --quiet (-q) |
som for sync | fra |
Uden --folder eller --tag eksporterer Apple Noter og Bear det valg, der er gemt i appen. Logseq eksporterer hele grafen; Kontakter, Beskeder, Skærmtid og Dokumenter eksporterer det, der er markeret på deres kort, ligesom sync; filtre ignoreres for dem med en bemærkning. For Dokumenter skriver --dry-run would convert <n> document(s), og en kørsel noterer de filer, den ikke kan læse: 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 | hvad den viser | JSON |
|---|---|---|
sources |
hver app, forbundet eller ej, med sit antal. 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 Noter med antal noter, indrykket efter dybde. --source bear er en fejl (afslutningskode 64) |
[{"name": "Work", "notes": 42, "level": 0}] |
tags |
tags med antal, Apple Noter som standard, Bear med --source bear |
[{"name": "journal", "notes": 12}] |
dests |
mapper, som export --dest må skrive til, plus hver apps eksportmappe |
[{"path": "/Users/me/Backups", "kind": "granted"}], hvor 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: ét objekt pr. app, med navnene apple-notes, bear, logseq, contacts, messages, screen-time, documents, hver {"connected": true, "lastExport": "2026-09-11 03:00"} (null, når den aldrig er eksporteret); destinations (stier); tier (full eller free, oplåsningen af Apple Noter) og freeNotesUsed; contactsTier og freeContactsUsed; messagesTier og freeConversationsUsed; screenTimeTier og freeDaysUsed; organize ({"appleNotes": "folders", "contacts": "flat"}, kortenes “Organiser”); appRunning. Tidspunkterne er lokale, yyyy-MM-dd HH:mm.
log
De seneste eksportkørsler, nyeste først: den samme log, som appen viser, fra hver eksportmappe og hver --dest-mappe med adgang. Daterede mapper, der er oprettet under en mappe med adgang, læses ikke; deres log ligger i <folder>/.exporter/.
exporter log [--last N] [--json]
| flag | hvad det gør | standard |
|---|---|---|
--last N |
hvor mange kørsler | 10 |
--json |
ét objekt pr. kørsel | fra |
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 (vedhæftninger mangler) eller failures.
doctor
Kontrollerer, at eksport uden vindue vil virke, og skriver én linje pr. kontrol: ok, FAIL med en linje fix: under, warn eller -- for information.
exporter doctor
Den kontrollerer, at hver forbundet apps database kan læses og dens eksportmappe kan skrives til, at hver gemt mappeadgang kan slås op, at hver --dest-mappe kan skrives til, indekset og den installerede kommando. Den slutter med versionsniveauet, om appen kører, og det seneste nedbrud, hvis der var et. Afslutningskode 0 skriver all good., afslutningskode 2 skriver N problem(s) found.
report
Skriver en diagnostisk rapport (appversion, macOS og hardware, forbindelsesstatus, seneste kørsler, seneste nedbrud; intet indhold fra noter) og kopierer den til udklipsholderen.
exporter report [--send] [--email <addr>]
| flag | hvad det gør | standard |
|---|---|---|
--send |
sender rapporten til os og skriver sent. eller offline: queued, will send on the next run or app launch. |
fra |
--email <addr> |
tilføjer din adresse, så vi kan svare | ingen |
Hjælp og version
exporter help [topic]: emnernesync,export,list,status,log,doctor,report,cron,install. Hjælpen til en kommando viser dine nuværende indstillinger som standardværdiersync,export,list,logogreporttager også--helpeller-hexporter version(eller--version,-v) skriverexporter 3.24exporteralene i en terminal skriver oversigten og afslutter med 64
JSON-output
--json virker med sync, export, list, status og log. Outputtet er pænt formateret med sorterede nøgler. For sync og export tilføjer du --quiet: uden den skrives fremskridts- og bemærkningslinjerne på stdout før JSON. export skriver ét opsummeringsobjekt, sync skriver {"runs": [...]} med ét pr. 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 kører, skriver sync sin ene linje og ingen JSON. Fejl går til stderr som error: <what happened and what to do>.
Afslutningskoder
| kode | betydning |
|---|---|
| 0 | ok, også en kørsel, som den gratis kvote afbrød |
| 1 | eksportfejl: et element mislykkedes, kørslen ramte en fejl, eller den valgte elementer og skrev ingen |
| 2 | kræver opsætning: appen er ikke forbundet, mappen har ingen adgang, mappen eller tagget blev ikke fundet, intet at eksportere; doctor fandt problemer; den installerede kommando har et gammelt format, eller den app, den peger på, findes ikke længere |
| 64 | brug: ukendt kommando eller flag, manglende eller forkert værdi, --folder med Bear, list folders --source bear, exporter alene i en terminal |
Hvor filerne havner
sync skriver til den eksportmappe, der er sat for hver app i Exporter, som ~/Documents/notes eller ~/Documents/messages; export skriver til --dest. En mappe på hjemmemappens niveau eller ét niveau under den, som selve ~/Documents, får en undermappe pr. app (notes-export, messages-export og så videre), og en dybere mappe bruges, som den er. Opsummeringslinjen (efter pilen) og JSON-feltet root viser den rigtige mappe.
Hver eksportmappe indeholder .exporter/last-export.json og .exporter/last-export.md (den seneste kørsel) og .exporter/history/ (de seneste 50 kørsler). Hver app har også .exporter/files.json, hver fil en kørsel skrev: den næste kørsel fjerner kun filer, der står der, og som intet element længere frembringer, så noter, du har slettet, omdøbt eller tagget om, mister deres gamle fil (Skærmtid fjerner aldrig en dagsfil). Eksporter fra Apple Noter og Logseq får også bases/ med visninger til Obsidian.
Gratis kvote
Kommandolinjen har de samme kvoter som appen:
| app | gratis |
|---|---|
| Apple Noter | 100 noter |
| Kontakter | 100 kontakter |
| Beskeder | de 50 seneste samtaler |
| Skærmtid | de 10 seneste dage ved den første synkronisering, og kun dem: senere dage kræver oplåsningen |
| Dokumenter | de 10 senest ændrede dokumenter |
| Bear og Logseq | ubegrænset |
Elementer, der allerede er eksporteret, bliver ved med at synkronisere gratis; kvoten stopper kun nye. En kørsel, der når den, eksporterer stadig det, den må, afslutter med 0 og skriver en bemærkning (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 indeholder niveauet og antallet brugte for Apple Noter, Kontakter, Beskeder og Skærmtid. Hver begrænset app låses op med sit eget engangskøb i appen Exporter, prissat pr. land, intet abonnement og ingen betaling på nettet. Kommandolinjen læser købet ved hver kørsel; hvis App Store ikke svarer inden for 5 sekunder, fortsætter kørslen på den gratis kvote.
Planlægning
exporter help cron skriver disse linjer med kommandoens fulde sti på din Mac: brug den, fordi crons PATH måske ikke indeholder installationsmappen. 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 backupværktøjer kører du exporter sync som et script før kørslen og forgrener på afslutningskoden. Kommandoen forbliver tilknyttet under hele eksporten, også når macOS sætter den på pause, mens ingen er logget ind. Mens appen kører, med vinduet åbent eller lukket, gør sync ingenting: synkronisering i realtid holder allerede mappen opdateret.
Et backupværktøj, der kører sine scripts som root (det gør Carbon Copy Cloner), skal starte exporter i den indloggede brugers session, ikke kun som den bruger. sudo -u alene stopper den med det samme med afslutningskode 133; sæt 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, der kører en lokal MCP-server, som lader Claude, Cursor, VS Code og andre klienter søge i og læse dine eksporter, på http://localhost:8744/mcp. Siden om MCP-serveren dækker alt om den, fra at starte den til dens seks værktøjer.
Fejlfinding
Kør exporter doctor først; hver kontrol, der fejler, skriver sin løsning. Hjælp dækker også appens meddelelser.
X is not authorized: tilføj mappen (eller en overordnet mappe) på kortet Kommandolinje, og kør igen.exporter list destsviser, hvad der er givet adgang tilapple notes is not set up. open Exporter and connect Apple Notes + an export folder.(det samme for hver app): forbind den i Exportersyncskriver, at Exporter kører: intet at gøre, appen holder mappen opdateret. Brugexport --desttil en separat kopino notes were written. run "exporter doctor" to check folders and permissions.: kørslen valgte noter og skrev ingen;doctorkontrollerer mapperne og tilladelsernebookmark broken: mappen er flyttet, slettet, eller dens enhed er ikke tilsluttet. Vælg den igen i appen- den installerede kommando har et gammelt format, eller cron og backupværktøjer ser afslutningskode 19: indsæt installationskommandoen igen
- appen er flyttet, siden du installerede kommandoen: indsæt installationskommandoen igen
- låst op, men kørslen siger gratis: købskontrollen venter højst 5 sekunder og fortsætter derefter på den gratis kvote. Kør igen
- et problem, doctor ikke kan forklare:
exporter report --send --email you@example.com