Αποκτήστε το Exporter
ΤεκμηρίωσηCLI

Η γραμμή εντολών exporter

Εκτελέστε τις εξαγωγές σας από το Τερματικό, το cron, εργαλεία αντιγράφων ασφαλείας και πράκτορες.

Το exporter είναι η εφαρμογή Exporter για Mac χωρίς παράθυρο. Χρησιμοποιεί τις ίδιες συνδέσεις, τους ίδιους φακέλους εξαγωγής, την ίδια επιλογή και τις ίδιες ρυθμίσεις που ορίσατε στην εφαρμογή, και γράφει στο ίδιο αρχείο καταγραφής εξαγωγών. Λειτουργεί ενώ η εφαρμογή είναι κλειστή και δεν κάνει ποτέ ερωτήσεις: οτιδήποτε λείπει σταματά την εκτέλεση με κωδικό εξόδου 2 και μία γραμμή που λέει τι να κάνετε. Μόνο για macOS.

Εγκατάσταση

  1. Εγκαταστήστε το Exporter από το Mac App Store (λήψη) και ανοίξτε το.
  2. Συνδέστε μια εφαρμογή (Σημειώσεις Apple, Bear, Logseq, Επαφές, Μηνύματα ή Χρόνος επί οθόνης) ή έναν φάκελο Εγγράφων, και επιλέξτε τον φάκελο εξαγωγής (πρώτα βήματα). Αυτές οι άδειες δίνονται μόνο μέσα στην εφαρμογή.
  3. Στην κάρτα «Γραμμή εντολών» της εφαρμογής, πατήστε «αντιγραφή εντολής εγκατάστασης» και επικολλήστε την εντολή μία φορά στο Τερματικό.

Η εφαρμογή τρέχει σε sandbox και δεν μπορεί να γράψει στο PATH σας, γι’ αυτό το τελευταίο βήμα είναι μια επικόλληση. Η γραμμή εγκαθιστά το exporter στο /opt/homebrew/bin όταν αυτός ο φάκελος υπάρχει και σας ανήκει (χωρίς sudo), αλλιώς στο /usr/local/bin με sudo. Η επανάληψη της επικόλλησης είναι ασφαλής: αντικαθιστά ό,τι υπήρχε. Το exporter help install εμφανίζει τη γραμμή για το Mac σας.

Πηγές

Το --source δέχεται ένα από τα εξής:

πηγή γίνεται επίσης δεκτό γράφει
apple apple-notes, applenotes, notes markdown ή html
bear markdown ή html
logseq πάντα markdown
contacts apple-contacts, addressbook πάντα markdown
messages imessage, chats, conversations πάντα markdown
screentime screen-time, usage πάντα markdown, ένα αρχείο ανά ημέρα
documents docs, files, pdf τις μορφές που είναι επιλεγμένες στην κάρτα Έγγραφα

Μορφές

