Hämta Exporter
Dokumentation CLI

Kommandoraden exporter

Kör dina exporter från Terminal, cron, säkerhetskopieringsverktyg och agenter.

exporter är Mac-appen Exporter körd utan fönster. Den använder samma anslutningar, exportmappar, urval och inställningar som du ställt in i appen, och den skriver till samma exportlogg. Den fungerar medan appen är stängd och frågar aldrig något: allt som saknas stoppar körningen med slutkod 2 och en rad som säger vad du ska göra. Bara macOS.

Installera

  1. Installera Exporter från Mac App Store (hämta) och öppna den.
  2. Anslut en app (Apple Anteckningar, Bear, Logseq, Kontakter, Meddelanden eller Skärmtid) eller en mapp med Dokument, och välj dess exportmapp (kom igång). De här åtkomsterna kan bara ges i appen.
  3. Tryck på “Kopiera installationskommando” på appens kort Kommandorad och klistra in det en gång i Terminal.

Appen är sandlådad och kan inte skriva till din PATH, och därför är det sista steget en inklistring. Raden installerar exporter i /opt/homebrew/bin när den mappen finns och tillhör dig (ingen sudo), annars i /usr/local/bin med sudo. Det är säkert att klistra in den igen; den ersätter det som fanns där. Raden installerar också notes-exporter, kommandots gamla namn, så att äldre skript och cron-rader fortsätter att fungera. exporter help install skriver ut raden för din Mac.

Källor

--source tar en av dessa:

källa accepteras också 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, en fil per dag
reminders apple-reminders, lists, todos alltid markdown, en fil per lista
claude-code claudecode, claude, claude-code-sessions markdown, originalloggen eller båda, som markerat på kortet
wallet passes, pkpass, boarding-passes, tickets alltid markdown, en fil per kort
documents docs, files, pdf formaten som är markerade på kortet Dokument

Format

--format tar markdown (eller md) eller html; skiftläget spelar ingen roll. Allt annat stoppar med error: --format pdf: expected markdown | html och slutkod 64.

  • utan den skriver sync varje app i formatet som är inställt på dess kort (Apple Anteckningar och Bear har var sitt) och export skriver inställningen för appen den exporterar; exporter help sync och exporter help export visar de nuvarande
  • Logseq, Kontakter, Meddelanden och Skärmtid är alltid markdown, och Dokument skriver formaten som är markerade på sitt kort, så för dem ignoreras --format html med en notering: note: logseq export is always markdown, so --format is ignored for this source.
  • Apple Anteckningar skriver en .html-sida per anteckning (HTML-formatet), med bilagor kopierade till attachments/ bredvid och länkade, utan frontmatter. Bears HTML är anteckningens råtext i en <pre>, utan formgivning, och hänvisningar till bilagor lämnas som Markdown-text: filerna kopieras, men länkas inte
  • MCP-servern läser bara markdown-filer, så en export som bara är HTML är osynlig för den
  • Apple Anteckningar och Bear skriver ett format per körning; bara Dokument skriver båda i en synkning. En körning tar bara bort gamla filer i sitt eget format, så att byta lämnar det andra formatets filer kvar i mappen. För båda formaten ger du vart och ett en egen mapp:
exporter export --dest ~/Backups/notes-md   --format markdown
exporter export --dest ~/Backups/notes-html --format html

sync

Kör exporten du ställde in i appen, en gång, inkrementellt, till appens exportmappar.

exporter sync [--source <source>]... [--format markdown|html] [--full] [--json] [--quiet]
flagga vad den gör standard
--source <source> bara den här appen, kan upprepas varje ansluten app; de som inte är anslutna hoppas över
--format markdown|html bara den här körningen, din appinställning ändras inte. Den hamnar i samma exportmapp som det andra formatet; för att behålla båda exporterar du vart och ett till en egen mapp med export --dest din appinställning
--full exportera om allt. Den tar bara bort filerna som Exporter skrev innan den skriver; allt annat i exportmappen ligger kvar av
--json en maskinläsbar sammanfattning av
--quiet, -q bara fel av
exporter sync --source apple
apple notes: exporting…
apple notes: 1204 of 1204 exported · 3 removed · 18.2s · markdown → /Users/me/Documents/notes

Sammanfattningsraden är <source>: <succeeded> of <selected> exported, sedan, när de finns, N failed, N removed (filer från objekt som raderades, bytte namn eller flyttades), N attachment issues, och sist tiden, formatet och mappen som skrevs.

Om appen körs exporterar sync ingenting, avslutar med 0 och skriver ut Exporter is running: real-time sync is live, the export root is already current.

export

En engångsexport till en mapp du väljer, för ögonblicksbilder och skript. Den fungerar fint medan appen är öppen.

