Pobierz Exporter
DokumentacjaCLI

Wiersz poleceń exporter

Uruchamiaj eksporty z Terminala, crona, narzędzi do kopii zapasowych i agentów.

exporter to aplikacja Exporter na Maca uruchomiona bez okna. Używa tych samych połączeń, folderów eksportu, wyboru i ustawień, które skonfigurowałeś w aplikacji, i zapisuje do tego samego dziennika eksportu. Działa, gdy aplikacja jest zamknięta, i nigdy o nic nie pyta: gdy czegoś brakuje, przerywa uruchomienie z kodem wyjścia 2 i jednym wierszem z informacją, co zrobić. Tylko macOS.

Instalacja

  1. Zainstaluj Exportera z Mac App Store (pobierz) i otwórz go.
  2. Połącz aplikację (Notatki Apple, Bear, Logseq, Kontakty, Wiadomości lub Czas przed ekranem) albo folder Dokumentów i wybierz jego folder eksportu (pierwsze kroki). Te uprawnienia można nadać tylko w aplikacji.
  3. Na karcie Wiersz poleceń w aplikacji naciśnij „kopiuj polecenie instalacji” i wklej je raz w Terminalu.

Aplikacja działa w sandboksie i nie może zapisywać w twoim PATH, dlatego ostatni krok to wklejenie. Wiersz instaluje exporter w /opt/homebrew/bin, gdy ten folder istnieje i należy do ciebie (bez sudo), w przeciwnym razie w /usr/local/bin przez sudo. Ponowne wklejenie jest bezpieczne; zastępuje to, co tam było. exporter help install wypisuje wiersz dla twojego Maca.

Źródła

--source przyjmuje jedno z tych:

źródło przyjmuje też zapisuje
apple apple-notes, applenotes, notes markdown lub html
bear markdown lub html
logseq zawsze markdown
contacts apple-contacts, addressbook zawsze markdown
messages imessage, chats, conversations zawsze markdown
screentime screen-time, usage zawsze markdown, jeden plik na dzień
documents docs, files, pdf formaty zaznaczone na karcie Dokumenty

Formaty

--format przyjmuje markdown (lub md) albo html; wielkość liter nie ma znaczenia. Wszystko inne przerywa działanie z error: --format pdf: expected markdown | html i kodem 64.

  • bez tej flagi sync zapisuje każdą aplikację w formacie ustawionym na jej karcie (Notatki Apple i Bear mają każde własny), a export zapisuje zgodnie z ustawieniem eksportowanej aplikacji; exporter help sync i exporter help export pokazują bieżące ustawienia
  • Logseq, Kontakty, Wiadomości i Czas przed ekranem są zawsze w markdown, a Dokumenty zapisują formaty zaznaczone na swojej karcie, więc dla nich --format html jest ignorowane z komunikatem: note: logseq export is always markdown, so --format is ignored for this source.
  • Notatki Apple zapisują jedną stronę .html na notatkę (format HTML), z załącznikami skopiowanymi do attachments/ obok niej i linkowanymi, bez frontmattera. HTML z Bear to zwykły tekst notatki w <pre>, bez stylów, z odwołaniami do załączników zostawionymi jako tekst Markdown: pliki są kopiowane, a nie linkowane
  • serwer MCP czyta tylko pliki markdown, więc eksport wyłącznie w HTML jest dla niego niewidoczny
  • Notatki Apple i Bear zapisują jeden format na uruchomienie; tylko Dokumenty zapisują oba w jednej synchronizacji. Uruchomienie usuwa tylko stare pliki własnego formatu, więc po przełączeniu pliki drugiego formatu zostają w folderze. Dla obu formatów daj każdemu własny folder:
exporter export --dest ~/Backups/notes-md   --format markdown
exporter export --dest ~/Backups/notes-html --format html

sync

Uruchamia eksport skonfigurowany w aplikacji, raz, przyrostowo, do folderów eksportu aplikacji.

