Hanki Exporter
Dokumentaatio CLI

Komentorivi exporter

Aja vientisi Päätteestä, cronista, varmuuskopiotyökaluista ja agenteista.

exporter on Exporterin Mac-appi ajettuna ilman ikkunaa. Se käyttää samoja yhteyksiä, vientikansioita, valintoja ja asetuksia, jotka määritit apissa, ja kirjoittaa samaan vientilokiin. Se toimii, kun appi on suljettu, eikä se koskaan kysy mitään: kaikki puuttuva pysäyttää ajon paluukoodilla 2 ja yhdellä rivillä, joka kertoo, mitä tehdä. Vain macOS.

Asenna

  1. Asenna Exporter Mac App Storesta (lataa) ja avaa se.
  2. Yhdistä appi (Applen Muistiinpanot, Bear, Logseq, Yhteystiedot, Viestit tai Ruutuaika) tai Dokumentit-kansio ja valitse sen vientikansio (aloita). Nämä luvat voi antaa vain apissa.
  3. Paina apin Komentorivi-kortilla “Kopioi asennuskomento” ja liitä se kerran Päätteeseen.

Appi toimii hiekkalaatikossa eikä voi kirjoittaa PATH-muuttujaasi, minkä vuoksi viimeinen vaihe on liittäminen. Rivi asentaa komennon exporter kansioon /opt/homebrew/bin, kun kansio on olemassa ja kuuluu sinulle (ei sudoa), muuten kansioon /usr/local/bin sudon kanssa. Sen liittäminen uudelleen on turvallista; se korvaa sen, mitä siellä oli. Rivi asentaa myös komennon notes-exporter, komennon vanhan nimen, joten vanhemmat skriptit ja cron-rivit toimivat edelleen. exporter help install tulostaa rivin Macillesi.

Lähteet

--source ottaa jonkin näistä:

lähde hyväksytään myös kirjoittaa
apple apple-notes, applenotes, notes markdown tai html
bear markdown tai html
logseq aina markdown
contacts apple-contacts, addressbook aina markdown
messages imessage, chats, conversations aina markdown
screentime screen-time, usage aina markdown, yksi tiedosto päivää kohden
reminders apple-reminders, lists, todos aina markdown, yksi tiedosto listaa kohden
claude-code claudecode, claude, claude-code-sessions markdown, alkuperäinen loki tai molemmat, kortin valinnan mukaan
wallet passes, pkpass, boarding-passes, tickets aina markdown, yksi tiedosto korttia kohden
documents docs, files, pdf Dokumentit-kortilla valitut muodot

Muodot

--format ottaa arvon markdown (tai md) tai html; kirjainkoolla ei ole väliä. Kaikki muu pysähtyy virheeseen error: --format pdf: expected markdown | html ja paluukoodiin 64.

  • ilman sitä sync kirjoittaa jokaisen apin sen kortille asetetussa muodossa (Applen Muistiinpanoilla ja Bearilla on kummallakin omansa), ja export kirjoittaa viemänsä apin asetuksen mukaan; exporter help sync ja exporter help export näyttävät nykyiset
  • Logseq, Yhteystiedot, Viestit ja Ruutuaika ovat aina markdownia, ja Dokumentit kirjoittaa kortillaan valitut muodot, joten niille --format html ohitetaan huomautuksen kera: note: logseq export is always markdown, so --format is ignored for this source.
  • Applen Muistiinpanot kirjoittaa yhden .html-sivun muistiinpanoa kohden (HTML-muoto), liitteet kopioituina viereiseen kansioon attachments/ ja linkitettyinä, ilman frontmatteria. Bearin HTML on muistiinpanon pelkkä teksti <pre>-elementin sisällä ilman muotoilua, ja viittaukset liitteisiin jäävät Markdown-tekstiksi: tiedostot kopioidaan, mutta niitä ei linkitetä
  • MCP-palvelin lukee vain markdown-tiedostoja, joten pelkkä HTML-vienti on sille näkymätön
  • Applen Muistiinpanot ja Bear kirjoittavat yhden muodon ajoa kohden; vain Dokumentit kirjoittaa molemmat yhdellä synkronoinnilla. Ajo poistaa vain oman muotonsa vanhat tiedostot, joten vaihtaminen jättää toisen muodon tiedostot kansioon. Kumpaakin muotoa varten anna kummallekin oma kansio:
exporter export --dest ~/Backups/notes-md   --format markdown
exporter export --dest ~/Backups/notes-html --format html

sync

Ajaa apissa määrittämäsi viennin kerran, inkrementaalisesti, apin vientikansioihin.

