Отримати Exporter
ДокументаціяCLI

Командний рядок exporter

Запускайте свої експорти з Термінала, cron, програм резервного копіювання та агентів.

exporter є застосунком Exporter для Mac, запущеним без вікна. Він використовує ті самі під’єднання, папки експорту, вибір і параметри, які ви налаштували в застосунку, і записує в той самий журнал експорту. Він працює, коли застосунок закрито, і ніколи нічого не запитує: якщо чогось бракує, запуск зупиняється з кодом виходу 2 і одним рядком, що пояснює, що робити. Лише macOS.

Встановлення

  1. Встановіть Exporter із Mac App Store (завантажити) і відкрийте його.
  2. Під’єднайте застосунок (Нотатки Apple, Bear, Logseq, Контакти, Повідомлення або Екранний час) чи папку Документів і виберіть його папку експорту (початок роботи). Ці дозволи можна надати лише в застосунку.
  3. На картці «Командний рядок» у застосунку натисніть «копіювати команду встановлення» і один раз вставте команду в Термінал.

Застосунок працює в пісочниці й не може записувати у ваш 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 приймає markdown (або md) чи 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 кожен застосунок, під’єднаний чи ні, з кількістю. Documents не показується [{"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 гаразд, зокрема запуск, який обірвав безкоштовний ліміт
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