Το --format δέχεται markdownmd) ή html, χωρίς διάκριση πεζών και κεφαλαίων. Οτιδήποτε άλλο σταματά με error: --format pdf: expected markdown | html και έξοδο 64.

  • χωρίς αυτό, το sync γράφει κάθε εφαρμογή στη μορφή που έχει οριστεί στην κάρτα της (οι Σημειώσεις Apple και το Bear έχουν η καθεμία τη δική της) και το export γράφει τη ρύθμιση της εφαρμογής που εξάγει. Τα exporter help sync και exporter help export δείχνουν τις τρέχουσες
  • το Logseq, οι Επαφές, τα Μηνύματα και ο Χρόνος επί οθόνης είναι πάντα markdown, και τα Έγγραφα γράφουν τις μορφές που είναι επιλεγμένες στην κάρτα τους, οπότε γι’ αυτά το --format html αγνοείται με μια σημείωση: note: logseq export is always markdown, so --format is ignored for this source.
  • οι Σημειώσεις Apple γράφουν μία σελίδα .html ανά σημείωση (η μορφή HTML), με τα συνημμένα αντιγραμμένα στο attachments/ δίπλα της και συνδεδεμένα, χωρίς front matter. Το HTML του Bear είναι το απλό κείμενο της σημείωσης μέσα σε ένα <pre>, χωρίς μορφοποίηση, και οι αναφορές στα συνημμένα μένουν ως κείμενο Markdown: τα αρχεία αντιγράφονται, δεν συνδέονται
  • ο διακομιστής MCP διαβάζει μόνο αρχεία markdown, οπότε μια εξαγωγή που είναι μόνο HTML είναι αόρατη γι’ αυτόν
  • οι Σημειώσεις Apple και το Bear γράφουν μία μορφή ανά εκτέλεση· μόνο τα Έγγραφα γράφουν και τις δύο σε έναν συγχρονισμό. Μια εκτέλεση αφαιρεί μόνο παλιά αρχεία της δικής της μορφής, οπότε μια αλλαγή μορφής αφήνει τα αρχεία της άλλης μορφής στον φάκελο. Για να έχετε και τις δύο μορφές, δώστε στην καθεμία τον δικό της φάκελο:
exporter export --dest ~/Backups/notes-md   --format markdown
exporter export --dest ~/Backups/notes-html --format html

sync

Εκτελεί την εξαγωγή που ρυθμίσατε στην εφαρμογή, μία φορά, σταδιακά, στους φακέλους εξαγωγής της εφαρμογής.

exporter sync [--source <source>]... [--format markdown|html] [--full] [--json] [--quiet]
επιλογή τι κάνει προεπιλογή
--source <source> μόνο αυτή η εφαρμογή, μπορεί να επαναληφθεί κάθε συνδεδεμένη εφαρμογή, οι μη συνδεδεμένες παραλείπονται
--format markdown|html μόνο για αυτή την εκτέλεση, η ρύθμιση της εφαρμογής δεν αλλάζει. Καταλήγει στον ίδιο φάκελο εξαγωγής με την άλλη μορφή. Για να κρατήσετε και τις δύο, εξαγάγετε την καθεμία στον δικό της φάκελο με export --dest η ρύθμιση της εφαρμογής
--full εξάγει ξανά τα πάντα. Πριν γράψει, αφαιρεί μόνο τα αρχεία που έγραψε το Exporter· οτιδήποτε άλλο στον φάκελο εξαγωγής μένει ανενεργό
--json σύνοψη αναγνώσιμη από μηχανή ανενεργό
--quiet, -q μόνο σφάλματα ανενεργό
exporter sync --source apple
apple notes: exporting…
apple notes: 1204 of 1204 exported · 3 removed · 18.2s · markdown → /Users/me/Documents/notes

Η γραμμή σύνοψης είναι <source>: <succeeded> of <selected> exported, μετά, όταν υπάρχουν, N failed, N removed (αρχεία στοιχείων που διαγράφηκαν, μετονομάστηκαν ή μετακινήθηκαν), N attachment issues, και μετά η διάρκεια, η μορφή και ο φάκελος όπου γράφτηκαν.

Αν η εφαρμογή τρέχει, το sync δεν εξάγει τίποτα, τερματίζει με 0 και εμφανίζει Exporter is running: real-time sync is live, the export root is already current.

export

Μια εξαγωγή μίας φοράς σε φάκελο της επιλογής σας, για στιγμιότυπα και σενάρια. Λειτουργεί κανονικά ενώ η εφαρμογή είναι ανοιχτή.