exporter sync [--source <source>]... [--format markdown|html] [--full] [--json] [--quiet]
flaga co robi domyślnie
--source <source> tylko ta aplikacja, można powtarzać każda połączona aplikacja; niepołączone są pomijane
--format markdown|html tylko dla tego uruchomienia, ustawienie w aplikacji się nie zmienia. Trafia do tego samego folderu eksportu co drugi format; aby zachować oba, eksportuj każdy do osobnego folderu przez export --dest ustawienie z aplikacji
--full eksportuje wszystko ponownie. Przed zapisem usuwa tylko pliki zapisane przez Exporter; wszystko inne w folderze eksportu zostaje wyłączone
--json podsumowanie czytelne dla maszyn wyłączone
--quiet, -q tylko błędy wyłączone
exporter sync --source apple
apple notes: exporting…
apple notes: 1204 of 1204 exported · 3 removed · 18.2s · markdown → /Users/me/Documents/notes

Wiersz podsumowania to <source>: <succeeded> of <selected> exported, potem, jeśli występują, N failed, N removed (pliki elementów, które zostały usunięte, przemianowane lub przeniesione), N attachment issues, a na końcu czas trwania, format i zapisany folder.

Jeśli aplikacja działa, sync niczego nie eksportuje, kończy się kodem 0 i wypisuje Exporter is running: real-time sync is live, the export root is already current.

export

Jednorazowy eksport do wybranego folderu, dla migawek i skryptów. Działa bez problemu, gdy aplikacja jest otwarta.

exporter export --dest <folder> [--source <source>] [--format markdown|html] [--organize folders|tags|smart] [--folder "Name"]... [--tag name]... [--dry-run] [--json] [--quiet]
flaga co robi domyślnie
--dest <folder> wymagana. Musi leżeć w folderze dodanym na karcie Wiersz poleceń w aplikacji („dodaj folder…”). Uprawnienie dla ~/Backups obejmuje każdy folder pod nim brak
--source <source> aplikacja do eksportu apple
--format markdown|html format dla tego uruchomienia ustawienie z aplikacji
--organize folders|tags|smart tylko Notatki Apple: jak notatki są rozłożone w folderach ustawienie z aplikacji
--folder "Name" tylko ten folder Notatek Apple, można powtarzać, nazwa bez rozróżniania wielkości liter wybór zapisany w aplikacji
--tag name tylko ten tag, można powtarzać, Notatki Apple lub Bear wybór zapisany w aplikacji
--dry-run wypisuje, co zostałoby wyeksportowane, niczego nie zapisuje wyłączone
--json, --quiet (-q) jak przy sync wyłączone

Bez --folder ani --tag Notatki Apple i Bear eksportują wybór zapisany w aplikacji. Logseq eksportuje cały graf, Kontakty każdą wizytówkę, Wiadomości każdą rozmowę, Czas przed ekranem każdy dzień; filtry są dla nich ignorowane z komunikatem.

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 co pokazuje JSON
sources każda aplikacja, połączona lub nie, z liczbą elementów. Dokumenty nie są wymienione [{"source": "apple", "connected": true, "notes": 1204}, {"source": "messages", "connected": true, "conversations": 1532}, {"source": "bear", "connected": false}], z pages dla logseq, contacts i days dla screen-time
folders foldery Notatek Apple z liczbą notatek, z wcięciem według głębokości. --source bear to błąd (kod 64) [{"name": "Work", "notes": 42, "level": 0}]
tags tagi z liczbą notatek, domyślnie z Notatek Apple, z Bear przy --source bear [{"name": "journal", "notes": 12}]
dests foldery, do których może zapisywać export --dest, plus folder eksportu każdej aplikacji [{"path": "/Users/me/Backups", "kind": "granted"}], gdzie kind to granted, granted, volume not mounted lub 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

Z --json: jeden obiekt na aplikację, o nazwach apple-notes, bear, logseq, contacts, messages, screen-time, documents, każdy {"connected": true, "lastExport": "2026-09-11 03:00"} (null, gdy nigdy nie eksportowano); destinations (ścieżki); tier (full lub free, odblokowanie Notatek Apple) i freeNotesUsed; contactsTier i freeContactsUsed; messagesTier i freeConversationsUsed; screenTimeTier i freeDaysUsed; appRunning. Czasy są lokalne, yyyy-MM-dd HH:mm.

log

