Communitygithub.com

G1Joshi/Agent-Skills

Assistant Zsh expert couvrant la personnalisation du shell, les plugins Oh My Zsh, le gestionnaire de plugins Zinit, l'ingénierie des invites (Starship/Powerlevel10k) et l'écriture de scripts shell. À utiliser lors de la configuration de .zshrc, de l'écriture de scripts d'automatisation Zsh, de l'optimisation du temps de démarrage du shell ou de la configuration de la complétion par tabulation.

Qu'est-ce que Agent-Skills ?

Cette compétence fournit une assistance experte pour Zsh, le shell par défaut sur macOS, hautement personnalisable et compatible avec Bash. Elle est utile pour configurer un shell interactif à haute productivité avec autocomplétion, navigation floue, historique de recherche et indicateurs de branche, ainsi que pour exploiter un écosystème moderne de plugins CLI comme `zsh-autosuggestions`, `zsh-syntax-highlighting` et Starship. Elle prend en charge l'écriture de scripts shell robustes avec des fonctions d'expansion de paramètres et de gestion d'erreurs, ainsi que la gestion d'environnements d'entreprise (versions SDK, variables PATH, alias). La compétence s'applique à toute plateforme utilisant Zsh, notamment macOS et Linux, et explique comment optimiser le démarrage du shell (sub-20ms) via un fichier .zshrc minimal, le chargement léger de plugins, ou l'utilisation de Zinit en mode turbo. Elle inclut également des bonnes pratiques (compilation byte-code, synchronisation d'historique, utilisation de Starship) et un dépannage pour les erreurs courantes.

Compatible avec~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/G1Joshi/Agent-Skills/tree/HEAD/skills/tools/zsh

Demander à votre IA préférée

Ouvre une nouvelle conversation avec cette compétence d'agent déjà préchargée.

Documentation

Zsh

Zsh est le shell par défaut sur macOS. Il est hautement personnalisable et compatible avec Bash.

Quand l'utiliser

  • Shell interactif à haute productivité : Autocomplétion interactive, navigation floue, recherche dans l'historique et indicateurs de branche.
  • Écosystème moderne de plugins CLI : Accélération des workflows shell avec zsh-autosuggestions, zsh-syntax-highlighting et l'invite Starship.
  • Écriture robuste de scripts shell : Création de scripts d'automatisation compatibles POSIX et étendus à Zsh avec manipulation de tableaux et globbing.
  • Gestion d'environnements d'entreprise : Gestion des versions SDK, des exports PATH et des alias sur les serveurs macOS et Linux.

Démarrage rapide

1. Configuration minimale ~/.zshrc

# Configuration de l'historique
HISTFILE="$HOME/.zsh_history"
HISTSIZE=50000
SAVEHIST=50000
setopt HIST_IGNORE_DUPS
setopt SHARE_HISTORY

# Raccourcis clavier (mode emacs)
bindkey -e

# Autocomplétion
autoload -Uz compinit && compinit

# Alias
alias ll="ls -lah"
alias g="git"
alias gs="git status -sb"

2. Mesurer le temps de démarrage

# Profiler la durée de démarrage de zsh
time zsh -i -c exit

Concepts fondamentaux

Fichier .zshrc moderne et rapide (~/.zshrc)

Configuration d'un démarrage du shell en moins de 20ms, complétion intelligente et historique :

# ~/.zshrc
# Configuration de l'historique
HISTFILE="$HOME/.zsh_history"
HISTSIZE=50000
SAVEHIST=50000
setopt EXTENDED_HISTORY
setopt HIST_EXPIRE_DUPS_FIRST
setopt HIST_IGNORE_DUPS
setopt HIST_IGNORE_SPACE
setopt HIST_VERIFY
setopt SHARE_HISTORY

# Options de navigation dans les répertoires
setopt AUTO_CD
setopt AUTO_PUSHD
setopt PUSHD_IGNORE_DUPS
setopt PUSHD_SILENT

# Système de complétion rapide (avec cache)
autoload -Uz compinit
typeset -i updated_at=$(date +'%j' -r ~/.zcompdump 2>/dev/null || stat -f '%Sm' -t '%j' ~/.zcompdump 2>/dev/null)
if [ $(date +'%j') != $updated_at ]; then
  compinit -i
else
  compinit -C -i
fi

# Raccourcis clavier modernes : Recherche dans l'historique
bindkey -e
bindkey '^[[A' history-search-backward
bindkey '^[[B' history-search-forward

# Initialisation de l'invite Starship (si installé)
if command -v starship &> /dev/null; then
  eval "$(starship init zsh)"
fi

Chargement léger de plugins sans frameworks lourds

Chargement direct des suggestions et de la coloration syntaxique :

# Cloner les plugins vers ~/.zsh/plugins/
# git clone https://github.com/zsh-users/zsh-autosuggestions ~/.zsh/plugins/zsh-autosuggestions
# git clone https://github.com/zsh-users/zsh-syntax-highlighting ~/.zsh/plugins/zsh-syntax-highlighting

source ~/.zsh/plugins/zsh-autosuggestions/zsh-autosuggestions.zsh
source ~/.zsh/plugins/zsh-syntax-highlighting/zsh-syntax-highlighting.zsh

# Configurer la couleur des suggestions
ZSH_AUTOSUGGEST_HIGHLIGHT_STYLE='fg=8'

Globbing avancé et expansion de paramètres Zsh

Utilisation du globbing récursif et des modificateurs :

# Lister tous les fichiers TypeScript modifiés dans les dernières 24 heures
ls -lh **/*.ts(m-1)

# Supprimer récursivement tous les répertoires vides
rmdir -p **/*(/^F) 2>/dev/null