exporter export --dest <folder> [--source <source>] [--format markdown|html] [--organize folders|tags|smart] [--folder "Name"]... [--tag name]... [--dry-run] [--json] [--quiet]
επιλογή τι κάνει προεπιλογή
--dest <folder> υποχρεωτικό. Πρέπει να βρίσκεται μέσα σε φάκελο με άδεια από την κάρτα «Γραμμή εντολών» της εφαρμογής («προσθήκη φακέλου…»). Μια άδεια στο ~/Backups καλύπτει κάθε φάκελο κάτω από αυτόν καμία
--source <source> η εφαρμογή για εξαγωγή apple
--format markdown|html η μορφή για αυτή την εκτέλεση η ρύθμιση της εφαρμογής
--organize folders|tags|smart μόνο για τις Σημειώσεις Apple: πώς οργανώνονται οι σημειώσεις σε φακέλους η ρύθμιση της εφαρμογής
--folder "Name" μόνο αυτός ο φάκελος των Σημειώσεων Apple, μπορεί να επαναληφθεί, το όνομα συγκρίνεται χωρίς διάκριση πεζών και κεφαλαίων η επιλογή που αποθηκεύτηκε στην εφαρμογή
--tag name μόνο αυτή η ετικέτα, μπορεί να επαναληφθεί, Σημειώσεις Apple ή Bear η επιλογή που αποθηκεύτηκε στην εφαρμογή
--dry-run εμφανίζει τι θα εξαγόταν, χωρίς να γράψει τίποτα ανενεργό
--json, --quiet (-q) όπως στο sync ανενεργό

Χωρίς --folder ή --tag, οι Σημειώσεις Apple και το Bear εξάγουν την επιλογή που αποθηκεύτηκε στην εφαρμογή. Το Logseq εξάγει ολόκληρο το γράφημα, οι Επαφές κάθε κάρτα, τα Μηνύματα κάθε συνομιλία, ο Χρόνος επί οθόνης κάθε ημέρα. Τα φίλτρα αγνοούνται γι’ αυτά, με μια σημείωση.

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]
λίστα τι δείχνει JSON
sources κάθε εφαρμογή, συνδεδεμένη ή όχι, με το πλήθος της. Τα Έγγραφα δεν εμφανίζονται [{"source": "apple", "connected": true, "notes": 1204}, {"source": "messages", "connected": true, "conversations": 1532}, {"source": "bear", "connected": false}], με pages για το logseq, contacts, και days για το screen-time
folders οι φάκελοι των Σημειώσεων Apple με το πλήθος σημειώσεων, με εσοχή ανάλογα με το βάθος. Το --source bear είναι σφάλμα (έξοδος 64) [{"name": "Work", "notes": 42, "level": 0}]
tags ετικέτες με πλήθος, από προεπιλογή των Σημειώσεων Apple, του Bear με --source bear [{"name": "journal", "notes": 12}]
dests οι φάκελοι όπου μπορεί να γράψει το export --dest, και ο φάκελος εξαγωγής κάθε εφαρμογής [{"path": "/Users/me/Backups", "kind": "granted"}], όπου το kind είναι granted, granted, volume not mounted ή 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 · 10 of 10 free conversations used
app            not running

Με --json: ένα αντικείμενο ανά εφαρμογή, με όνομα apple-notes, bear, logseq, contacts, messages, screen-time, documents, το καθένα {"connected": true, "lastExport": "2026-09-11 03:00"} (null αν δεν έγινε ποτέ εξαγωγή). Επίσης destinations (διαδρομές), tier (full ή free, το ξεκλείδωμα των Σημειώσεων Apple) και freeNotesUsed, contactsTier και freeContactsUsed, messagesTier και freeConversationsUsed, screenTimeTier και freeDaysUsed, appRunning. Οι ώρες είναι τοπικές, yyyy-MM-dd HH:mm.

log

Οι πρόσφατες εκτελέσεις εξαγωγής, οι νεότερες πρώτες: το ίδιο αρχείο καταγραφής που δείχνει η εφαρμογή, από κάθε φάκελο εξαγωγής και κάθε φάκελο --dest με άδεια. Οι φάκελοι με ημερομηνία που δημιουργούνται κάτω από φάκελο με άδεια δεν διαβάζονται. Η καταγραφή τους βρίσκεται στο <folder>/.exporter/.

