setup-cdk-shell
Use when setting up shell environment for Claude Code - installs zsh, Oh My Zsh, Powerlevel10k theme, MesloLGS NF fonts, Claude CLI completions, and productivity aliases
When & Why to Use This Skill
The Setup CDK Shell skill provides an automated, comprehensive configuration for a high-performance terminal environment optimized for Claude Code. It streamlines the installation of Zsh, Oh My Zsh, the Powerlevel10k theme, and MesloLGS NF fonts, while integrating custom Claude CLI completions and productivity aliases to maximize developer efficiency and terminal aesthetics.
Use Cases
- Initial environment setup: Quickly bootstrapping a professional-grade shell for developers new to the Claude Code ecosystem.
- Terminal optimization: Upgrading a standard terminal with advanced features like syntax highlighting, auto-suggestions, and instant-prompt capabilities.
- CLI productivity: Enhancing the Claude CLI experience through pre-configured aliases and intelligent command-line completions.
- Cross-platform font management: Automating the installation of Nerd Fonts on macOS and Linux to ensure proper icon rendering in modern terminal themes.
| name | setup-cdk-shell |
|---|---|
| description | Use when setting up shell environment for Claude Code - installs zsh, Oh My Zsh, Powerlevel10k theme, MesloLGS NF fonts, Claude CLI completions, and productivity aliases |
Setup CDK Shell
Overview
Complete shell environment optimized for Claude Code development. Installs modern zsh setup with fast prompt, nerd fonts, completions, and aliases.
When to Use
- Setting up shell for Claude development
- User asks about terminal/shell optimization
- Part of
setup-claude-dev-kitbundle - User wants zsh, powerlevel10k, or nerd fonts
Quick Reference
| Component | Location |
|---|---|
| Oh My Zsh | ~/.oh-my-zsh |
| Theme | ~/.oh-my-zsh/custom/themes/powerlevel10k |
| Fonts | ~/Library/Fonts/MesloLGS*.ttf (macOS) |
| Config | ~/.p10k.zsh |
| Completions | ~/.zsh/completions/_claude |
Installation Steps
1. Install Oh My Zsh (if needed)
# Check if installed
if [ ! -d ~/.oh-my-zsh ]; then
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended
fi
2. Install Powerlevel10k
# Clone theme
git clone --depth=1 https://github.com/romkatv/powerlevel10k.git \
${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
# Or update if exists
cd ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k && git pull
3. Install MesloLGS NF Fonts
macOS:
# Download fonts
curl -L -o /tmp/MesloLGS_NF_Regular.ttf "https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Regular.ttf"
curl -L -o /tmp/MesloLGS_NF_Bold.ttf "https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold.ttf"
curl -L -o /tmp/MesloLGS_NF_Italic.ttf "https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Italic.ttf"
curl -L -o /tmp/MesloLGS_NF_Bold_Italic.ttf "https://github.com/romkatv/powerlevel10k-media/raw/master/MesloLGS%20NF%20Bold%20Italic.ttf"
# Install to user fonts
mkdir -p ~/Library/Fonts
mv /tmp/MesloLGS_NF_*.ttf ~/Library/Fonts/
Linux:
mkdir -p ~/.local/share/fonts
# Same curl commands, then:
mv /tmp/MesloLGS_NF_*.ttf ~/.local/share/fonts/
fc-cache -fv
4. Install Useful Plugins
# zsh-autosuggestions
git clone https://github.com/zsh-users/zsh-autosuggestions \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
# zsh-syntax-highlighting
git clone https://github.com/zsh-users/zsh-syntax-highlighting \
${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
5. Configure .zshrc
Add/update in ~/.zshrc:
# At the very top (instant prompt)
if [[ -r "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh" ]]; then
source "${XDG_CACHE_HOME:-$HOME/.cache}/p10k-instant-prompt-${(%):-%n}.zsh"
fi
# Theme
ZSH_THEME="powerlevel10k/powerlevel10k"
# Plugins
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)
# At the bottom
[[ -f ~/.p10k.zsh ]] && source ~/.p10k.zsh
6. Install Claude CLI Completions
mkdir -p ~/.zsh/completions
# Generate completions (if claude supports it)
claude --completions zsh > ~/.zsh/completions/_claude 2>/dev/null || true
# Add to .zshrc
echo 'fpath=(~/.zsh/completions $fpath)' >> ~/.zshrc
7. Add Claude Aliases
cat >> ~/.zshrc << 'EOF'
# Claude Dev Kit aliases
alias cc='claude'
alias ccp='claude -p'
alias cch='claude --help'
alias ccv='claude --version'
alias ccc='claude --continue'
alias ccr='claude --resume'
EOF
8. Configure Terminal Font
Terminal.app: Preferences → Profiles → Text → Font → "MesloLGS NF"
iTerm2: Preferences → Profiles → Text → Font → "MesloLGS NF"
VS Code: Add to settings.json:
"terminal.integrated.fontFamily": "MesloLGS NF"
9. Run p10k Configuration
# Interactive wizard
p10k configure
Verification
# Check components
[ -d ~/.oh-my-zsh ] && echo "✓ Oh My Zsh"
[ -d ~/.oh-my-zsh/custom/themes/powerlevel10k ] && echo "✓ Powerlevel10k"
ls ~/Library/Fonts/MesloLGS* 2>/dev/null && echo "✓ Fonts installed"
[ -f ~/.p10k.zsh ] && echo "✓ p10k configured"
command -v claude && echo "✓ Claude CLI"
Adaptation Mode
When existing shell setup detected:
- Backup .zshrc:
cp ~/.zshrc ~/.claude-dev-kit/backups/$(date +%Y-%m-%d)/.zshrc.bak
- Check for conflicts:
- Starship prompt → Ask: keep or try p10k?
- Existing theme → Preserve or replace?
- Custom plugins → Merge, don't overwrite
- Append, don't replace:
echo "# Claude Dev Kit Shell Additions" >> ~/.zshrc
Common Issues
| Issue | Fix |
|---|---|
| Icons show as boxes | Terminal not using MesloLGS NF font |
| Theme not loading | Check ZSH_THEME in .zshrc |
| Slow prompt | Enable instant prompt at top of .zshrc |
| Completions not working | Run compinit or restart shell |
Updating
# Update powerlevel10k
cd ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/themes/powerlevel10k && git pull
# Update plugins
cd ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions && git pull
cd ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting && git pull