Si vous êtes comme votre blogueur préféré (hi hi) et que vous avez des tonnes de fichiers markdown qui traînent dans des dossiers obscurs depuis des années, voici l'outil parfait pour rendre tout ceci à nouveau utilisable dans la vraie vie.
En tout cas, c'est plus pratique qu'un grep !
Ça s'appelle QMD (Quick Markdown Search) et c'est un outil en ligne de commande dispo sur GitHub qui va indexer tout votre bazar de notes pour les rendre consultables rapidement. QMD combine la recherche plein texte classique (BM25) avec de la recherche vectorielle sémantique et du re-ranking via LLM, ce qui veut dire que c'est ultra puissant. On est un peu sur le même principe qu'un RAG en fait puisque l'IA locale est utilisée pour comprendre le sens de votre requête et pas juste chercher des chaînes de caractères bêtes et méchantes. J'utilise depuis un petit moment maintenant un système similaire avec LEANN pour indexer tous les articles de korben.info et retrouver des connexions entre mes contenus, et je peux vous dire que quand on goûte à la recherche sémantique, le bon vieux grep a un goût de carton.
L'outil est même capable de faire de l'expansion de requête (Query Expansion) pour deviner ce que vous cherchez vraiment.
Techniquement, ça tourne avec
bun
ou npm et ça s'appuie sur
node-llama-cpp
pour faire tourner des modèles GGUF directement sur votre machine. Tout reste chez vous donc niveau vie privée c'est nickel. C'est un peu la même philosophie que des outils comme
Khoj
ou
Blinko
dont je vous ai déjà parlé, mais en version CLI pour le terminal.
L'installation est hyper facile si vous avez déjà Bun, mais prévoyez quand même un peu de place (environ 3 Go) pour les modèles qui iront s'installer au chaud dans ~/.cache/qmd/models/ et installez sqlite si vous êtes sur macOS :
brew install sqlite # Pour macOS
npm install -g @tobilu/qmd
Ensuite, y'a plus qu'à vous créer vos collections en pointant vers vos dossiers, et en lançant l'indexation comme ceci :
qmd collection add ~/mes-notes --name notes
qmd embed # L'étape indispensable pour générer les vecteurs
Et hop, vous pouvez lancer des recherches !!
C'est magique ! Perso, j'utilise presque tout le temps la commande "qmd query" plutôt que "search" parce que le mode hybride est bien plus puissant je trouve. Vous avez aussi "qmd vsearch" si vous voulez une recherche purement sémantique, genre quand vous cherchez un concept sans connaître les mots exacts utilisés dans vos notes. En fait, quand vous tapez une requête, QMD va chercher via les mots-clés, via les vecteurs (le sens), puis fusionner tout ça avec un algo RRF, et refaire passer un petit coup de LLM par dessus pour trier les résultats par pertinence.
Après vous l'aurez capté en me lisant, si vous avez une machine un peu ancienne sans GPU costaud, l'étape de re-ranking risque de prendre un peu de temps... mais c'est le prix de la qualité et de la sécurité ^^.
D'ailleurs, si vous utilisez Claude Desktop ou Claude Code, sachez que QMD intègre également un
serveur MCP
(Model Context Protocol). Du coup, vous pouvez connecter QMD à Claude et lui permettre d'aller fouiller dans vos notes pour répondre à vos questions. Et bonne nouvelle, QMD propose maintenant un mode HTTP daemon (qmd mcp --http --daemon) qui garde les modèles chargés en mémoire, ce qui évite de les recharger à chaque requête. Attention par contre, dans ce cas précis, les extraits de vos notes seront envoyés à Claude (donc dans le cloud).
QMD est aussi dispo en tant que librairie Node.js (npm install @tobilu/qmd) pour ceux qui voudraient l'intégrer dans leurs propres scripts ou workflows d'automatisation. Avec les options --json et --files en sortie, ça se branche facilement dans un pipeline.
Perso je trouve ça génial parce que ça comble le fossé entre le simple fichier texte et les usines à gaz de gestion de connaissances. Par exemple, si vous êtes un grand adepte de
Silverbullet
ou d'
Obsidian
, c'est le top pour l'indexation globale de vos écrits.
Voilà, si vous voulez un moteur de recherche personnel qui en a sous le capot et qui respecte votre vie privée, foncez tester ça.
Splitter son terminal en plusieurs panneaux, gérer des sessions persistantes, le tout avec les mêmes raccourcis que tmux... mais sous un bon gros Windows des familles, nativement, en Rust et sans avoir besoin de se galérer avec WSL !
C'est exactement ce que fait
psmux
, un multiplexeur de terminal conçu pour PowerShell et cmd.exe qui utilise directement l'API ConPTY de Windows 10/11. Du coup, pas de couche d'émulation Unix, pas de Cygwin, pas de MSYS2... ça tourne direct sur votre bécane.
Pour ceux qui débarquent, un multiplexeur de terminal ça permet de découper votre console en plusieurs zones (des "panes" que j’appellerai "panneau" parce que merde c'est + français), de jongler entre plusieurs sessions, et surtout de retrouver votre boulot exactement là où vous l'avez laissé même après une déconnexion. Sous Linux, tout le monde utilise tmux pour ça mais sous Windows, jusqu'ici c'était soit WSL (installer tout un sous-système Linux juste pour splitter un terminal, c'est un peu overkill quand même !), soit des splits basiques via Windows Terminal qui ne gèraient ni les sessions persistantes ni le détachement. Snif...
psmux en action sous PowerShell
L'installation est rapide. Un petit winget install psmux et hop, c'est réglé. Ça passe aussi par Cargo, Scoop ou Chocolatey pour les puristes. Ensuite, vous tapez psmux dans PowerShell 7 et vous retrouvez vos marques : Ctrl+B pour le prefix, les mêmes commandes split-window, new-session, attach... L'outil implémente 76 commandes tmux avec plus de 126 variables de formatage. Et y'a même un mode copie Vim avec 53 raccourcis clavier.
Bref, si vous avez une mémoire musculaire ultra développée pour tmux, vous êtes chez vous !
Et le truc cool, c'est que psmux lit directement vos fichiers .tmux.conf existants. Du coup, vos raccourcis custom et pas mal de thèmes (Catppuccin, Dracula, Nord...) fonctionneront directement, même si les configs tmux les plus complexes avec des scripts bash ou TPM peuvent nécessiter des ajustements. Et y'a aussi
Tmux Plugin Panel
pour vous accompagner dans l'ajout de plugins et de thèmes.
Alors je vous connais les raloux sous OuinOuin, vous allez me dire "Windows Terminal fait déjà des splits avec Alt+Shift+D"... sauf que non, c'est pas pareil. Windows Terminal découpe votre fenêtre visuellement mais ne gère ni les sessions persistantes, ni le scripting, ni le détachement. Avec psmux, vous lancez une session le lundi, vous fermez votre terminal, vous revenez le mardi et tout est encore là : vos panneaux, vos processus, votre historique. C'est ça la vraie différence avec un simple split visuel.
Côté support souris, c'est complet : clic pour sélectionner un panneau, drag pour redimensionner les bordures, molette pour remonter dans l'historique du buffer. Tout est activé par défaut, pas besoin de rajouter set -g mouse on comme sous tmux. L'outil tourne sous Windows 10 et 11, et le projet est sous licence MIT.
Après c'est encore jeune et y'a quelques galères connues notamment le support des caractères CJK et UTF-8 multi-octets qui peut se planter comme une merde sur des textes longs. Et split-window -c ne préserve pas toujours le répertoire courant (oubliez pas de vérifier votre pwd après un split). Par contre, le dev répond en quelques heures, et des PR externes sont mergées régulièrement... donc c'est bon signe !
Bref, c'est propre, c'est natif, et ça lit vos .tmux.conf ! Que demande le peuple barbu emprisonné sous Windows, finalement ? Eh bien pas grand chose de plus pour être heureux.
Le terminal Linux / MacOS, ça fait encore flipper pas mal de monde et c'est exactement pour cette raison que des gens ont créé
WebTerm
, un petit site web qui simule un terminal directement dans le navigateur pour vous apprendre les commandes de base... sans risquer de claquer un rm -rf votre disque dur !
En gros, vous ouvrez le site dans Chrome ou Firefox, et vous avez un faux terminal devant vous avec des exercices progressifs. Ça part des trucs vraiment basiques genre pwd, ls, cd (oui, le B.A.-BA quoi) et ça monte jusqu'aux commandes plus costaudes comme grep, find, chmod ou carrément des tutos Git avec branches et commits. Y'a 8 modes d'apprentissage au total et une trentaine d'exercices, du débutant complet au "je veux maîtriser le versioning". En fait c'est plutôt bien découpé et chaque mode rajoute une couche de difficulté.
Le truc sympa c'est que tout se passe dans votre navigateur comme ça pas besoin d'installer Ubuntu, pas besoin de VirtualBox, pas besoin de WSL... vous ouvrez la page et vous tapez vos commandes dans un prompt bash comme un vrai sysadmin qui pue de la gueule (un classique !). Perso, pour quelqu'un qui n'a jamais touché à la ligne de commande, c'est quand même VACHEMENT moins flippant qu'un vrai terminal où une mauvaise manip peut vous foutre dans la mierda.
D'ailleurs si vous maîtrisez déjà un peu le sujet, y'a aussi un mode Free Play qui vous lâche dans la nature sans consignes. Vous tapez ce que vous voulez, vous expérimentez... un bac à sable quoi. Et comme sur un vrai shell Bash ou Zsh, vous avez la complétion par Tab et l'historique des commandes avec les flèches haut/bas.
Bon, c'est pas non plus un émulateur complet hein, donc faut pas s'attendre à pouvoir installer des paquets apt ou lancer des scripts bash complexes. Sauf si vous avez une vraie VM sous la main, mais là c'est plus le même délire. Par exemple, les pipes genre | entre commandes, ça passe pas non plus, et ça ne marche pas sur smartphone.
C'est desktop only... et dans le terminal, tout se fait au clavier, donc pas de souris. Et pour ceux qui se demandent, le site est dispo en anglais et en japonais (le projet vient d'une boîte japonaise qui s'appelle init Inc.), mais les commandes Linux c'est universel donc ça ne change rien sur l'apprentissage. Après si vous cherchez des tutos en français, là faudra aller voir ailleurs.
Et si vous voulez aller plus loin après avoir joué avec WebTerm, je vous recommande de jeter un oeil à
mon article sur les raccourcis clavier Bash
qui va vous faire gagner un temps de fou !
Voilà pour 15 minutes de pratique par jour c'est plutôt bien foutu et vous pourrez gagner en autonomie dans ce fichu terminal qui vous effraye depuis tant d'années.
Sous Windows 11/10, les fichiers et dossiers stockés sur un disque NTFS possèdent des autorisations (ACL) qui définissent précisément quels utilisateurs peuvent lire, modifier ou supprimer leur contenu. Si ces permissions peuvent être configurées via l’interface graphique, PowerShell permet d’aller beaucoup plus loin : afficher, modifier et automatiser la gestion des droits d’accès à grande échelle.
Grâce aux cmdlets Get-Acl et Set-Acl, vous pouvez :
afficher les permissions d’un dossier ou d’un fichier,
ajouter ou retirer des autorisations,
appliquer les mêmes règles à plusieurs répertoires,
et même changer le propriétaire d’un dossier bloqué.
Cette approche est particulièrement utile pour les administrateurs ou utilisateurs avancés souhaitant :
automatiser la gestion des droits sur un serveur ou un poste multi-utilisateurs,
corriger des problèmes d’accès (“Accès refusé”) sans interface graphique,
ou déployer des permissions identiques sur plusieurs répertoires partagés.
Get-ChildItem -Recurse → parcourt récursivement toute l’arborescence.
ContainerInherit,ObjectInherit → applique la règle aux sous-dossiers et fichiers.
Cette commande réécrit les ACL de tous les sous-dossiers. Utilisez-la avec prudence sur un volume contenant beaucoup de fichiers.
Supprimer toutes les autorisations personnalisées (réinitialiser les ACL)
Pour revenir à la configuration par défaut (héritée du dossier parent) :
icacls "C:\Partage" /reset /T
Cette commande supprime toutes les règles explicites et rétablit les permissions héritées. Elle est utile pour corriger des erreurs “Accès refusé” ou des droits corrompus.
Changer le propriétaire d’un dossier (SetOwner)
Pour appliquer le changement de propriétaire à tout un dossier et ses sous-dossiers :
Ce script attribue automatiquement les permissions “Modifier” à plusieurs utilisateurs pour un même dossier.
PowerShell permet d’automatiser facilement des opérations complexes, comme appliquer des autorisations à plusieurs répertoires ou générer un rapport d’audit des droits.
Tableau récapitulatif des cmdlets PowerShell pour gérer les permissions NTFS
Cmdlet / Commande
Fonction principale
Syntaxe de base
Exemple d’utilisation
Get-Acl
Affiche la liste des autorisations (ACL) appliquées à un fichier ou dossier.
Get-Acl "C:\Dossier"
Affiche les permissions et le propriétaire du dossier.
Set-Acl
Applique ou met à jour des autorisations sur un fichier ou dossier.
Set-Acl "C:\Dossier" $acl
Met à jour les ACL selon les règles définies dans $acl.
Change le propriétaire pour le groupe Administrateurs.
Get-ChildItem -Recurse + Set-Acl
Applique des permissions à tous les sous-dossiers et fichiers.
`Get-ChildItem « C:\Dossier » -Recurse
Set-Acl -AclObject $acl`
**Get-Acl
Format-List**
Affiche les ACL dans un format lisible.
`Get-Acl « C:\Dossier »
icacls (CMD)(complément)
Réinitialise ou sauvegarde les ACL en ligne de commande.
icacls "C:\Dossier" /reset /T
Réinitialise toutes les permissions NTFS du dossier.
takeown (CMD)(complément)
Reprend la propriété d’un dossier ou fichier.
takeown /f "C:\Dossier" /r /d y
Attribue la propriété au compte administrateur courant.
Notes importantes
Les cmdlets PowerShell (Get-Acl, Set-Acl, etc.) sont plus flexibles et scriptables que les commandes classiques (icacls, takeown).
Pour toute commande modifiant les ACL, il est recommandé d’exécuter PowerShell en tant qu’administrateur.
Avant de modifier massivement des droits, vous pouvez sauvegarder les ACL avec : icacls "C:\Dossier" /save C:\backup_acl.txt /T
PowerShell ne demande pas de confirmation avant d’appliquer une modification via Set-Acl. Une erreur dans la variable $acl ou dans les permissions héritées peut supprimer des droits critiques.
Bonnes pratiques et précautions
Ne jamais appliquer un script sans sauvegarder les ACL : icacls "C:\Dossier" /save C:\Backup_ACL.txt /T
Utiliser la commande Test-Path pour vérifier les chemins avant exécution.
Toujours tester sur un dossier isolé avant d’appliquer sur un volume complet.
Exécuter PowerShell en mode Administrateur.
Une mauvaise manipulation des ACL peut rendre un dossier ou un disque inaccessible. Pensez à sauvegarder vos permissions avant toute modification en masse.