exporter sync [--source <source>]... [--format markdown|html] [--full] [--json] [--quiet]
valitsin mitä se tekee oletus
--source <source> vain tämä appi, voi toistaa jokainen yhdistetty appi; yhdistämättömät ohitetaan
--format markdown|html vain tämä ajo, apin asetuksesi ei muutu. Se päätyy samaan vientikansioon kuin toinen muoto; säilyttääksesi molemmat vie kumpikin omaan kansioonsa komennolla export --dest apin asetuksesi
--full vie kaikki uudelleen. Se poistaa ennen kirjoittamista vain Exporterin kirjoittamat tiedostot; kaikki muu vientikansiossa säilyy pois
--json koneluettava yhteenveto pois
--quiet, -q vain virheet pois
exporter sync --source apple
apple notes: exporting…
apple notes: 1204 of 1204 exported · 3 removed · 18.2s · markdown → /Users/me/Documents/notes

Yhteenvetorivi on <source>: <succeeded> of <selected> exported, sitten, kun niitä on, N failed, N removed (poistettujen, uudelleen nimettyjen tai siirrettyjen kohteiden tiedostot), N attachment issues, ja lopuksi kesto, muoto ja kansio, johon kirjoitettiin.

Jos appi on käynnissä, sync ei vie mitään, päättyy koodilla 0 ja tulostaa Exporter is running: real-time sync is live, the export root is already current.

export

Kertavienti valitsemaasi kansioon, tilannevedoksia ja skriptejä varten. Se toimii hyvin apin ollessa auki.

exporter export --dest <folder> [--source <source>] [--format markdown|html] [--organize folders|tags|smart] [--folder "Name"]... [--tag name]... [--dry-run] [--json] [--quiet]
valitsin mitä se tekee oletus
--dest <folder> pakollinen. Sen on oltava kansiossa, jolle on annettu pääsy apin Komentorivi-kortilla (“Lisää kansio…”). Pääsy kansioon ~/Backups kattaa jokaisen sen alla olevan kansion ei mitään
--source <source> vietävä appi apple
--format markdown|html tämän ajon muoto apin asetuksesi
--organize folders|tags|smart vain Applen Muistiinpanot: miten muistiinpanot järjestetään kansioihin tässä ajossa kortin “Järjestä”
--folder "Name" vain tämä Applen Muistiinpanojen kansio, voi toistaa, nimi täsmätään kirjainkoosta välittämättä apissa tallennettu valinta
--tag name vain tämä tunniste, voi toistaa, Applen Muistiinpanot tai Bear apissa tallennettu valinta
--dry-run tulosta, mitä vietäisiin, älä kirjoita mitään pois
--json, --quiet (-q) kuten syncissä pois

Ilman valitsinta --folder tai --tag Applen Muistiinpanot ja Bear vievät apissa tallennetun valinnan. Logseq vie koko graafin; Yhteystiedot, Viestit, Ruutuaika ja Dokumentit vievät sen, mitä niiden kortilla on valittuna, samoin kuin sync; suodattimet ohitetaan niille huomautuksen kera. Dokumenteille --dry-run tulostaa would convert <n> document(s), ja ajo huomauttaa tiedostoista, joita se ei voi lukea: note: 3 file(s) skipped: not a format any engine converts.

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 mitä se näyttää JSON
sources jokainen appi, yhdistetty tai ei, määrineen. Dokumentteja ei listata [{"source": "apple", "connected": true, "notes": 1204}, {"source": "messages", "connected": true, "conversations": 1532}, {"source": "bear", "connected": false}], logseqille pages, contacts, ja screen-time-lähteelle days
folders Applen Muistiinpanojen kansiot muistiinpanomäärineen, sisennettyinä syvyyden mukaan. --source bear on virhe (paluukoodi 64) [{"name": "Work", "notes": 42, "level": 0}]
tags tunnisteet määrineen, oletuksena Applen Muistiinpanot, Bear valitsimella --source bear [{"name": "journal", "notes": 12}]
dests kansiot, joihin export --dest saa kirjoittaa, sekä jokaisen apin vientikansio [{"path": "/Users/me/Backups", "kind": "granted"}], jossa kind on granted, granted, volume not mounted tai 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 · 50 of 50 free conversations used
organize       apple notes by folder · contacts in one folder
app            not running

Valitsimella --json: yksi objekti appia kohden, nimiltään apple-notes, bear, logseq, contacts, messages, screen-time, documents, kukin {"connected": true, "lastExport": "2026-09-11 03:00"} (null, kun vientiä ei ole koskaan tehty); destinations (polut); tier (full tai free, Applen Muistiinpanojen avaus) ja freeNotesUsed; contactsTier ja freeContactsUsed; messagesTier ja freeConversationsUsed; screenTimeTier ja freeDaysUsed; organize ({"appleNotes": "folders", "contacts": "flat"}, korttien “Järjestä”); appRunning. Ajat ovat paikallisia, yyyy-MM-dd HH:mm.

