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
- Asenna Exporter Mac App Storesta (lataa) ja avaa se.
- 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.
- 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ä
synckirjoittaa jokaisen apin sen kortille asetetussa muodossa (Applen Muistiinpanoilla ja Bearilla on kummallakin omansa), jaexportkirjoittaa viemänsä apin asetuksen mukaan;exporter help syncjaexporter help exportnäyttävät nykyiset - Logseq, Yhteystiedot, Viestit ja Ruutuaika ovat aina markdownia, ja Dokumentit kirjoittaa kortillaan valitut muodot, joten niille
--format htmlohitetaan 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 kansioonattachments/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]: aiheetsync,export,list,status,log,doctor,report,cron,install. Komennon ohje näyttää nykyiset asetuksesi oletuksinasync,export,list,logjareportottavat myös valitsimen--helptai-hexporter version(tai--version,-v) tulostaaexporter 3.24- pelkkä
exporterpää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 destsnäyttää, mille on annettu pääsyapple notes is not set up. open Exporter and connect Apple Notes + an export folder.(sama jokaiselle apille): yhdistä se Exporterissasynctulostaa, että Exporter on käynnissä: ei mitään tehtävää, appi pitää kansion ajan tasalla. Käytä erilliseen kopioon komentoaexport --destno notes were written. run "exporter doctor" to check folders and permissions.: ajo valitsi muistiinpanoja eikä kirjoittanut yhtään;doctortarkistaa kansiot ja luvatbookmark 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