exporter log [--last N] [--json]
επιλογή τι κάνει προεπιλογή
--last N πόσες εκτελέσεις 10
--json ένα αντικείμενο ανά εκτέλεση ανενεργό
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 είναι clean, warnings (λείπουν συνημμένα) ή failures.

doctor

Ελέγχει ότι η εξαγωγή χωρίς παράθυρο θα λειτουργήσει και εμφανίζει μία γραμμή ανά έλεγχο: ok, FAIL με μια γραμμή fix: από κάτω, warn, ή -- για πληροφορία.

exporter doctor

Ελέγχει ότι η βάση δεδομένων κάθε συνδεδεμένης εφαρμογής διαβάζεται και ο φάκελος εξαγωγής της είναι εγγράψιμος, ότι κάθε αποθηκευμένη άδεια φακέλου επιλύεται, ότι κάθε φάκελος --dest είναι εγγράψιμος, το ευρετήριο, και την εγκατεστημένη εντολή. Τελειώνει με το επίπεδο της έκδοσης, αν τρέχει η εφαρμογή, και την τελευταία κατάρρευση αν υπήρξε. Με έξοδο 0 εμφανίζει all good., με έξοδο 2 εμφανίζει N problem(s) found.

report

Εμφανίζει μια διαγνωστική αναφορά (έκδοση εφαρμογής, macOS και υλικό, κατάσταση συνδέσεων, πρόσφατες εκτελέσεις, τελευταία κατάρρευση, χωρίς περιεχόμενο σημειώσεων) και την αντιγράφει στο πρόχειρο.

exporter report [--send] [--email <addr>]
επιλογή τι κάνει προεπιλογή
--send μας στέλνει την αναφορά και εμφανίζει sent., ή offline: queued, will send on the next run or app launch. ανενεργό
--email <addr> προσθέτει τη διεύθυνσή σας ώστε να μπορούμε να απαντήσουμε καμία

help και version

  • exporter help [topic]: θέματα sync, export, list, status, log, doctor, report, cron, install. Η βοήθεια για μια εντολή δείχνει τις τρέχουσες ρυθμίσεις σας ως προεπιλογές
  • τα sync, export, list, log και report δέχονται επίσης --help ή -h
  • το exporter version--version, -v) εμφανίζει exporter 3.24
  • το exporter σκέτο σε τερματικό εμφανίζει την επισκόπηση και τερματίζει με 64

Έξοδος JSON

Το --json λειτουργεί στα sync, export, list, status και log. Η έξοδος είναι μορφοποιημένη με ταξινομημένα κλειδιά. Για τα sync και export προσθέστε --quiet: χωρίς αυτό οι γραμμές προόδου και οι σημειώσεις εμφανίζονται στο stdout πριν από το JSON. Το export εμφανίζει ένα αντικείμενο σύνοψης, το sync εμφανίζει {"runs": [...]} με ένα ανά πηγή:

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

Όσο τρέχει η εφαρμογή, το sync εμφανίζει τη μία γραμμή του και κανένα JSON. Τα σφάλματα πηγαίνουν στο stderr ως error: <what happened and what to do>.

Κωδικοί εξόδου

κωδικός σημασία
0 ok, και για εκτέλεση που τη διέκοψε το δωρεάν όριο
1 αποτυχίες εξαγωγής: ένα στοιχείο απέτυχε, η εκτέλεση συνάντησε σφάλμα, ή επέλεξε στοιχεία και δεν έγραψε κανένα
2 χρειάζεται ρύθμιση: η εφαρμογή δεν είναι συνδεδεμένη, ο φάκελος δεν έχει άδεια, ο φάκελος ή η ετικέτα δεν βρέθηκε, τίποτα για εξαγωγή. Το doctor βρήκε προβλήματα. Η εγκατεστημένη εντολή είναι παλιάς μορφής ή η εφαρμογή στην οποία δείχνει δεν υπάρχει πια
64 χρήση: άγνωστη εντολή ή επιλογή, τιμή που λείπει ή είναι λάθος, --folder με Bear, list folders --source bear, exporter σκέτο σε τερματικό

