zsh-config-expert

Configure and troubleshoot zsh startup files, completion systems, prompts, and plugin frameworks.

Updated Mar 29, 2026
One-click install
npx skills add https://github.com/r-senchuk/agentskills --skill zsh-config-expert-r-senchuk
Or copy as Structured Prompt for Agent▼
Please help me install this Agent Skill.
Skill: zsh-config-expert
Source: https://github.com/r-senchuk/agentskills/tree/main/.agents/skills/zsh-config-expert
Command: npx skills add https://github.com/r-senchuk/agentskills --skill zsh-config-expert-r-senchuk

SYSTEM DOCUMENTATION & REQUIREMENTS

What problem does it solve? Zsh configuration is error-prone: settings placed in the wrong startup file silently fail, slow shell startup goes undiagnosed, and zsh-specific syntax (1-indexed arrays, glob qualifiers, parameter expansion) trips up users coming from bash. This Skill provides a structured procedure for configuring, debugging, and optimizing zsh environments correctly. ## Core Features & Use Cases - Startup file guidance: Explains the load order of .zshenv, .zprofile, .zshrc, and .zlogin so configuration lands in the right file (e.g., Homebrew shellenv in .zprofile, not .zshrc). - Completion system setup: Provides compinit initialization, menu-driven selection, case-insensitive matching, and completion caching snippets. - Startup performance profiling: Uses zmodload zsh/zprof to identify slow plugins and guides lazy-loading optimizations. - Zsh syntax reference: Covers glob qualifiers, parameter expansion flags, and 1-indexed array behavior for bash-to-zsh translation. - Use Case: Your terminal takes 3 seconds to open a new tab. The Skill walks you through profiling with zprof, identifying a slow oh-my-zsh plugin, and deferring its load to cut startup time. ## Quick Start Ask the agent to review your .zshrc, fix a slow shell startup, or set up case-insensitive tab completion with your plugin framework.

Frequently Asked Questions about zsh-config-expert

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I fix slow zsh startup time?▼

Add `zmodload zsh/zprof` to the top of your .zshrc and `zprof` at the bottom, then open a new shell to see which plugins or functions take the longest. Defer or lazy-load anything taking more than about 50ms, and measure improvement with `time zsh -i -c exit`.

What is the difference between .zshrc, .zprofile, and .zshenv?▼

.zshenv loads for every zsh invocation and should hold environment variables like PATH. .zprofile runs only for login shells, suited for one-time setup like Homebrew shellenv. .zshrc runs for interactive shells and holds aliases, completions, prompt, and plugins.

How do I set up case-insensitive tab completion in zsh?▼

Initialize the completion system with `autoload -Uz compinit && compinit` in .zshrc, then add `zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}'`. You can also enable menu selection and completion caching for faster, interactive completion.

Why does my zsh array index return the wrong element?▼

Zsh arrays are 1-indexed, unlike bash which is 0-indexed, so `$arr[1]` returns the first element. Negative indexing also works, so `$arr[-1]` returns the last element.

Where should Homebrew shellenv go in zsh config?▼

Put `eval "$(brew shellenv)"` in .zprofile, not .zshrc. .zprofile runs once per login shell, while placing it in .zshrc re-runs it for every interactive shell, adding unnecessary startup overhead.

When should I not use this zsh configuration approach?▼

This Skill does not cover bash-only scripting that never touches zsh, writing new shell scripts from scratch, or non-shell configuration files. It focuses on configuring and troubleshooting existing zsh environments rather than general shell programming.