Vue lecture

Stash - Synchroniser vos notes Apple Notes avec Markdown

Si vous êtes comme moi et que vous vivez dans Apple Notes parce que c'est fluide, synchronisé partout, et que ça marche sans qu'on ait à se poser de questions, cet outil va vous plaire.

Parce que oui, voilà, le jour où vous voulez bidouiller vos notes en ligne de commande, les exporter en Markdown, ou simplement éviter de vous retrouver coincé dans votre prison dorée Apple... Et bien c'est la galère. J'ai longtemps cherché une solution propre. Je me suis même dit à un moment que j'allais coder un script Python foireux pour scrapper la base SQLite locale, mais j'ai vite abandonné l'idée.

Pourquoi ? Parce que j'ai découvert Stash , un petit outil en ligne de commande qui fait le pont entre vos notes Apple et des fichiers Markdown.

Et le truc cool, c'est que ça marche dans les deux sens. Vous pouvez exporter vos notes Apple en Markdown (comme ici : Exporter pour vos backups ), mais aussi éditer vos fichiers Markdown et renvoyer les changements directement dans Apple Notes. C'est une vrai synchro bidirectionnelle qui vous rend vraiment maître de vos données.

J'ai testé ça sur macOS Tahoe avec un dossier de notes en vrac. J'ai lancé le bousin, et ça m'a fait plaisir de voir mes fichiers .md popper proprement dans le terminal, prêts à être commités ensuite sur un GitHub ou édités dans VS Code.

L'installation est toute bête, via Homebrew :

brew tap shakedlokits/stash https://github.com/shakedlokits/stash
brew install shakedlokits/stash/stash

Et ensuite, c'est juste 2 commandes. Pour exporter une note Apple vers Markdown, c'est

stash pull "Ma Super Note"

Stash va chercher la note dans Apple Notes, la convertit en Markdown propre via Pandoc, et vous la balance dans un fichier local Ma Super Note.md.

Et la seconde commande c'est pour faire l'inverse (éditer votre Markdown et pousser les changements vers Apple Notes). Là faut faire

stash push "Ma Super Note.md"

Et là, magie !! Vos modifs se retrouvent dans l'app Notes, synchronisées sur tous vos appareils Apple (iPhone, iPad, Mac). C'est dommage que ça soit pas natif ce truc.

Stash c'est chouette (Oula pas facile à prononcer vite celle là) parce qu'il utilise du YAML front-matter pour lier chaque fichier Markdown à une note Apple spécifique (via un ID unique). Quand vous faites stash push, le contenu du fichier écrase la note. Quand vous faites stash pull, la note écrase le fichier.

Attention toutefois car c'est là que ça se corse... Stash écrase sans pitié !! Si vous modifiez votre note sur l'iPhone ET votre fichier Markdown en même temps, c'est le dernier qui parle qui a raison. Y'a pas de fusion intelligente à la Git, donc gaffe aux conflits. C'est un peu brut de décoffrage, mais au moins c'est clair et prévisible.

Bref, pour ceux qui veulent scripter leurs notes, automatiser des backups, ou simplement bosser en Markdown avec leur éditeur préféré, c'est le chaînon manquant. J'avais testé Obsidian et Joplin par le passé, mais la synchro iCloud ou WebDAV m'avait saoulé. Là, c'est le bon compromis avec l'interface Apple pour la saisie, le Markdown pour le stockage long terme.

  •  

PhotosExport - Enfin un vrai backup de vos photos iCloud

Si vous utilisez un Mac et un iPhone, vous savez que l'app Photos d'Apple c'est un peu beaucoup une prison dorée. C'est génial tant qu'on reste chez Apple, mais dès qu'on veut sortir ses photos pour en faire une vraie sauvegarde sur un NAS ou un disque externe, ça devient vite compliqué.

Y'a bien une option "Exporter les originaux non modifiés" qui fait le job, mais elle n'inclut pas vos retouches, vos recadrages et la structure des dossiers est souvent inexistante. Du coup, on se retrouve avec un vrac de fichiers IMG_1234.JPG pas très sexy.

Mais vous me connaissez, j'suis toujours dans les bons coup et j'ai une bonne nouvelle pour vous. Rui Carmo, un développeur qui en a eu marre (comme nous), a codé un petit outil en Swift baptisé PhotosExport . Ça fonctionne en ligne de commande et ça va piocher directement dans votre librairie Photos pour extraire vos fichiers proprement.