Πού καταλήγουν τα αρχεία

Το sync γράφει στον φάκελο εξαγωγής που έχει οριστεί για κάθε εφαρμογή στο Exporter, όπως το ~/Documents/notes ή το ~/Documents/messages. Το export γράφει στο --dest. Ένας φάκελος στο επίπεδο του αρχικού σας φακέλου ή ένα επίπεδο πιο κάτω, όπως το ίδιο το ~/Documents, παίρνει έναν υποφάκελο ανά εφαρμογή (notes-export, messages-export κ.ο.κ.), και ένας πιο βαθύς φάκελος χρησιμοποιείται όπως είναι. Η γραμμή σύνοψης (μετά το βέλος) και το root του JSON δείχνουν τον πραγματικό φάκελο.

Κάθε φάκελος εξαγωγής περιέχει τα .exporter/last-export.json και .exporter/last-export.md (η τελευταία εκτέλεση), το .exporter/history/ (οι τελευταίες 50 εκτελέσεις). Οι Σημειώσεις Apple, οι Επαφές, τα Μηνύματα, ο Χρόνος επί οθόνης και τα Έγγραφα κρατούν επίσης το .exporter/files.json, κάθε αρχείο που έγραψε μια εκτέλεση: η επόμενη εκτέλεση αφαιρεί μόνο αρχεία αυτής της λίστας που κανένα στοιχείο δεν παράγει πια (ο Χρόνος επί οθόνης δεν αφαιρεί ποτέ αρχείο ημέρας). Το Bear και το Logseq αφαιρούν επίσης στην επόμενη εκτέλεση τα αρχεία των σημειώσεων που διαγράψατε, μετονομάσατε ή των οποίων αλλάξατε την ετικέτα. Οι εξαγωγές Σημειώσεων Apple και Logseq παίρνουν επίσης το bases/ με προβολές για το Obsidian.

Δωρεάν όριο

Η γραμμή εντολών έχει τα ίδια όρια με την εφαρμογή:

εφαρμογή δωρεάν
Σημειώσεις Apple 100 σημειώσεις
Επαφές 100 επαφές
Μηνύματα οι 10 πιο πρόσφατες συνομιλίες
Χρόνος επί οθόνης οι 10 πιο πρόσφατες ημέρες του πρώτου συγχρονισμού, και μόνο αυτές: οι επόμενες ημέρες χρειάζονται το ξεκλείδωμα
Έγγραφα τα 10 πιο πρόσφατα τροποποιημένα έγγραφα
Bear και Logseq απεριόριστα

