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

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

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

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

1. Встановіть Exporter із Mac App Store ([завантажити](https://exporter.dev/download)) і відкрийте його.
2. Під’єднайте застосунок (Нотатки Apple, Bear, Logseq, Контакти, Повідомлення або Екранний час) чи папку Документів і виберіть його папку експорту ([початок роботи](https://exporter.dev/docs/getting-started)). Ці дозволи можна надати лише в застосунку.
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](https://exporter.dev/docs/notes#markdown-and-html)), вкладення копіюються в `attachments/` поруч і пов’язуються, без front matter. HTML від Bear містить простий текст нотатки всередині `<pre>`, без стилів, а посилання на вкладення залишаються текстом Markdown: файли копіюються, а не пов’язуються
- сервер MCP читає лише файли markdown, тож експорт лише в HTML для нього невидимий
- Нотатки Apple і Bear записують один формат за запуск; обидва за одну синхронізацію записують лише Документи. Запуск видаляє лише старі файли свого формату, тож після перемикання файли іншого формату залишаються в папці. Для обох форматів дайте кожному власну папку:

```sh
exporter export --dest ~/Backups/notes-md   --format markdown
exporter export --dest ~/Backups/notes-html --format html
```

## sync

Запускає експорт, налаштований у застосунку, один раз, інкрементно, у папки експорту застосунку.

```sh
exporter sync [--source <source>]... [--format markdown|html] [--full] [--json] [--quiet]
```

| прапорець | що робить | типово |
| --- | --- | --- |
| `--source <source>` | лише цей застосунок, можна повторювати | усі під’єднані застосунки; непід’єднані пропускаються |
| `--format markdown\|html` | лише для цього запуску, параметр застосунку не змінюється. Результат потрапляє в ту саму папку експорту, що й інший формат; щоб зберегти обидва, експортуйте кожен у власну папку через `export --dest` | параметр застосунку |
| `--full` | повторно експортувати все. Перед записом видаляє лише файли, які записав Exporter; усе інше в папці експорту залишається | вимкнено |
| `--json` | підсумок у машиночитному форматі | вимкнено |
| `--quiet`, `-q` | лише помилки | вимкнено |

```sh
exporter sync --source apple
```

```text
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

Одноразовий експорт у вибрану вами папку, для знімків і скриптів. Він добре працює, коли застосунок відкрито.

```sh
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 експортує весь граф, Контакти всі картки, Повідомлення всі розмови, Екранний час усі дні; фільтри для них ігноруються з приміткою.

```sh
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
```

```text
would export 100 apple notes · markdown → /Users/me/Backups/notes
```

## list

```sh
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)` |

```sh
exporter list folders --json
```

```json
[{"name": "Work", "notes": 42, "level": 0}]
```

## status

```sh
exporter status [--json]
```

```text
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/`.

```sh
exporter log [--last N] [--json]
```

| прапорець | що робить | типово |
| --- | --- | --- |
| `--last N` | скільки запусків | 10 |
| `--json` | один об’єкт на запуск | вимкнено |

```text
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` або `--` для інформації.

```sh
exporter doctor
```

Він перевіряє, що база даних кожного під’єднаного застосунку доступна для читання, а його папка експорту для запису, що кожен збережений дозвіл на папку дійсний, що кожна папка `--dest` доступна для запису, а також індекс і встановлену команду. Наприкінці він показує рівень версії, чи працює застосунок, і останній збій, якщо він був. Код 0 виводить `all good.`, код 2 виводить `N problem(s) found.`

## report

Виводить діагностичний звіт (версія застосунку, macOS і обладнання, стан під’єднань, нещодавні запуски, останній збій; без вмісту нотаток) і копіює його в буфер обміну.

```sh
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": [...]}` з одним об’єктом на джерело:

```json
{
  "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`):

```text
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, [ціна залежить від країни](https://exporter.dev/pricing), без підписки й без оплати на сайті. Командний рядок перевіряє покупку під час кожного запуску; якщо App Store не відповідає протягом 5 секунд, запуск продовжується в межах безкоштовного ліміту.

## Розклад

`exporter help cron` виводить ці рядки з повним шляхом до команди на вашому Mac: використовуйте його, бо PATH у cron може не містити папки встановлення. У crontab екрануйте `%` як `\%`:

```sh
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](https://exporter.dev/docs/mcp) описує все про нього, від запуску до шести інструментів.

## Усунення проблем

Спершу запустіть `exporter doctor`; кожна невдала перевірка виводить своє виправлення. [Довідка](https://exporter.dev/docs/help) описує й повідомлення застосунку.

- `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`

## Related

- [MCP server](https://exporter.dev/docs/mcp): Connect Claude and other agents
- [For agents](https://exporter.dev/agents): Skills, command line and MCP for agents
- [Apple Notes](https://exporter.dev/docs/notes): Folders, fields, HTML and fixes
- [Changelog](https://exporter.dev/changelog): What changed in each version

---

human version: https://exporter.dev/uk/docs/cli
every page: https://exporter.dev/llms.txt