log

Viimeisimmät vientiajot, uusin ensin: sama loki, jonka appi näyttää, jokaisesta vientikansiosta ja jokaisesta --dest-kansiosta, jolle on annettu pääsy. Päivättyjä kansioita, jotka on luotu pääsyn saaneen kansion alle, ei lueta; niiden loki on kansiossa <folder>/.exporter/.

exporter log [--last N] [--json]
valitsin mitä se tekee oletus
--last N montako ajoa 10
--json yksi objekti ajoa kohden pois
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 on clean, warnings (liitteitä puuttuu) tai failures.

doctor

Tarkistaa, että vienti ilman ikkunaa toimii, ja tulostaa yhden rivin tarkistusta kohden: ok, FAIL ja sen alla rivi fix:, warn tai -- tietona.

exporter doctor

Se tarkistaa, että jokaisen yhdistetyn apin tietokanta on luettavissa ja sen vientikansio kirjoitettavissa, että jokainen tallennettu kansiolupa löytyy, että jokainen --dest-kansio on kirjoitettavissa, hakemiston ja asennetun komennon. Lopuksi se kertoo versiotason, onko appi käynnissä, ja viimeisimmän kaatumisen, jos sellainen oli. Paluukoodi 0 tulostaa all good., paluukoodi 2 tulostaa N problem(s) found.

report

Tulostaa diagnostiikkaraportin (apin versio, macOS ja laitteisto, yhteyksien tila, viimeisimmät ajot, viimeisin kaatuminen; ei muistiinpanojen sisältöä) ja kopioi sen leikepöydälle.

exporter report [--send] [--email <addr>]
valitsin mitä se tekee oletus
--send lähettää raportin meille ja tulostaa sent. tai offline: queued, will send on the next run or app launch. pois
--email <addr> lisää osoitteesi, jotta voimme vastata ei mitään

Ohje ja versio

  • exporter help [topic]: aiheet sync, export, list, status, log, doctor, report, cron, install. Komennon ohje näyttää nykyiset asetuksesi oletuksina
  • sync, export, list, log ja report ottavat myös valitsimen --help tai -h
  • exporter version (tai --version, -v) tulostaa exporter 3.24
  • pelkkä exporter päätteessä tulostaa yleiskatsauksen ja päättyy koodilla 64

JSON-tuloste

--json toimii komennoissa sync, export, list, status ja log. Tuloste on siististi muotoiltu, avaimet järjestettyinä. Lisää komentoihin sync ja export valitsin --quiet: ilman sitä edistymis- ja huomautusrivit tulostetaan stdoutiin ennen JSONia. export tulostaa yhden yhteenveto-objektin, sync tulostaa {"runs": [...]}, yksi kutakin lähdettä kohden:

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

Kun appi on käynnissä, sync tulostaa yhden rivinsä eikä JSONia. Virheet menevät stderriin muodossa error: <what happened and what to do>.

Paluukoodit

koodi merkitys
0 ok, myös ajo, jonka ilmainen kiintiö katkaisi
1 vientivirheet: kohde epäonnistui, ajo kohtasi virheen, tai se valitsi kohteita eikä kirjoittanut yhtään
2 vaatii käyttöönoton: appia ei ole yhdistetty, kansiolla ei ole lupaa, kansiota tai tunnistetta ei löytynyt, ei mitään vietävää; doctor löysi ongelmia; asennettu komento on vanhaa muotoa tai appia, johon se osoittaa, ei enää ole
64 käyttö: tuntematon komento tai valitsin, puuttuva tai virheellinen arvo, --folder Bearin kanssa, list folders --source bear, pelkkä exporter päätteessä

Minne tiedostot menevät

sync kirjoittaa kullekin apille Exporterissa asetettuun vientikansioon, kuten ~/Documents/notes tai ~/Documents/messages; export kirjoittaa kohteeseen --dest. Kotikansion tasolla tai yhtä tasoa sen alla oleva kansio, kuten itse ~/Documents, saa appikohtaisen alikansion (notes-export, messages-export ja niin edelleen), ja syvemmällä olevaa kansiota käytetään sellaisenaan. Yhteenvetorivi (nuolen jälkeen) ja JSON-kenttä root näyttävät todellisen kansion.

Jokaisessa vientikansiossa on .exporter/last-export.json ja .exporter/last-export.md (viimeisin ajo) sekä .exporter/history/ (50 viimeisintä ajoa). Jokaisella apilla on myös .exporter/files.json, jokainen ajon kirjoittama tiedosto: seuraava ajo poistaa vain siinä luetellut tiedostot, joita mikään kohde ei enää tuota, joten poistamasi, uudelleen nimeämäsi tai uudelleen tunnisteistamasi muistiinpanot menettävät vanhan tiedostonsa (Ruutuaika ei koskaan poista päivätiedostoa). Applen Muistiinpanojen ja Logseqin viennit saavat myös kansion bases/ Obsidianin näkymineen.

