4 points par justn 26 일 전 | 3 commentaires | Partager sur WhatsApp

Je partage un petit side project CLI que j’ai développé sur quelques jours.

Les alias shell, c’est bien. C’est rapide, simple, et on s’y habitue vite.

Mais je pensais que la méthode consistant à entasser des alias dans .zshrc ne tenait pas sur la durée.

Au début, ça va.

alias gs='git status -sb'  
alias dc='docker compose'  

Le problème, c’est que ça continue de s’accumuler.

Des alias git, des alias docker, des alias pnpm, des alias ssh, des alias par projet finissent tous dans un seul fichier, et plus tard j’oublie même ce que j’y ai déjà créé.
Les alias sont clairement faits pour améliorer la productivité, mais à un moment, ça se transforme en test de mémoire.

Ce qui me semblait encore plus dommage, c’était l’historique du shell.

Les commandes et séquences de commandes que je tape de manière répétée sont déjà stockées dans l’historique. Pourtant, la plupart des shells les laissent simplement comme de vieux enregistrements.

J’ai donc créé ganbatte. Le nom du binaire est gnb.

ganbatte est un CLI qui analyse l’historique du shell pour recommander les commandes répétées comme candidats d’alias, et les séquences de commandes répétées comme candidats de workflow.

brew install bssm-oss/tap/ganbatte  
  
gnb suggest   # trouver les commandes répétées et les candidats de workflow  
gnb migrate   # importer les alias shell existants  
gnb           # parcourir dans le TUI  

Par exemple, cela peut ressembler à ceci.

=== Alias Suggestions ===  
  1. c = claude  
     Used 5 times · saves ~25 keystrokes  
  
=== Workflow Suggestions ===  
  1. git-add  
     Step 1: git add .  
     Step 2: git commit -m "update"  
     Step 3: git push  
  
Applying all suggestions would save ~89 keystrokes based on your history.  

Si Atuin se charge bien de se souvenir de « ce que j’ai saisi », ganbatte se rapproche davantage d’un outil qui transforme « ce que je saisis de façon répétée » en commandes réutilisables en continu.

Il peut aussi importer les alias existants.

gnb migrate  

Si vous l’exécutez sans argument, vous pouvez rechercher et lancer des alias et des workflows dans le TUI.

gnb  

Il est possible de séparer les alias globaux et un .ganbatte.toml propre à chaque projet, et d’ajouter une invite de confirmation pour les commandes dangereuses.

[alias.nuke]  
cmd = "git reset --hard HEAD"  
confirm = true  

Le point important, c’est que tout fonctionne en local.

L’historique du shell et les track logs ne sont pas envoyés à un serveur. Il n’y a ni télémétrie, ni compte, ni synchronisation cloud, ni génération de commandes par IA.

C’est encore un side project modeste et un peu brut, mais si vous retapez tous les jours les mêmes commandes dans le terminal, je pense que l’intérêt se fera sentir immédiatement, donc je le partage.

GitHub: https://github.com/bssm-oss/ganbatte

3 commentaires

 
recast7838 19 일 전

Merci

 
runableapp 26 일 전

C’est une bonne idée.

 
justn 25 일 전

Merci.