# Linia de comandă exporter

Rulați exporturile din Terminal, cron, utilitare de backup și agenți.

`exporter` este aplicația Exporter pentru Mac rulată fără fereastră. Folosește aceleași conexiuni, dosare de export, selecții și configurări pe care le-ați stabilit în aplicație și scrie în același jurnal de export. Funcționează cât timp aplicația este închisă și nu cere niciodată nimic: orice lipsește oprește rularea cu codul de ieșire 2 și un rând care spune ce e de făcut. Doar macOS.

## Instalare

1. Instalați Exporter din Mac App Store ([descărcare](https://exporter.dev/download)) și deschideți-l.
2. Conectați o aplicație (Apple Notes, Bear, Logseq, Contacte, Mesaje sau Timp de utilizare) ori un dosar Documente și alegeți-i dosarul de export ([primii pași](https://exporter.dev/docs/getting-started)). Aceste permisiuni pot fi acordate doar în aplicație.
3. Pe cardul Linie de comandă din aplicație, apăsați „copiere comandă de instalare” și lipiți-o o dată în Terminal.

Aplicația rulează în sandbox și nu poate scrie în PATH, de aceea ultimul pas este o lipire. Linia instalează `exporter` în `/opt/homebrew/bin` când acel dosar există și vă aparține (fără sudo), altfel în `/usr/local/bin` cu sudo. Lipirea ei din nou nu strică nimic; înlocuiește ce era acolo. `exporter help install` afișează linia pentru Mac-ul dumneavoastră.

## Surse

`--source` acceptă una dintre acestea:

| sursă | acceptat și | scrie |
| --- | --- | --- |
| `apple` | `apple-notes`, `applenotes`, `notes` | markdown sau html |
| `bear` | | markdown sau html |
| `logseq` | | mereu markdown |
| `contacts` | `apple-contacts`, `addressbook` | mereu markdown |
| `messages` | `imessage`, `chats`, `conversations` | mereu markdown |
| `screentime` | `screen-time`, `usage` | mereu markdown, un fișier pe zi |
| `documents` | `docs`, `files`, `pdf` | formatele bifate pe cardul Documente |

## Formate

`--format` acceptă `markdown` (sau `md`) ori `html`; majusculele nu contează. Orice altceva se oprește cu `error: --format pdf: expected markdown | html` și ieșirea 64.

- fără el, `sync` scrie fiecare aplicație în formatul stabilit pe cardul ei (Apple Notes și Bear au fiecare propria configurare), iar `export` scrie în formatul configurat pentru aplicația pe care o exportă; `exporter help sync` și `exporter help export` arată valorile actuale
- Logseq, Contacte, Mesaje și Timp de utilizare sunt mereu markdown, iar Documente scrie formatele bifate pe cardul său, deci pentru ele `--format html` este ignorat cu o notă: `note: logseq export is always markdown, so --format is ignored for this source.`
- Apple Notes scrie o pagină `.html` pentru fiecare notiță ([formatul HTML](https://exporter.dev/docs/notes#markdown-and-html)), cu atașamentele copiate în `attachments/` lângă ea și legate, fără front matter. HTML-ul Bear este textul simplu al notiței într-un `<pre>`, fără stiluri, cu referințele la atașamente lăsate ca text Markdown: fișierele sunt copiate, nu legate
- serverul MCP citește doar fișiere markdown, deci un export doar în HTML îi este invizibil
- Apple Notes și Bear scriu un singur format pe rulare; doar Documente le scrie pe amândouă într-o singură sincronizare. O rulare șterge doar fișierele vechi din propriul format, așa că la schimbarea formatului fișierele celuilalt format rămân în dosar. Pentru ambele formate, dați-i fiecăruia propriul dosar:

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

## sync

Rulează o dată exportul configurat în aplicație, incremental, în dosarele de export ale aplicației.

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

| opțiune | ce face | implicit |
| --- | --- | --- |
| `--source <source>` | doar această aplicație, se poate repeta | fiecare aplicație conectată; cele neconectate sunt omise |
| `--format markdown\|html` | doar pentru această rulare, configurarea din aplicație rămâne neschimbată. Ajunge în același dosar de export ca celălalt format; ca să le păstrați pe amândouă, exportați-le pe fiecare în propriul dosar cu `export --dest` | configurarea din aplicație |
| `--full` | reexportă tot. Înainte de scriere șterge doar fișierele scrise de Exporter; orice altceva din dosarul de export rămâne | dezactivat |
| `--json` | un rezumat lizibil de mașină | dezactivat |
| `--quiet`, `-q` | doar erori | dezactivat |

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

```text
apple notes: exporting…
apple notes: 1204 of 1204 exported · 3 removed · 18.2s · markdown → /Users/me/Documents/notes
```

Rândul de rezumat este `<source>: <succeeded> of <selected> exported`, apoi, când există, `N failed`, `N removed` (fișierele elementelor care au fost șterse, redenumite sau mutate), `N attachment issues`, apoi durata, formatul și dosarul scris.

Dacă aplicația rulează, `sync` nu exportă nimic, iese cu 0 și afișează `Exporter is running: real-time sync is live, the export root is already current.`

## export

Un export unic într-un dosar ales de dumneavoastră, pentru capturi și scripturi. Funcționează și cu aplicația deschisă.

```sh
exporter export --dest <folder> [--source <source>] [--format markdown|html] [--organize folders|tags|smart] [--folder "Name"]... [--tag name]... [--dry-run] [--json] [--quiet]
```

| opțiune | ce face | implicit |
| --- | --- | --- |
| `--dest <folder>` | obligatoriu. Trebuie să fie într-un dosar autorizat pe cardul Linie de comandă din aplicație („adăugare dosar…”). O autorizare pe `~/Backups` acoperă fiecare dosar de sub el | niciunul |
| `--source <source>` | aplicația de exportat | `apple` |
| `--format markdown\|html` | formatul pentru această rulare | configurarea din aplicație |
| `--organize folders\|tags\|smart` | doar Apple Notes: cum sunt așezate notițele în dosare | configurarea din aplicație |
| `--folder "Name"` | doar acest dosar Apple Notes, se poate repeta, numele fără deosebire între majuscule și minuscule | selecția salvată în aplicație |
| `--tag name` | doar această etichetă, se poate repeta, Apple Notes sau Bear | selecția salvată în aplicație |
| `--dry-run` | afișează ce s-ar exporta, nu scrie nimic | dezactivat |
| `--json`, `--quiet` (`-q`) | ca la sync | dezactivat |

Fără `--folder` sau `--tag`, Apple Notes și Bear exportă selecția salvată în aplicație. Logseq exportă tot graful, Contacte fiecare fișă, Mesaje fiecare conversație, Timp de utilizare fiecare zi; filtrele sunt ignorate pentru ele, cu o notă.

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

| listă | ce arată | JSON |
| --- | --- | --- |
| `sources` | fiecare aplicație, conectată sau nu, cu numărul ei. Documente nu este listat | `[{"source": "apple", "connected": true, "notes": 1204}, {"source": "messages", "connected": true, "conversations": 1532}, {"source": "bear", "connected": false}]`, cu `pages` pentru logseq, `contacts` și `days` pentru `screen-time` |
| `folders` | dosarele Apple Notes cu numărul de notițe, indentate după adâncime. `--source bear` este o eroare (ieșire 64) | `[{"name": "Work", "notes": 42, "level": 0}]` |
| `tags` | etichetele cu numărul lor, implicit Apple Notes, Bear cu `--source bear` | `[{"name": "journal", "notes": 12}]` |
| `dests` | dosarele în care poate scrie `export --dest`, plus dosarul de export al fiecărei aplicații | `[{"path": "/Users/me/Backups", "kind": "granted"}]`, unde `kind` este `granted`, `granted, volume not mounted` sau `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
```

Cu `--json`: câte un obiect pentru fiecare aplicație, numit `apple-notes`, `bear`, `logseq`, `contacts`, `messages`, `screen-time`, `documents`, fiecare `{"connected": true, "lastExport": "2026-09-11 03:00"}` (`null` când nu s-a exportat niciodată); `destinations` (căi); `tier` (`full` sau `free`, deblocarea Apple Notes) și `freeNotesUsed`; `contactsTier` și `freeContactsUsed`; `messagesTier` și `freeConversationsUsed`; `screenTimeTier` și `freeDaysUsed`; `appRunning`. Orele sunt locale, `yyyy-MM-dd HH:mm`.

## log

Rulările de export recente, cele mai noi primele: același jurnal pe care îl arată aplicația, din fiecare dosar de export și din fiecare dosar `--dest` autorizat. Dosarele datate create sub un dosar autorizat nu sunt citite; evidența lor este în `<folder>/.exporter/`.

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

| opțiune | ce face | implicit |
| --- | --- | --- |
| `--last N` | câte rulări | 10 |
| `--json` | câte un obiect pentru fiecare rulare | dezactivat |

```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` este `clean`, `warnings` (atașamente lipsă) sau `failures`.

## doctor

Verifică dacă exportul fără interfață va funcționa și afișează câte un rând pentru fiecare verificare: `ok`, `FAIL` cu un rând `fix:` dedesubt, `warn` sau `--` pentru informații.

```sh
exporter doctor
```

Verifică dacă baza de date a fiecărei aplicații conectate poate fi citită și dacă dosarul ei de export poate fi scris, dacă fiecare autorizare de dosar stocată se rezolvă, dacă fiecare dosar `--dest` poate fi scris, indexul și comanda instalată. Se încheie cu nivelul versiunii, dacă aplicația rulează și ultima blocare, dacă a existat. Ieșirea 0 afișează `all good.`, ieșirea 2 afișează `N problem(s) found.`

## report

Afișează un raport de diagnostic (versiunea aplicației, macOS și hardware, starea conexiunilor, rulările recente, ultima blocare; fără conținutul notițelor) și îl copiază în clipboard.

```sh
exporter report [--send] [--email <addr>]
```

| opțiune | ce face | implicit |
| --- | --- | --- |
| `--send` | ne trimite raportul și afișează `sent.` sau `offline: queued, will send on the next run or app launch.` | dezactivat |
| `--email <addr>` | adaugă adresa dumneavoastră ca să vă putem răspunde | niciuna |

## help și version

- `exporter help [topic]`: subiectele `sync`, `export`, `list`, `status`, `log`, `doctor`, `report`, `cron`, `install`. Ajutorul pentru o comandă arată configurările actuale ca valori implicite
- `sync`, `export`, `list`, `log` și `report` acceptă și `--help` sau `-h`
- `exporter version` (sau `--version`, `-v`) afișează `exporter 3.24`
- `exporter` singur într-un terminal afișează prezentarea generală și iese cu 64

## Ieșire JSON

`--json` funcționează cu `sync`, `export`, `list`, `status` și `log`. Ieșirea este formatată, cu chei sortate. Pentru `sync` și `export` adăugați `--quiet`: fără el, rândurile de progres și notele sunt afișate pe stdout înaintea JSON-ului. `export` afișează un singur obiect de rezumat, `sync` afișează `{"runs": [...]}` cu câte unul pentru fiecare sursă:

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

Cât timp aplicația rulează, `sync` afișează rândul său și niciun JSON. Erorile merg pe stderr ca `error: <what happened and what to do>`.

## Coduri de ieșire

| cod | semnificație |
| --- | --- |
| 0 | ok, inclusiv o rulare scurtată de cota gratuită |
| 1 | eșecuri de export: un element a eșuat, rularea a întâlnit o eroare sau a selectat elemente și nu a scris niciunul |
| 2 | necesită configurare: aplicație neconectată, dosar neautorizat, dosar sau etichetă negăsită, nimic de exportat; `doctor` a găsit probleme; comanda instalată are un format vechi sau aplicația spre care indică nu mai există |
| 64 | utilizare: comandă sau opțiune necunoscută, valoare lipsă sau greșită, `--folder` cu Bear, `list folders --source bear`, `exporter` singur într-un terminal |

## Unde ajung fișierele

`sync` scrie în dosarul de export stabilit pentru fiecare aplicație în Exporter, ca `~/Documents/notes` sau `~/Documents/messages`; `export` scrie în `--dest`. Un dosar de la nivelul dosarului de pornire sau cu un nivel mai jos, ca `~/Documents` însuși, primește un subdosar pentru fiecare aplicație (`notes-export`, `messages-export` și așa mai departe), iar un dosar mai adânc este folosit ca atare. Rândul de rezumat (după săgeată) și `root` din JSON arată dosarul real.

Fiecare dosar de export conține `.exporter/last-export.json` și `.exporter/last-export.md` (ultima rulare) și `.exporter/history/` (ultimele 50 de rulări). Apple Notes, Contacte, Mesaje, Timp de utilizare și Documente păstrează și `.exporter/files.json`, fiecare fișier scris de o rulare: rularea următoare șterge doar fișierele listate acolo pe care nu le mai produce niciun element (Timp de utilizare nu șterge niciodată un fișier de zi). Bear și Logseq șterg și ele, la rularea următoare, fișierele notițelor pe care le-ați șters, redenumit sau reetichetat. Exporturile Apple Notes și Logseq primesc și `bases/` cu vizualizări Obsidian.

## Cota gratuită

Linia de comandă are aceleași cote ca aplicația:

| aplicație | gratuit |
| --- | --- |
| Apple Notes | 100 de notițe |
| Contacte | 100 de contacte |
| Mesaje | cele mai recente 10 conversații |
| Timp de utilizare | cele mai recente 10 zile la prima sincronizare și doar acestea: zilele următoare necesită deblocarea |
| Documente | ultimele 10 documente modificate |
| Bear și Logseq | nelimitat |

Elementele deja exportate se resincronizează în continuare gratuit; cota oprește doar elementele noi. O rulare care o atinge exportă totuși ce are voie, iese cu 0 și afișează o notă (nu și cu `--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` conține nivelul și numărul folosit pentru Apple Notes, Contacte, Mesaje și Timp de utilizare. Fiecare aplicație limitată se deblochează cu propria achiziție unică în aplicație, în Exporter, [cu preț stabilit pe țară](https://exporter.dev/pricing), fără abonament și fără plată pe web. Linia de comandă citește achiziția la fiecare rulare; dacă App Store nu răspunde în 5 secunde, rularea continuă cu cota gratuită.

## Programare

`exporter help cron` afișează aceste rânduri cu calea completă a comenzii pe Mac-ul dumneavoastră: folosiți-o, pentru că PATH-ul din cron s-ar putea să nu includă dosarul de instalare. Într-un crontab, escapați `%` ca `\%`:

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

Pentru Carbon Copy Cloner și alte utilitare de backup, rulați `exporter sync` ca script de dinaintea copierii și decideți în funcție de codul de ieșire. Comanda rămâne atașată pe toată durata exportului, chiar și când macOS o suspendă fără niciun utilizator autentificat. Cât timp aplicația rulează, cu fereastra deschisă sau închisă, `sync` nu face nimic: sincronizarea în timp real ține deja dosarul la zi.

## Server MCP

Aplicația, nu linia de comandă, rulează un server MCP local care permite lui Claude, Cursor, VS Code și altor clienți să caute și să citească exporturile, la `http://localhost:8744/mcp`. [Pagina serverului MCP](https://exporter.dev/docs/mcp) acoperă totul despre el, de la pornire până la cele șase unelte ale sale.

## Depanare

Rulați întâi `exporter doctor`; fiecare verificare eșuată își afișează remedierea. [Ajutor](https://exporter.dev/docs/help) acoperă și mesajele aplicației.

- `X is not authorized`: adăugați dosarul (sau un dosar părinte) pe cardul Linie de comandă, apoi rulați din nou. `exporter list dests` arată ce este autorizat
- `apple notes is not set up. open Exporter and connect Apple Notes + an export folder.` (la fel pentru fiecare aplicație): conectați-o în Exporter
- `sync` afișează că Exporter rulează: nu e nimic de făcut, aplicația ține dosarul la zi. Folosiți `export --dest` pentru o copie separată
- `no notes were written. run "exporter doctor" to check folders and permissions.`: rularea a selectat notițe și nu a scris niciuna; `doctor` verifică dosarele și permisiunile
- `bookmark broken`: dosarul a fost mutat, șters sau volumul său nu este montat. Alegeți-l din nou în aplicație
- comanda instalată are un format vechi sau cron și utilitarele de backup văd ieșirea 19: lipiți din nou comanda de instalare
- aplicația s-a mutat de când ați instalat comanda: lipiți din nou comanda de instalare
- deblocat, dar rularea spune free: verificarea achiziției așteaptă cel mult 5 secunde, apoi continuă cu cota gratuită. Rulați din nou
- o problemă pe care doctor nu o poate explica: `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/ro/docs/cli
every page: https://exporter.dev/llms.txt