exporter export --dest <folder> [--source <source>] [--format markdown|html] [--organize folders|tags|smart] [--folder "Name"]... [--tag name]... [--dry-run] [--json] [--quiet]
flagga vad den gör standard
--dest <folder> obligatorisk. Måste ligga i en mapp som har getts åtkomst på appens kort Kommandorad (“Lägg till mapp…”). En åtkomst till ~/Backups täcker varje mapp under den ingen
--source <source> appen som ska exporteras apple
--format markdown|html formatet för den här körningen din appinställning
--organize folders|tags|smart bara Apple Anteckningar: hur anteckningarna ordnas i mappar, för den här körningen “Ordna” på kortet
--folder "Name" bara den här mappen i Apple Anteckningar, kan upprepas, namnet matchas oavsett skiftläge urvalet som sparats i appen
--tag name bara den här taggen, kan upprepas, Apple Anteckningar eller Bear urvalet som sparats i appen
--dry-run skriv ut vad som skulle exporteras, skriv ingenting av
--json, --quiet (-q) som för sync av

Utan --folder eller --tag exporterar Apple Anteckningar och Bear urvalet som sparats i appen. Logseq exporterar hela grafen; Kontakter, Meddelanden, Skärmtid och Dokument exporterar det som är markerat på deras kort, precis som sync; filter ignoreras för dem med en notering. För Dokument skriver --dry-run ut would convert <n> document(s), och en körning noterar filerna den inte kan läsa: 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]
lista vad den visar JSON
sources varje app, ansluten eller inte, med sitt antal. Dokument listas inte [{"source": "apple", "connected": true, "notes": 1204}, {"source": "messages", "connected": true, "conversations": 1532}, {"source": "bear", "connected": false}], med pages för logseq, contacts, och days för screen-time
folders mappar i Apple Anteckningar med antal anteckningar, indragna efter djup. --source bear är ett fel (slutkod 64) [{"name": "Work", "notes": 42, "level": 0}]
tags taggar med antal, Apple Anteckningar som standard, Bear med --source bear [{"name": "journal", "notes": 12}]
dests mappar som export --dest får skriva till, plus varje apps exportmapp [{"path": "/Users/me/Backups", "kind": "granted"}], där kind är 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 namnen apple-notes, bear, logseq, contacts, messages, screen-time, documents, vart och ett {"connected": true, "lastExport": "2026-09-11 03:00"} (null när den aldrig har exporterats); destinations (sökvägar); tier (full eller free, upplåsningen av Apple Anteckningar) och freeNotesUsed; contactsTier och freeContactsUsed; messagesTier och freeConversationsUsed; screenTimeTier och freeDaysUsed; organize ({"appleNotes": "folders", "contacts": "flat"}, kortens “Ordna”); appRunning. Tiderna är lokala, yyyy-MM-dd HH:mm.

log

De senaste exportkörningarna, nyaste först: samma logg som appen visar, från varje exportmapp och varje --dest-mapp med åtkomst. Daterade mappar som skapats under en mapp med åtkomst läses inte; deras logg finns i <folder>/.exporter/.

exporter log [--last N] [--json]
flagga vad den gör standard
--last N hur många körningar 10
--json ett objekt per körning 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 är clean, warnings (bilagor saknas) eller failures.

doctor

Kontrollerar att export utan fönster kommer att fungera och skriver ut en rad per kontroll: ok, FAIL med en rad fix: under, warn, eller -- för information.

exporter doctor

Den kontrollerar att varje ansluten apps databas går att läsa och dess exportmapp går att skriva till, att varje sparad mappåtkomst går att lösa upp, att varje --dest-mapp går att skriva till, indexet och det installerade kommandot. Den avslutar med versionsnivån, om appen körs och den senaste kraschen om det fanns någon. Slutkod 0 skriver ut all good., slutkod 2 skriver ut N problem(s) found.

report

Skriver ut en diagnostisk rapport (appversion, macOS och hårdvara, anslutningsstatus, senaste körningar, senaste krasch; inget innehåll från anteckningar) och kopierar den till urklipp.

exporter report [--send] [--email <addr>]
flagga vad den gör standard
--send skickar rapporten till oss och skriver ut sent., eller offline: queued, will send on the next run or app launch. av
--email <addr> lägger till din adress så att vi kan svara ingen

Hjälp och version

  • exporter help [topic]: ämnena sync, export, list, status, log, doctor, report, cron, install. Hjälpen för ett kommando visar dina nuvarande inställningar som standardvärden
  • sync, export, list, log och report tar också --help eller -h
  • exporter version (eller --version, -v) skriver ut exporter 3.24
  • exporter ensamt i en terminal skriver ut översikten och avslutar med 64

JSON-utdata

--json fungerar med sync, export, list, status och log. Utdata är snyggt formaterade med sorterade nycklar. För sync och export lägger du till --quiet: utan den skrivs förlopps- och noteringsraderna ut på stdout före JSON. export skriver ut ett sammanfattningsobjekt, sync skriver ut {"runs": [...]} med ett per källa:

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

Medan appen körs skriver sync ut sin enda rad och ingen JSON. Fel går till stderr som error: <what happened and what to do>.

Slutkoder