Ilmainen kiintiö

Komentorivillä on samat kiintiöt kuin apilla:

appi ilmaiseksi
Applen Muistiinpanot 100 muistiinpanoa
Yhteystiedot 100 yhteystietoa
Viestit 50 viimeisintä keskustelua
Ruutuaika ensimmäisen synkronoinnin 10 viimeisintä päivää, ja vain ne: myöhemmät päivät vaativat avauksen
Dokumentit 10 viimeksi muokattua dokumenttia
Bear ja Logseq rajattomasti

Jo viedyt kohteet synkronoidaan edelleen ilmaiseksi; kiintiö pysäyttää vain uudet. Ajo, joka saavuttaa sen, vie silti sen, minkä saa, päättyy koodilla 0 ja tulostaa huomautuksen (ei valitsimella --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 (50 of 50 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 sisältää tason ja käytetyn määrän Applen Muistiinpanoille, Yhteystiedoille, Viesteille ja Ruutuajalle. Jokainen rajattu appi avataan omalla kertaostollaan Exporterin sisällä, hinnoiteltuna maittain, ilman tilausta ja ilman verkkomaksua. Komentorivi lukee oston jokaisella ajolla; jos App Store ei vastaa 5 sekunnissa, ajo jatkuu ilmaisella kiintiöllä.

Ajastus

exporter help cron tulostaa nämä rivit komennon koko polun kera Macillasi: käytä sitä, koska cronin PATH ei välttämättä sisällä asennuskansiota. Kirjoita crontabissa % muodossa \%:

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

Carbon Copy Cloneria ja muita varmuuskopiotyökaluja varten aja exporter sync ennakkoskriptinä ja haaraudu paluukoodin mukaan. Komento pysyy liitettynä koko viennin ajan, myös kun macOS keskeyttää sen, kun kukaan ei ole kirjautuneena. Kun appi on käynnissä, ikkuna auki tai kiinni, sync ei tee mitään: reaaliaikainen synkronointi pitää kansion jo ajan tasalla.

Varmuuskopiotyökalun, joka ajaa skriptinsä roottina (kuten Carbon Copy Cloner), on käynnistettävä exporter kirjautuneen käyttäjän istunnossa, ei pelkästään tämän käyttäjän nimissä. Pelkkä sudo -u pysäyttää sen heti paluukoodilla 133; lisää eteen launchctl asuser:

/bin/launchctl asuser "$(id -u "$CONSOLE_USER")" /usr/bin/sudo -u "$CONSOLE_USER" exporter sync

MCP-palvelin

Appi, ei komentorivi, ajaa paikallista MCP-palvelinta, jonka avulla Claude, Cursor, VS Code ja muut asiakkaat voivat hakea vientejäsi ja lukea niitä, osoitteessa http://localhost:8744/mcp. MCP-palvelimen sivu kertoo siitä kaiken käynnistämisestä sen kuuteen työkaluun.

Vianmääritys

Aja ensin exporter doctor; jokainen epäonnistunut tarkistus tulostaa korjauksensa. Ohje kattaa myös apin ilmoitukset.

  • X is not authorized: lisää kansio (tai sen yläkansio) Komentorivi-kortilla ja aja uudelleen. exporter list dests näyttää, mille on annettu pääsy
  • apple notes is not set up. open Exporter and connect Apple Notes + an export folder. (sama jokaiselle apille): yhdistä se Exporterissa
  • sync tulostaa, että Exporter on käynnissä: ei mitään tehtävää, appi pitää kansion ajan tasalla. Käytä erilliseen kopioon komentoa export --dest
  • no notes were written. run "exporter doctor" to check folders and permissions.: ajo valitsi muistiinpanoja eikä kirjoittanut yhtään; doctor tarkistaa kansiot ja luvat
  • bookmark broken: kansio on siirretty tai poistettu, tai sen taltio ei ole liitettynä. Valitse se uudelleen apissa
  • asennettu komento on vanhaa muotoa, tai cron ja varmuuskopiotyökalut näkevät paluukoodin 19: liitä asennuskomento uudelleen
  • appi on siirtynyt komennon asentamisen jälkeen: liitä asennuskomento uudelleen
  • avaus ostettu, mutta ajo sanoo ilmainen: ostotarkistus odottaa enintään 5 sekuntia ja jatkaa sitten ilmaisella kiintiöllä. Aja uudelleen
  • ongelma, jota doctor ei osaa selittää: exporter report --send --email you@example.com

Exporter

Versio 5.2 (App Store)

macOS 15 tai uudempi

exporter@tinysend.com

© system operator