Par défaut, l'outil se concentre sur l'année en cours, mais avec les options --year et --end-year, vous pouvez remonter le temps et tout récupérer d'un coup.

PhotosExport crée une hiérarchie Année/Mois (genre 2024/01/) et renomme chaque fichier avec un timestamp précis. Ça évite les collisions de noms (avec un petit suffixe si besoin) et ça met de l'ordre dans le chaos.

Ce qui est cool, c'est que si vous ajoutez l'option --metadata, il tente aussi d'exporter les infos (lieux, dates, données techniques...) dans un fichier JSON à côté de l'image. C'est du "best effort" (car il ne va pas forcément récupérer la reconnaissance des visages ou des trucs trop spécifiques à Apple), mais ça permet de garder une trace des infos essentielles si un jour vous changez de crémerie.

Attention quand même, il y a un petit prérequis : il faut être sous macOS 13 (Ventura) ou plus récent. Et au premier lancement, macOS va vous demander d'autoriser l'accès à vos Photos (le fameux TCC). C'est normal, c'est pour la sécurité.

L'installation se fait via make build si vous avez Xcode ou les outils de développement. Ensuite, vous lancez la commande, et hop, ça mouline. Le mode incrémental est pas mal aussi car il ignore les fichiers qui existent déjà dans le dossier de destination, ce qui permet de relancer l'outil sans tout réécrire.

Vous pouvez même imaginer scripter ça pour que ça tourne régulièrement vers votre NAS, à condition de bien gérer les permissions d'accès au niveau du terminal ou du script (ce qui peut être un peu sioux avec les sécurités d'Apple, mais ça se fait).

Si vous cherchez aussi à sécuriser le reste de votre vie chez Apple, jetez un œil à ma méthode pour sauvegarder vos données Apple Notes ou encore comment sauvegarder votre iPhone sur un disque externe . C'est toujours mieux d'avoir une copie locale, car on ne sait jamais ce qui peut arriver à un compte iCloud (Genre si Donald Trump décide de tout couper...).

  •  

Bookokrat - Le lecteur EPUB pour les accros du terminal

Vous vous souvenez de l'époque où rien que de lire un texte sur un écran noir suffisait à notre bonheur ? C'était un temps où chaque pixel comptait et où la souris était encore en option... Alalala, hé bien, pour ceux qui ont gardé cette âme pure ou qui passent la plupart de leur temps dans un shell, je vous ai déniché Bookokrat , un lecteur EPUB conçu EXCLUSIVEMENT pour votre terminal.

Vous allez voir c'est super pour lire des livres pendant le boulot discretos ^^.

L'outil propose une interface en "split-view" avec les EPUB de votre répertoire courant à gauche et votre lecteur à droite. Et malgré le côté austère du terminal, Bookokrat ne fait pas de compromis puisqu'il gère comme un chef le MathML pour les formules mathématiques et affiche même les images !

Attention toutefois, le rendu dépendra de votre terminal. Par exemple sur Kitty, Ghostty ou iTerm2 c'est le top ! Mais sur Alacritty ce sera un peu moins bien, quand au Terminal.app de macOS qui ne supporte pas bien les protocoles graphiques, je vous laisse imaginer la lose.

Côté navigation, c'est du classique avec des raccourcis inspirés de Vim (hjkl pour les intimes ^^) afin de scroller, changer de chapitre ou chercher dans le texte. L'outil gère aussi les signets automatiques ce qui est pratique quand on n'a pas le temps de finir "Guerre et Paix" d'une traite et vous pouvez même ajouter des notes directement dans le texte pour ne rien oublier.

Y'a aussi un "zen mode" (Ctrl + z) pour ceux qui ont du mal à se concentrer, même si je trouve qu'il est un peu inutile, et comme c'est codé en Rust, c'est fluide de fou !

Maintenant, pour l'installer, c'est facile... Sous macOS, un coup de Brew :

brew install bookokrat

Sinon, via Cargo :

cargo install bookokrat

Voilà si vous cherchez un moyen propre de lire vos ebooks sans quitter votre shell, Bookokrat fera grave bien le taff. Puis je trouve que ça redonne un petit goût de nostalgie façon Edit à la lecture et c'est pas pour me déplaire.

  •