kod betydelse
0 ok, också en körning som gratiskvoten avbröt
1 exportfel: ett objekt misslyckades, körningen stötte på ett fel, eller den valde objekt och skrev inga
2 behöver inställning: appen är inte ansluten, mappen har ingen åtkomst, mappen eller taggen hittades inte, inget att exportera; doctor hittade problem; det installerade kommandot har ett gammalt format eller appen det pekar på finns inte längre
64 användning: okänt kommando eller okänd flagga, saknat eller felaktigt värde, --folder med Bear, list folders --source bear, exporter ensamt i en terminal

Var filerna hamnar

sync skriver till exportmappen som är inställd för varje app i Exporter, som ~/Documents/notes eller ~/Documents/messages; export skriver till --dest. En mapp på hemmappens nivå eller en nivå under den, som själva ~/Documents, får en undermapp per app (notes-export, messages-export och så vidare), och en djupare mapp används som den är. Sammanfattningsraden (efter pilen) och JSON-fältet root visar den verkliga mappen.

Varje exportmapp innehåller .exporter/last-export.json och .exporter/last-export.md (den senaste körningen) och .exporter/history/ (de senaste 50 körningarna). Varje app har också .exporter/files.json, varje fil en körning skrev: nästa körning tar bara bort filer som står där och som inget objekt längre ger upphov till, så anteckningar du raderat, bytt namn på eller taggat om förlorar sin gamla fil (Skärmtid tar aldrig bort en dagsfil). Exporter från Apple Anteckningar och Logseq får också bases/ med vyer för Obsidian.

Gratiskvot

Kommandoraden har samma kvoter som appen:

app gratis
Apple Anteckningar 100 anteckningar
Kontakter 100 kontakter
Meddelanden de 50 senaste konversationerna
Skärmtid de 10 senaste dagarna vid den första synkningen, och bara de: senare dagar kräver upplåsningen
Dokument de 10 senast ändrade dokumenten
Bear och Logseq obegränsat

Objekt som redan exporterats fortsätter att synkas om gratis; kvoten stoppar bara nya. En körning som når den exporterar ändå det den får, avslutar med 0 och skriver ut en notering (inte 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 innehåller nivån och antalet använda för Apple Anteckningar, Kontakter, Meddelanden och Skärmtid. Varje begränsad app låses upp med sitt eget engångsköp i appen Exporter, prissatt per land, ingen prenumeration och ingen betalning på webben. Kommandoraden läser köpet vid varje körning; om App Store inte svarar inom 5 sekunder fortsätter körningen på gratiskvoten.

Schemaläggning

exporter help cron skriver ut de här raderna med kommandots fullständiga sökväg på din Mac: använd den, eftersom crons PATH kanske inte innehåller installationsmappen. I en crontab skriver du % som \%:

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

För Carbon Copy Cloner och andra säkerhetskopieringsverktyg kör du exporter sync som ett skript före körningen och förgrenar på slutkoden. Kommandot förblir anslutet under hela exporten, även när macOS pausar det när ingen är inloggad. Medan appen körs, med fönstret öppet eller stängt, gör sync ingenting: realtidssynkningen håller redan mappen aktuell.

Ett säkerhetskopieringsverktyg som kör sina skript som root (det gör Carbon Copy Cloner) måste starta exporter i den inloggade användarens session, inte bara som den användaren. Bara sudo -u stoppar det direkt med slutkod 133; sätt launchctl asuser framför:

/bin/launchctl asuser "$(id -u "$CONSOLE_USER")" /usr/bin/sudo -u "$CONSOLE_USER" exporter sync

MCP-server

Det är appen, inte kommandoraden, som kör en lokal MCP-server som låter Claude, Cursor, VS Code och andra klienter söka i och läsa dina exporter, på http://localhost:8744/mcp. Sidan om MCP-servern täcker allt om den, från att starta den till dess sex verktyg.

Felsökning

Kör exporter doctor först; varje kontroll som misslyckas skriver ut sin lösning. Hjälp täcker också appens meddelanden.

  • X is not authorized: lägg till mappen (eller en överordnad mapp) på kortet Kommandorad och kör sedan igen. exporter list dests visar vad som har getts åtkomst
  • apple notes is not set up. open Exporter and connect Apple Notes + an export folder. (samma för varje app): anslut den i Exporter
  • sync skriver ut att Exporter körs: inget att göra, appen håller mappen aktuell. Använd export --dest för en separat kopia
  • no notes were written. run "exporter doctor" to check folders and permissions.: körningen valde anteckningar och skrev inga; doctor kontrollerar mapparna och behörigheterna
  • bookmark broken: mappen har flyttats, raderats eller så är dess volym inte ansluten. Välj den igen i appen
  • det installerade kommandot har ett gammalt format, eller cron och säkerhetskopieringsverktyg ser slutkod 19: klistra in installationskommandot igen
  • appen har flyttats sedan du installerade kommandot: klistra in installationskommandot igen
  • upplåst men körningen säger gratis: köpkontrollen väntar högst 5 sekunder och fortsätter sedan på gratiskvoten. Kör igen
  • ett problem som doctor inte kan förklara: exporter report --send --email you@example.com

Exporter

Version 5.2 (App Store)

macOS 15 eller senare

exporter@tinysend.com

© system operator