Ostatnie uruchomienia eksportu, od najnowszych: ten sam dziennik, który pokazuje aplikacja, ze wszystkich folderów eksportu i dodanych folderów --dest. Foldery z datą tworzone w dodanym folderze nie są czytane; ich zapis jest w <folder>/.exporter/.

exporter log [--last N] [--json]
flaga co robi domyślnie
--last N ile uruchomień 10
--json jeden obiekt na uruchomienie wyłączone
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 to clean, warnings (brakujące załączniki) lub failures.

doctor

Sprawdza, czy eksport bez okna będzie działał, i wypisuje jeden wiersz na test: ok, FAIL z wierszem fix: pod spodem, warn lub -- dla informacji.

exporter doctor

Sprawdza, czy baza danych każdej połączonej aplikacji jest czytelna, a jego folder eksportu zapisywalny, czy każde zapisane uprawnienie do folderu działa, czy każdy folder --dest jest zapisywalny, a także indeks i zainstalowane polecenie. Na końcu podaje poziom wersji, informację, czy aplikacja działa, i ostatnią awarię, jeśli była. Kod 0 wypisuje all good., kod 2 wypisuje N problem(s) found.

report

Wypisuje raport diagnostyczny (wersja aplikacji, macOS i sprzęt, stan połączeń, ostatnie uruchomienia, ostatnia awaria; bez treści notatek) i kopiuje go do schowka.

exporter report [--send] [--email <addr>]
flaga co robi domyślnie
--send wysyła raport do nas i wypisuje sent. albo offline: queued, will send on the next run or app launch. wyłączone
--email <addr> dodaje twój adres, żebyśmy mogli odpowiedzieć brak

help i version

  • exporter help [topic]: tematy sync, export, list, status, log, doctor, report, cron, install. Pomoc do polecenia pokazuje twoje bieżące ustawienia jako wartości domyślne
  • sync, export, list, log i report przyjmują też --help lub -h
  • exporter version (lub --version, -v) wypisuje exporter 3.24
  • samo exporter w terminalu wypisuje przegląd i kończy się kodem 64

Wynik JSON

--json działa z sync, export, list, status i log. Wynik jest sformatowany, z posortowanymi kluczami. Przy sync i export dodaj --quiet: bez niego wiersze postępu i komunikaty są wypisywane na stdout przed JSON. export wypisuje jeden obiekt podsumowania, sync wypisuje {"runs": [...]} z jednym obiektem na źródło:

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

Gdy aplikacja działa, sync wypisuje swój jeden wiersz i żadnego JSON. Błędy trafiają na stderr jako error: <what happened and what to do>.

Kody wyjścia

kod znaczenie
0 ok, także uruchomienie przerwane przez darmowy limit
1 błędy eksportu: element się nie wyeksportował, uruchomienie trafiło na błąd albo wybrało elementy i nie zapisało żadnego
2 wymaga konfiguracji: aplikacja niepołączona, brak uprawnienia do folderu, nie znaleziono folderu lub tagu, nic do eksportu; doctor znalazł problemy; zainstalowane polecenie ma stary format albo aplikacja, na którą wskazuje, zniknęła
64 użycie: nieznane polecenie lub flaga, brakująca lub błędna wartość, --folder z Bear, list folders --source bear, samo exporter w terminalu

Gdzie trafiają pliki

sync zapisuje do folderu eksportu ustawionego dla każdej aplikacji w Exporterze, jak ~/Documents/notes lub ~/Documents/messages; export zapisuje do --dest. Folder na poziomie katalogu domowego lub jeden niżej, jak sam ~/Documents, dostaje podfolder dla każdej aplikacji (notes-export, messages-export i tak dalej), a głębszy folder jest używany bez zmian. Wiersz podsumowania (za strzałką) i root w JSON pokazują rzeczywisty folder.

Każdy folder eksportu zawiera .exporter/last-export.json i .exporter/last-export.md (ostatnie uruchomienie) oraz .exporter/history/ (ostatnie 50 uruchomień). Notatki Apple, Kontakty, Wiadomości, Czas przed ekranem i Dokumenty prowadzą też .exporter/files.json, listę każdego pliku zapisanego przez uruchomienie: następne uruchomienie usuwa tylko pliki z tej listy, których żaden element już nie tworzy (Czas przed ekranem nigdy nie usuwa pliku dnia). Bear i Logseq też usuwają przy następnym uruchomieniu pliki notatek, które usunąłeś, przemianowałeś lub którym zmieniłeś tagi. Eksporty Notatek Apple i Logseq dostają też bases/ z widokami Obsidian.