# Sélectionner uniquement les fichiers exécutables dans bin/
chmod +x bin/*(*)

Schémas courants

Chargement rapide de plugins avec Zinit

Problème : Le démarrage d'Oh My Zsh prend des centaines de millisecondes en raison d'un chargement eager lourd. Solution : Utiliser Zinit en mode turbo (chargement différé).

# Installer Zinit s'il est manquant
source ~/.local/share/zinit/zinit.git/zinit.zsh

# Charger en turbo la coloration syntaxique et les suggestions de manière asynchrone
zinit wait lucid for \
  atinit"ZINIT[COMPINIT_OPTS]=-C; zicompinit; zicdreplay" \
    zdharma-continuum/fast-syntax-highlighting \
  atload"_zsh_autosuggest_start" \
    zsh-users/zsh-autosuggestions \
  blockf \
    zsh-users/zsh-completions

Fonctions de script shell robustes

Problème : Écrire des fonctions shell réutilisables avec analyse des options et gestion des erreurs. Solution : Utiliser les expansions de paramètres Zsh standard.

# mkcd : Créer un répertoire et s'y déplacer
mkcd() {
  if [[ -z "$1" ]]; then
    echo "Usage : mkcd <dir>" >&2
    return 1
  fi
  mkdir -p "$1" && cd "$1"
}

Bonnes pratiques (2026)

  • À faire : Compiler ~/.zcompdump en un fichier compilé en byte-code (compdump.zwc) pour accélérer le temps de démarrage du shell.
  • À faire : Définir setopt SHARE_HISTORY pour synchroniser l'historique des commandes entre tous les onglets de terminal actifs.
  • À faire : Utiliser Starship ou une invite native légère plutôt que des thèmes d'invite historiques lourds.
  • À faire : Profiler la latence de démarrage en utilisant zmodload zsh/zprof en haut et en bas du fichier ~/.zshrc.
  • À ne pas faire : Utiliser des configurations de framework lourdes et gonflées (configurations monolithiques d'Oh-My-Zsh) avec des dizaines de plugins inutiles.
  • À ne pas faire : Stocker des informations d'identification cloud en texte brut, des jetons API ou des secrets dans ~/.zshrc ; utiliser des fichiers .env privés ou des coffres-forts de secrets.
  • À ne pas faire : Exécuter des commandes externes lentes (nvm, brew doctor) de manière synchrone à chaque lancement du shell interactif.

Dépannage

Erreur / SymptômeCauseSolution
zsh: command not found: ... après édition du .zshrcErreur de syntaxe dans .zshrc ou affectation de $PATH écrasée au lieu d'être préfixéePréfixer correctement les chemins : export PATH="$HOME/bin:$PATH" et exécuter source ~/.zshrc.
zsh compinit: insecure directories, run compauditPermissions de fichiers non sécurisées sur /usr/local/share/zshExécuter `compaudit
Zsh démarre très lentement (> 500ms)Initialisation synchrone de nvm ou de plugins lourdsUtiliser le chargement différé pour nvm ou profiler avec zmodload zsh/zprof en haut de .zshrc et zprof en bas.

Références

Individual skills in this repo

This repo contains 11 individual skills — each has its own dedicated page.

G1Joshi/Agent-Skills

Expert Dask distributed computing assistance covering Dask DataFrames, Arrays, Futures, and cluster scaling. Use when analyzing datasets too large for pandas on a single machine or multi-node cluster.

G1Joshi/Agent-Skills

Expert dbt (data build tool) assistance covering SQL modeling, Jinja macros, tests, documentation, and semantic layer. Use when building analytics engineering pipelines on BigQuery, Snowflake, or PostgreSQL.

G1Joshi/Agent-Skills

Expert JAX assistance covering Autograd, XLA compilation (`jit`), vectorization (`vmap`), and parallelization (`pmap`). Use when building high-performance numerical computing and cutting-edge deep learning research.

G1Joshi/Agent-Skills

Expert Ray distributed computing assistance covering Ray Core (actors, tasks), Ray Train, Ray Tune, and Ray Serve. Use when scaling Python compute and ML training across multi-node clusters.

G1Joshi/Agent-Skills

Expert Git version control assistance covering branching, interactive rebase, cherry-pick, submodules, worktrees, and conflict resolution. Use when managing source code history and collaboration workflows.

G1Joshi/Agent-Skills

Expert K9s CLI assistance covering terminal Kubernetes cluster navigation, real-time log streaming, port forwarding, and pod debugging. Use when managing and troubleshooting Kubernetes clusters with speed.

G1Joshi/Agent-Skills

Expert SWC assistance covering high-performance Rust-based JavaScript/TypeScript compilation, .swcrc configuration, Jest testing via @swc/jest, and minification. Use when replacing Babel with SWC for faster builds, accelerating test execution, or compiling modern ECMAScript features.

G1Joshi/Agent-Skills

Expert Tig assistance covering text-mode interface for Git, interactive staging, commit graph visualization, diff exploration, and blame navigation. Use when navigating Git commit history in the terminal, staging hunks interactively, browsing file changes, or reviewing revisions.

G1Joshi/Agent-Skills

Expert Vim assistance covering modal editing, .vimrc configuration, registers, macros, search/replace, and plugin management via vim-plug. Use when editing text efficiently in terminal environments, writing Vimscript, recording macros, or configuring core Vim settings.

G1Joshi/Agent-Skills

Expert Zed editor assistance covering high-performance Rust-based text editing, multi-buffer editing, language server protocols (LSP), and AI assistant integrations. Use when configuring Zed settings.json, setting up language extensions, collaborating in real-time channels, or optimizing editor startup speed.

G1Joshi/Agent-Skills

Expert [skill-name] assistance covering [feature 1], [feature 2], and [feature 3]. Use when [working with X], [debugging Y], or [implementing Z].

Skills associés