zsh

Use when setting up zsh and Oh My Zsh on a new machine, configuring shell plugins, PATH, or conda initialization. Triggers: "zsh", "zshrc", "Oh My Zsh", "shell config", "dotfiles", "conda init", "PATH"

10 stars

Best use case

zsh is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Use when setting up zsh and Oh My Zsh on a new machine, configuring shell plugins, PATH, or conda initialization. Triggers: "zsh", "zshrc", "Oh My Zsh", "shell config", "dotfiles", "conda init", "PATH"

Teams using zsh should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/zsh/SKILL.md --create-dirs "https://raw.githubusercontent.com/dongzhuoyao/tao-research-skills/main/skills/devenv/zsh/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/zsh/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How zsh Compares

Feature / AgentzshStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Use when setting up zsh and Oh My Zsh on a new machine, configuring shell plugins, PATH, or conda initialization. Triggers: "zsh", "zshrc", "Oh My Zsh", "shell config", "dotfiles", "conda init", "PATH"

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# ZSH Configuration

Personal zsh dotfiles with Oh My Zsh for a consistent shell environment across machines.

## When to Use

- Setting up zsh + Oh My Zsh on a new machine or server
- Configuring PATH, conda, or shell plugins
- Restoring shell configuration after a reinstall
- Debugging shell startup or conda issues

## Quick Reference

| Setting | Value |
|---------|-------|
| Repo | `git@github.com:dongzhuoyao/tao-tmux-zsh.git` |
| Framework | Oh My Zsh |
| Theme | `robbyrussell` |
| Plugins | `git` |
| PATH additions | `~/.local/bin`, `~/.opencode/bin` |
| Conda | Miniconda3 initialization (if installed) |
| Cursor | Blinking cursor enabled (for Termius) |

## Installation

```bash
# 1. Install Oh My Zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# 2. Clone
git clone git@github.com:dongzhuoyao/tao-tmux-zsh.git ~/tao-tmux-zsh

# 3. Backup existing config
[ -f ~/.zshrc ] && mv ~/.zshrc ~/.zshrc.bak

# 4. Symlink
ln -sf ~/tao-tmux-zsh/zshrc ~/.zshrc

# 5. Reload
source ~/.zshrc
```

## Common Tasks

### Set up a new remote server

```bash
# SSH in, then:
sudo apt install zsh       # or: yum install zsh
chsh -s $(which zsh)       # set zsh as default shell (re-login required)

# Install Oh My Zsh
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

# Clone and symlink
git clone git@github.com:dongzhuoyao/tao-tmux-zsh.git ~/tao-tmux-zsh
ln -sf ~/tao-tmux-zsh/zshrc ~/.zshrc
```

### Reload after edits

```bash
source ~/.zshrc
```

### Update dotfiles

```bash
cd ~/tao-tmux-zsh && git pull
source ~/.zshrc
```

## Dependencies

| Dependency | Required | Install |
|------------|----------|---------|
| Oh My Zsh | Yes | `sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"` |
| Miniconda3 | Optional | [miniconda docs](https://docs.conda.io/en/latest/miniconda.html) |

## Troubleshooting

| Issue | Fix |
|-------|-----|
| Conda not found after setup | Re-source: `source ~/.zshrc` or check Miniconda3 is installed at `~/miniconda3` |
| Oh My Zsh not found | Re-run the Oh My Zsh installer; check `~/.oh-my-zsh/` exists |

## Anti-Patterns

| Anti-Pattern | What goes wrong | Fix |
|--------------|-----------------|-----|
| Hand-editing `~/.zshrc` directly after symlinking | Edits lost on next `git pull` of dotfiles repo | Edit `~/tao-tmux-zsh/zshrc` and re-source |
| Adding many Oh My Zsh plugins (autosuggestions, syntax-highlighting, etc.) | Slow startup, especially on remote HPC login nodes | Keep plugin list minimal (`git` only) |
| Manually pasting conda init into zshrc multiple times | Duplicate `>>> conda initialize >>>` blocks shadow each other | Let `conda init zsh` manage it; remove duplicates if they appear |
| Hardcoding `/Users/...` or `/home/...` paths in PATH | Breaks across machines | Use `$HOME` or `~` for portability |
| Running `chsh -s $(which zsh)` then expecting the current shell to switch | Takes effect only on next login | Re-login or `exec zsh` to verify before closing the SSH session |
| Sourcing zshrc inside an sbatch job script | Slurm runs non-login non-interactive shell; zshrc behavior is unreliable | Source conda explicitly in sbatch (`source "$(conda info --base)/etc/profile.d/conda.sh"`) instead |

## See Also

- `tmux` — Companion tmux configuration from the same dotfiles repo

Related Skills

We are still matching the closest adjacent skills for this page. In the meantime, continue through the full directory.