Darmowy limit

Wiersz poleceń ma te same limity co aplikacja:

aplikacja za darmo
Notatki Apple 100 notatek
Kontakty 100 kontaktów
Wiadomości 10 najnowszych rozmów
Czas przed ekranem 10 ostatnich dni przy pierwszej synchronizacji i tylko one: kolejne dni wymagają odblokowania
Dokumenty 10 ostatnio zmienionych dokumentów
Bear i Logseq bez limitu

Już wyeksportowane elementy dalej synchronizują się za darmo; limit zatrzymuje tylko nowe. Uruchomienie, które go osiąga, nadal eksportuje to, co może, kończy się kodem 0 i wypisuje komunikat (nie przy --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 zawiera poziom i liczbę wykorzystanych elementów dla Notatek Apple, Kontaktów, Wiadomości i Czasu przed ekranem. Każdą aplikację z limitem odblokowujesz osobnym jednorazowym zakupem w Exporterze, w cenie twojego kraju, bez abonamentu i bez płatności przez stronę. Wiersz poleceń sprawdza zakup przy każdym uruchomieniu; jeśli App Store nie odpowie w ciągu 5 sekund, uruchomienie działa dalej w ramach darmowego limitu.

Harmonogram

exporter help cron wypisuje te wiersze z pełną ścieżką polecenia na twoim Macu: użyj jej, bo PATH crona może nie zawierać folderu instalacji. W crontab zapisz % jako \%:

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

W Carbon Copy Cloner i innych narzędziach do backupu uruchamiaj exporter sync jako skrypt przed kopią i reaguj na kod wyjścia. Polecenie pozostaje aktywne przez cały eksport, nawet gdy macOS wstrzymuje je, bo nikt nie jest zalogowany. Gdy aplikacja działa, z otwartym lub zamkniętym oknem, sync nic nie robi: synchronizacja na żywo już utrzymuje folder w aktualności.

Serwer MCP

To aplikacja, a nie wiersz poleceń, uruchamia lokalny serwer MCP, który pozwala Claude, Cursor, VS Code i innym klientom przeszukiwać i czytać twoje eksporty, pod adresem http://localhost:8744/mcp. Strona o serwerze MCP opisuje wszystko o nim, od uruchomienia po sześć narzędzi.

Rozwiązywanie problemów

Najpierw uruchom exporter doctor; każdy nieudany test wypisuje sposób naprawy. Rozwiązywanie problemów omawia też komunikaty aplikacji.

  • X is not authorized: dodaj folder (lub folder nadrzędny) na karcie Wiersz poleceń i uruchom ponownie. exporter list dests pokazuje, co ma uprawnienia
  • apple notes is not set up. open Exporter and connect Apple Notes + an export folder. (tak samo dla każdej aplikacji): połącz ją w Exporterze
  • sync wypisuje, że Exporter działa: nic nie trzeba robić, aplikacja utrzymuje folder w aktualności. Użyj export --dest dla osobnej kopii
  • no notes were written. run "exporter doctor" to check folders and permissions.: uruchomienie wybrało notatki i nie zapisało żadnej; doctor sprawdza foldery i uprawnienia
  • bookmark broken: folder został przeniesiony lub usunięty albo jego wolumin nie jest podłączony. Wybierz go ponownie w aplikacji
  • zainstalowane polecenie ma stary format albo cron i narzędzia do backupu widzą kod 19: wklej ponownie polecenie instalacji
  • aplikacja została przeniesiona od czasu instalacji polecenia: wklej ponownie polecenie instalacji
  • odblokowane, a uruchomienie mówi, że wersja darmowa: sprawdzenie zakupu czeka najwyżej 5 sekund, a potem działa dalej w ramach darmowego limitu. Uruchom ponownie
  • problem, którego doctor nie umie wyjaśnić: exporter report --send --email you@example.com

Exporter

Wersja 3.24 (App Store)

macOS 15 lub nowszy

exporter@tinysend.com

© system operator