Journal PrivyMD – un plugin Neovim utile ?

Posté par  (site web personnel) . Licence CC By‑SA.
Étiquettes :
12
6
nov.
2025

Bonjour nal,

Aujourd’hui, j’ai envie de vous présenter un plugin que j’ai développé. C’est un outil qui répond à un besoin très spécifique, pour un logiciel lui-même assez de niche. Autant dire que je ne m’attends pas à la gloire ni à la fortune avec lui — mais il m’a rendu service, et j’ai pris beaucoup de plaisir à le coder.

PrivyMD, késako ?

A Neovim plugin for editing Markdown files that contain secure, GPG-encrypted text blocks — without disrupting your normal editing workflow.

(extrait du README)

À l’origine

Encore un énième site qui me demande de stocker un secret, « au cas où », pour ne pas me retrouver bloqué dans six mois ou dix ans.

Les solutions classiques dans ces cas-là :
- un fichier texte avec tout en clair → sécurité nulle ;
- un fichier entièrement chiffré → impossible à versionner, pas de recherche plein texte ;
- un gestionnaire de mots de passe → ma solution habituelle, mais les recherches y sont peu pratiques et le contexte souvent perdu.

D’où l’idée : stocker ces secrets dans mon système de notes habituel, un wiki Markdown local, avec mon éditeur favori — tout en gardant confidentiel ce qui doit l’être.

Démo

demo

Pour qui ?

PrivyMD s’adresse à celles et ceux qui souhaitent conserver des informations sensibles (mots de passe, identifiants, notes personnelles…) dans leurs fichiers Markdown, sans sacrifier la lisibilité ni la praticité.

Le flux de travail reste inchangé : seules les sections marquées comme sensibles sont chiffrées. Ces blocs sont automatiquement déchiffrés à l’ouverture et chiffrés à la sauvegarde. Tout cela est configurable, mais par défaut tout fonctionne out of the box.

Comment ?

PrivyMD est écrit en Lua pour Neovim ≥ 0.10.
Il s’appuie sur GnuPG pour chiffrer les données.
Si vous utilisez déjà gpg, tout est transparent ; sinon, il suffit de créer une clé et de la mentionner dans l’en-tête du fichier.

What else ?

Je ne suis pas un expert en sécurité, et je ne prétends pas avoir créé un coffre-fort numérique. Il y a sûrement des failles potentielles (j’en vois déjà une ou deux), mais le besoin principal est satisfait : mes fichiers peuvent être archivés, synchronisés ou partagés sans compromettre leur contenu, et sans alourdir ma charge mentale.

Le code est propre, testé et documenté. Je ne connaissais ni Lua ni l’écosystème Neovim avant ce projet — j’ai simplement essayé de faire les choses bien.

S’il trouve son utilité pour quelques personnes, ce sera déjà une belle réussite.

Lien

=> Le dépôt sur GitHub

À bientôt !

  • # Et dans Emacs

    Posté par  . Évalué à 6 (+4/-0).

    Vous pouvez utiliser epa-file.

  • # Suggestion.

    Posté par  (Mastodon) . Évalué à 6 (+3/-0).

    Ma suggestion, ce serait de supporter les API de projets de gestionnaires de mots de passes tels que:
    - keepass
    - vaultwarden/bitwarden
    - pass

    Et pouvoir y accéder depuis ton plugin pour que le MD qui est sur le filesystem ne contienne que des références aux secrets dans ton gestionnaire de mot de passe favori.

    Mais quelque part, tous ces gestionnaires de mots de passe ont tous un champ description, différents types d'entrées, des tags et vont toujours être plus complets que ce que tu mets dans un markdown. J'ai du mal à croire que tu vas pouvoir y faire des recherches de façon plus efficace que dans un ou plusieurs fichiers markdown. Au final ce qui fait que ta recherche se fait bien c'est ton aptitude à mettre les bons titres, commentaires et tags, le problème est le même dans un markdown ou un gestionnaire de mot de passe.

    • [^] # Re: Suggestion.

      Posté par  (site web personnel) . Évalué à 4 (+3/-0).

      perso je trouve ça intéressant de pouvoir chercher juste à coup de grep en full text.

      ça m'est arrivé plusieurs fois de galérer à trouver un mot de passe dans mon gestionnaire de mot de passe car je ne savais plus comment je l'avais identifié.

      là on peut rechercher un secret avec n'importe quel détail dans le fichier

    • [^] # Re: Suggestion.

      Posté par  (site web personnel) . Évalué à 2 (+1/-0). Dernière modification le 06 novembre 2025 à 15:10.

      Un des problèmes que j'ai avec les gestionnaires de mots de passes c'est qu'ils ne sont pas tous compatibles entre eux. Mais de toute façon, ça ne répondrait pas au même besoin.
      J'aime pouvoir garder le secret au plus près de là où j'en ai besoin.

      Ex. type : Je me fais une fiche récapitulative de la méthode pour mettre en relation un repo gitea local avec un repo sur github. Au cours de la procédure, github me donne un token à conserver précieusement et me prévient qu'il n'y a aucun moyen de le retrouver si je le perd. Je peux le mettre dans un wallet mais est-ce que je me rappellerai lequel quand je relirai la fiche ? Maintenant, je l'intègre simplement à ma fiche.

      Et puis, je ne suis pas forcément le destinataire des secrets.

  • # très cool

    Posté par  (site web personnel) . Évalué à 3 (+2/-0).

    Je ne connais rien en sécurité et quelqu'un qui s'y connait verra surrement à y redire, mais moi je trouve ça top comme concept.

  • # eyaml-hiera

    Posté par  . Évalué à 3 (+3/-0).

    Ça me fait beaucoup penser à eyaml-hiera utilisé pour chiffrer les valeurs des manifests Puppet : https://github.com/voxpupuli/hiera-eyaml

    Très pratique pour poser le secrets dans le gestionnaire de version.

    • [^] # Re: eyaml-hiera

      Posté par  . Évalué à 4 (+3/-0).

      Ou à SOPS qui permet de chiffrer des valeurs dans des fichiers de config (yaml, json) ou des fichiers entiers aussi. Vu sur le site de Stéphane Robert, une vrai mine d'or qui mérite que je lui fasse un peu de pub au passage. 🙂

      • [^] # Re: eyaml-hiera

        Posté par  . Évalué à 3 (+1/-0).

        J'avais SOPS également en tête, super pratique avec mes charts K8s.

  • # Merci !

    Posté par  . Évalué à 1 (+1/-0).

    Je cherchais un moyen "simple" de modifier un fichier chiffré avec GPG… me voila conquis !

    Mon use case est que pour certains mots de passe que je tape souvent, au lieu d'aller les chercher sur mon gestionnaire de mots de passe, j'ai un fichier qui les contient. J'utilise Espanso qui utilise ma clé PGP pour déchiffrer a la volée le fichiers et récupèrer les mots de passe.

    La seule lourdeur était la modif de ce fichier

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.