# Explainshell

Explain shell commands in plain English (explainshell.com)

- Repository: https://github.com/taracodlabs/aiden (868 stars)
- Category: Engineering
- License: Apache-2.0
- Last updated: 2026-10-19
- Runs scripts: yes, review before use

## Install

Claude Code: `npx skills add taracodlabs/aiden --skill explainshell -g -a claude-code -y`
Codex: `npx skills add taracodlabs/aiden --skill explainshell -g -a codex -y`
Cursor: `npx skills add taracodlabs/aiden --skill explainshell -g -a cursor -y`
Gemini CLI: `npx skills add taracodlabs/aiden --skill explainshell -g -a gemini-cli -y`

## Description

Explain shell commands in plain English (explainshell.com)

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# ExplainShell, Shell Command Explainer

Paste any shell command or one-liner and get a plain-English breakdown of every flag, argument, and pipe stage. Powered by explainshell.com, which maps commands to their man-page descriptions.

**No API key required.** Works immediately for any user.

## When to Use

- User pastes a cryptic command and asks "what does this do?"
- Reviewing an unfamiliar bash script or automation pipeline
- Learning: user wants to understand each part of a complex one-liner
- Documentation: need to annotate shell commands in runbooks
- User asks "explain this command", "what does this flag mean?", "break this down"

## How to Use

### Explain a single command (browser link)

```powershell
# The simplest approach, open the explanation in the browser
$command = "tar -xzf archive.tar.gz -C /tmp"
$encoded = [Uri]::EscapeDataString($command)
Start-Process "https://explainshell.com/explain?cmd=$encoded"
Write-Host "Opened: https://explainshell.com/explain?cmd=$encoded"
```

### Fetch explanation text directly (PowerShell)

```powershell
$command = "find . -type f -name '*.log' -mtime +7 -exec rm {} \;"
$encoded = [Uri]::EscapeDataString($command)
$url     = "https://explainshell.com/explain?cmd=$encoded"

$html    = Invoke-WebRequest -Uri $url -UseBasicParsing
# Extract helptext spans (plain text explanations)
$pattern = '<span class="helptext">(.*?)</span>'
$matches = [regex]::Matches($html.Content, $pattern, 'Singleline')

Write-Host "Command: $command"
Write-Host ""
$matches | ForEach-Object {
    $text = $_.Groups[1].Value -replace '<[^>]+>', '' -replace '&amp;', '&' -replace '&lt;', '<' -replace '&gt;', '>'
    if ($text.Trim()) { Write-Host "  • $($text.Trim())" }
}
Write-Host ""
Write-Host "Full explanation: $url"
```

### Explain a piped one-liner

The rest: https://github.com/taracodlabs/aiden/blob/HEAD/skills/explainshell/SKILL.md