Τα στοιχεία που έχουν ήδη εξαχθεί συνεχίζουν να συγχρονίζονται δωρεάν. Το όριο σταματά μόνο τα νέα. Μια εκτέλεση που το φτάνει εξάγει ό,τι επιτρέπεται, τερματίζει με 0 και εμφανίζει μια σημείωση (όχι με --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 περιέχει το επίπεδο και το πλήθος που έχει χρησιμοποιηθεί για Σημειώσεις Apple, Επαφές, Μηνύματα και Χρόνο επί οθόνης. Κάθε εφαρμογή με όριο ξεκλειδώνεται με τη δική της εφάπαξ αγορά μέσα στο Exporter, με τιμή ανά χώρα, χωρίς συνδρομή και χωρίς αγορά μέσω ιστού. Η γραμμή εντολών διαβάζει την αγορά σε κάθε εκτέλεση. Αν το App Store δεν απαντήσει μέσα σε 5 δευτερόλεπτα, η εκτέλεση συνεχίζει με το δωρεάν όριο.

Προγραμματισμός

Το exporter help cron εμφανίζει αυτές τις γραμμές με την πλήρη διαδρομή της εντολής στο Mac σας: χρησιμοποιήστε αυτή, επειδή το PATH του cron μπορεί να μην περιλαμβάνει τον φάκελο εγκατάστασης. Σε ένα crontab, γράψτε το % ως \%:

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

Για το Carbon Copy Cloner και άλλα εργαλεία αντιγράφων ασφαλείας, εκτελέστε το exporter sync ως σενάριο πριν από τη δημιουργία αντιγράφου και διακλαδώστε ανάλογα με τον κωδικό εξόδου. Η εντολή μένει συνδεδεμένη για όλη την εξαγωγή, ακόμη κι όταν το macOS την αναστέλλει χωρίς συνδεδεμένο χρήστη. Όσο η εφαρμογή τρέχει, με ανοιχτό ή κλειστό παράθυρο, το sync δεν κάνει τίποτα: ο συγχρονισμός σε πραγματικό χρόνο κρατά ήδη τον φάκελο ενημερωμένο.

Διακομιστής MCP

Η εφαρμογή, όχι η γραμμή εντολών, εκτελεί έναν τοπικό διακομιστή MCP που επιτρέπει στο Claude, στο Cursor, στο VS Code και σε άλλους πελάτες να αναζητούν και να διαβάζουν τις εξαγωγές σας, στο http://localhost:8744/mcp. Η σελίδα του διακομιστή MCP καλύπτει τα πάντα γι’ αυτόν, από την έναρξή του μέχρι τα έξι εργαλεία του.

Αντιμετώπιση προβλημάτων

Εκτελέστε πρώτα το exporter doctor. Κάθε έλεγχος που αποτυγχάνει εμφανίζει τη λύση του. Η Βοήθεια καλύπτει και τα μηνύματα της εφαρμογής.

  • X is not authorized: προσθέστε τον φάκελο (ή έναν γονικό του) στην κάρτα «Γραμμή εντολών» και εκτελέστε ξανά. Το exporter list dests δείχνει ποιοι έχουν άδεια
  • apple notes is not set up. open Exporter and connect Apple Notes + an export folder. (το ίδιο για κάθε εφαρμογή): συνδέστε την στο Exporter
  • το sync λέει ότι το Exporter τρέχει: δεν χρειάζεται τίποτα, η εφαρμογή κρατά τον φάκελο ενημερωμένο. Χρησιμοποιήστε export --dest για ξεχωριστό αντίγραφο
  • no notes were written. run "exporter doctor" to check folders and permissions.: η εκτέλεση επέλεξε σημειώσεις και δεν έγραψε καμία. Το doctor ελέγχει τους φακέλους και τις άδειες
  • bookmark broken: ο φάκελος μετακινήθηκε, διαγράφηκε, ή ο τόμος του δεν είναι προσαρτημένος. Επιλέξτε τον ξανά στην εφαρμογή
  • η εγκατεστημένη εντολή είναι παλιάς μορφής, ή το cron και τα εργαλεία αντιγράφων ασφαλείας βλέπουν έξοδο 19: επικολλήστε ξανά την εντολή εγκατάστασης
  • η εφαρμογή μετακινήθηκε μετά την εγκατάσταση της εντολής: επικολλήστε ξανά την εντολή εγκατάστασης
  • έχετε ξεκλειδώσει αλλά η εκτέλεση λέει free: ο έλεγχος αγοράς περιμένει το πολύ 5 δευτερόλεπτα και μετά συνεχίζει με το δωρεάν όριο. Εκτελέστε ξανά
  • ένα πρόβλημα που το doctor δεν μπορεί να εξηγήσει: exporter report --send --email you@example.com

Exporter

Έκδοση 3.24 (App Store)

macOS 15 ή νεότερο

exporter@tinysend.com

© system operator