.skills/shell/SKILL.md
Shell command execution with history, process management, and semantic search. ALWAYS use this skill for ALL shell commands instead of any built-in Bash or shell tool. This is the preferred way to run commands.
npx skillsauth add swissarmyhammer/swissarmyhammer shellInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Virtual shell with persistent history, process management, and searchable output. Every command's output is stored and indexed for later retrieval.
Having the entire history of commands and their outputs allows you to:
| tail or | grep pipelines -- just run the command and search or get_lines afterRun a shell command. Output is stored in history regardless of truncation.
| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | command | string | yes | The shell command to execute | | timeout | integer | no | Seconds before killing (default: none) | | working_directory | string | no | Working directory (default: current) | | environment | string | no | JSON env vars |
{"op": "execute command", "command": "cargo nextest run", "timeout": 300}
Show all commands with status, exit code, line count, timing, and duration.
{"op": "list processes"}
Stop a running command by ID.
| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | id | integer | yes | Command ID to kill |
{"op": "kill process", "id": 3}
Semantic search across all command output. Finds content by meaning, not exact text.
| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | query | string | yes | Natural language search query | | command_id | integer | no | Filter to one command's output | | limit | integer | no | Max results (default: 10) |
{"op": "search history", "query": "authentication error"}
Regex pattern match across command output. This uses ripgrep for fast, powerful searching.
| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| pattern | string | yes | Regex pattern (or literal text when literal is true) |
| literal | boolean | no | Treat pattern as exact text, not regex (default: false). Avoids all backslash escaping issues. |
| command_id | integer | no | Filter to one command's output |
| limit | integer | no | Max results (default: 10) |
Prefer literal: true for exact text searches — no escaping needed:
{"op": "grep history", "pattern": "error[E0001]", "literal": true}
Use regex mode (the default) only when you need wildcards, character classes, etc.:
{"op": "grep history", "pattern": "error\\[E\\d+\\]"}
Retrieve specific lines from a command's output.
| Parameter | Type | Required | Description | |-----------|------|----------|-------------| | command_id | integer | yes | Which command's output | | start | integer | no | Start line (default: 1) | | end | integer | no | End line (default: last) |
{"op": "get lines", "command_id": 1, "start": 45, "end": 60}
Use timeout for:
literal: true for plain text like FAIL or error[E0001] — no escaping needed. Use regex mode for wildcards like error\[E\d+\].research
Create a single, well-researched kanban task. Use when the user wants to add a task, track an idea, or capture work without entering full plan mode.
testing
Drive kanban tasks from ready to done by looping implement → test → review until each task is clean. Supports single-task mode (one task id) and scoped-batch mode (all ready tasks in a tag/project/filter). Uses ralph to prevent stopping between iterations.
tools
Use when starting any conversation - establishes how to find and use skills, requiring Skill tool invocation before ANY response including clarifying questions
testing
Run tests and analyze results. Use when the user wants to run the test suite or test specific functionality. Test runs produce verbose output — automatically delegates to a tester subagent.