fix: install.sh — read et fzf lisent depuis /dev/tty (compatibilité curl | bash)

Sans </dev/tty, stdin est le pipe curl et les prompts interactifs
(question fzf, question installation fzf) ne répondent pas.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-05-16 05:00:45 +02:00
parent 8a38aec0a0
commit e3b9a7f59a
4 changed files with 187 additions and 4 deletions
+1 -2
View File
@@ -2,8 +2,7 @@
.claude/
# Fichiers de travail personnels (notes, brouillons)
claude_code_skills_installer_guidelines_md.md
future-list_skill.md
# Fichiers temporaires système
*.tmp
@@ -0,0 +1,153 @@
# Consignes Claude Code — Système dinstallation de Skills
tu est un expert senior en devellopement de script bash pour linux (debian ou ubuntu)
tu es egalement un expret en creation de skill pour des agents ia : claude code, codex, gemini cli, hermes agent et tu connais bien la structure du skill et des dossiers attendu
tu t'exprimera avec moi en francais comprehensible par un novice.
tes commentaires de code seront egalement en francais
tu analysera quels outils sont les plus utile pour develloper mon projet
tu deploiera un plan de devellopement avant toute ecriture de code
## Objectif général
Développer un système simple, autonome et robuste permettant :
- un repo comme base de mes skills_perso
- dinstaller des skills IA via une commande shell ;
- dactiver/désactiver des skills ;
- de gérer les dépendances minimales ;
- de fonctionner principalement avec :
- `bash`
- `curl`
- `wget`
- `git`
Le système doit être pensé pour Debian/Linux principalement.
---
# Philosophie du projet
Le système doit être :
- minimaliste ;
- autonome ;
- facilement portable ;
- lisible ;
- maintenable ;
- compatible self-hosted ;
- orienté CLI ;
- compatible avec des agents IA locaux.
Éviter :
- les frameworks lourds ;
- les installateurs complexes ;
- les dépendances Python inutiles ;
- Node.js ;
- Docker ;
- les services système complexes.
Le système doit pouvoir fonctionner sur :
- Debian ;
- Ubuntu ;
- Proxmox ;
- VM Linux légères ;
- mini-PC ;
- environnements homelab.
---
# Fonctionnalités attendues
un repo perso de stockage de mes skills perso.
tu definira la structure des dossier affin d'avoir un classement des skill judicieux, evolutif
## Installation de skills sur le poste client
Exemple attendu :
```bash
curl -fsSL https://gitea.maison43.duckdns.org/gilles/mes_skills/install.sh | bash
```
tu fera un brainstorming sur la meilleur outils pour generer ce script d'installation
Voici mes 1ere investigation ; rien n'est obligatoire.
Le système doit :
- un script bash
- installer uniquement les dépendances nécessaires ;
- detecter quels agent ia est installe sur le systeme
- detecter quels skills sont deja installer en global
- cloner ou copier le dépôt de skill dans un repertoire temporaire;
- demander pour quels agent je dois installer
- demander si installer en global ou dans dossier projet ( dossier actuel ou je lance la commande)
- proposer un menu avec la liste des skills installable/deja installe, a mettre a jours
- selectionner les skils via clavier felche haut, bas; space, esc, enter
- gerer un versioning des skill
- detecter de nouveaux skill intalle en local et non present dans mon repo ( possibilite d'uploader vers mon repo git un new skill)
tu pourra verifier sur les site suivant la structure d'un skill:
- https://code.claude.com/docs/fr/skills
- https://developers.openai.com/codex/skills
- https://geminicli.com/docs/cli/skills/
- https://hermes-agent.nousresearch.com/docs/guides/work-with-skills
## Suggestion
Exemple :
```bash
https://github.com/NousResearch/hermes-agent/blob/main/scripts/install.sh
```
analyse se script, sa mecanique me semble correspondre a ce que je veux
---
## Détection automatique
Le script doit détecter automatiquement :
- présence de `git`
- présence de `curl`
- présence de `wget`
- présence de `python3`
- présence de `uv`
- présence de `docker`
- présence de `podman`
Puis adapter linstallation.
---
## Gestion Python
Si un skill nécessite Python :
Préférer :
```bash
python3 -m venv
```
ou idéalement :
```bash
uv venv
```
Éviter :
```bash
pip install globalement
```
Chaque skill doit idéalement avoir son environnement isolé.
+31
View File
@@ -0,0 +1,31 @@
# en vrac, liste de skill a creer
- home assistant : debug log, automatisation, dashboard optimization, service, entitie
- esphome ; creation, debuggazge amelioration
- esp32 : iot vias esp32, analyse puce et gpio, platformio, webserver, wifi,ap, ds18b20, dht22, relay, switch, rules, ota, ethernet, carte kincony
- traducteur de page markdown ( ne pas traduire les lien ), screen, touchscreen
- docker compose expert
- analyse reseau
- proxmox
- opensense expert
- serveur dns api
- cura printer
- bash expert
- rpi expert for iot
- nodered writer
- linux hardware optimisation
- selhosted homelab
- tuto ia ; ollama, hermes claude code, gemini cli, codex
- web page designer for laptop/smartphone
- matrix selfhosted expert (synapse)
- python coding expert, rust
- zigbee expert
- weewx expert ( merge old database)
- mqtt optimizer
- coral et expert image analyser
- create plan de dev pour un app selhosted
- debian et ubuntu optimizer
- asus tuf gaming (recherche internet evolution compatibilite avec linux)
- ia selfhosted ollazma, lmstudio cpu, nvidia, intel arc
- expert jardinnage
- expert diy et iot (recherche web)
+2 -2
View File
@@ -76,7 +76,7 @@ _install_fzf_binary() {
install_fzf() {
warn "fzf non trouvé."
echo -e " ${GRV_FG}Installer fzf ? [o/N]${RESET} \c"
read -r answer
read -r answer </dev/tty
[[ "$answer" != "o" && "$answer" != "O" ]] && err "fzf requis. Abandon." && exit 1
if command -v apt-get &>/dev/null; then
debug "Installation via apt"
@@ -392,7 +392,7 @@ LIST_EOF
--prompt="Skills > " \
--header="$legend" \
--bind="tab:execute-silent($cycle_script '$STATE_FILE' '$fns_file' {n})+reload($list_script)" \
< <(bash "$list_script") > /dev/null || true
< <(bash "$list_script") > /dev/null </dev/tty || true
rm -f "$cycle_script" "$list_script" "$fns_file"
}