wizard — Claude Code skill: what it does, how to install
This skill creates an interactive bash wizard for manual setup steps, CI secrets, third-party dashboards, and one-off migrations.
- Author Matt Pocock
- License MIT
- GitHub ★ 302,251
- Installs 553,369
- Updated 2026-10-22
- Source shown below
What wizard does
wizard helps Claude Code turn a human-only procedure into a guided bash script. The script opens URLs, tells the user what to click or copy, collects values, and asks for confirmation at each stage. It can write captured data to .env, GitHub Secrets, or variables, with hidden input for secrets.
The skill uses template.sh and helpers such as stage, open_url, ask_secret, write_env, set_secret, set_var, pause, and confirm. The template handles stage progress, URL opening across environments including WSL, idempotent .env updates, and confirmation before irreversible actions. The generated script can be checked with bash -n and, when available, shellcheck.
A wizard is ephemeral by default: save it in a scratch path or scripts/ for one run. Keep it in the repository and link it from the README when the setup path should be repeated. Install this skill when a person must perform the steps; it is the wrong fit for commands the agent can run itself.
What it helps with
- guide a person through third-party service setup
- capture values for
.envand GitHub Secrets - prepare a one-off migration or cutover
- require confirmation before an irreversible action
- build a staged bash script with progress
How to install wizard
Command from the source
/plugin marketplace add mattpocock/skillsCommand from the source
/plugin install mattpocock-skills@mattpocockCommand from the source
npx skills add mattpocock/skills --skill wizard -a claude-codeWith the Skills CLI (Vercel)
npx skills add mattpocock/skills --skill wizard -a claude-codeManually
~/.claude/skills/wizard/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/wizard/
Manually
.agents/skills/wizard/SKILL.mdFor all projects use ~/.agents/skills/
Manually
.cursor/skills/wizard/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
GitHub CLI (gh ≥ 2.90)
gh skill install mattpocock/skills wizardManually
.github/skills/wizard/SKILL.mdGemini CLI
gemini skills install https://github.com/mattpocock/skills --path skills/engineering/wizardManually
.devin/skills/wizard/SKILL.mdThe legacy .windsurf/skills/ path still works
Claude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
How to use it: example prompts
- Create a wizard for setting up third-party credentials and write the captured values to `.env`.
- Prepare a migration wizard that opens the required URLs and uses `confirm` before the irreversible step.
- Inspect `.github/workflows/*`, collect every `secrets.*` reference, and create a wizard that writes them with `set_secret`.
Source text
SKILL.md · MIT
--- name: wizard description: Generate an interactive bash wizard that walks a human through steps only they can perform. Use when provisioning infrastructure, setting up credentials or CI secrets, walking an unfamiliar third-party dashboard, or running a one-off migration or cutover. Don't invoke this for steps the agent can perform itself. --- # Wizard A **wizard** is a bash script that walks a human, step by step, through a manual procedure that's tedious to do by hand and tedious to re-explain to an AI every time. It opens each URL, says exactly what to click and copy, captures the values, writes them where they belong (`.env`, GitHub secrets), confirms at every stage, and shows how many stages are left. It might configure third-party services, run a one-off migration, or move the project from one state to another. The delightful UX is already solved by [template.sh](template.sh): stage-by-stage progress, confirmation gates, cross-platform URL opening (including WSL), hidden secret entry, idempotent `.env` upserts, `gh secret`/`gh variable` writes, and a closing summary. **Your job is only to scope the procedure and author its stages.** The library above the `STAGES` marker is identical in every wizard; that consistency is the point: never hand-edit it. A wizard is ephemeral by default: built for one run, saved to a scratch or `scripts/` path, deleted when the job's done. Commit it only when the user wants a repeatable setup path that should live in the repo. ## Process ### 1. Scope the procedure Work out every manual step the human must take and every value that gets captured along the way. Read the repo first, don't ask cold: - For setup: `.env`, `.env.example`, `.env.*`, `README`, `docker-compose*`, framework config, and `.github/workflows/*` (every `secrets.*` / `vars.*` reference is a value the wizard must produce). - For a migration or transition: the current state, the target state, and the irreversible actions between them. Then show the user the ordered list of stages and the values each produces, and confirm: they may add, drop, or reorder. **Done when:** every stage is named in order, and for each captured value you know (a) where the human gets it, (b) where it's written (`.env`, a GitHub secret, both, or nowhere; some stages are pure actions), and (c) whether it's secret (hidden entry) or public. ### 2. Map each stage's journey For each stage, write the precise path a human follows: which URL to open, what to do there, where a value is shown, which variable it fills: e.g. "Dashboard → Developers → API keys → Reveal test key → copy". Where you don't actually know the current UI or the exact command, say so and ask the user or check the docs: never invent steps that may not exist. **Done when:** every stage traces to concrete instructions a stranger could follow. ### 3. Author the wizard Copy `template.sh` to the target path. Replace the example stage with one `stage` per step, in dependency order. Use the library helpers: `stage`, `say`/`step`, `open_url`, `ask`/`ask_secret`, `write_env`, `set_secret`/`set_var`, `pause`/`confirm`. Set `TOTAL_STAGES` to the number of stages you wrote. Hold the bar the template sets: open the URL before asking for its value, use `ask_secret` for anything secret, `write_env` every persisted value, `set_secret` only the values CI actually needs, and `confirm` before any irreversible action. Each `stage` clears the screen so only the current step is visible: keep a stage to one focused task so nothing the human needs scrolls away. Don't touch the library above the marker. ### 4. Verify and hand off - `bash -n <script>`; run `shellcheck` if available. - `chmod +x <script>`. - Don't run it end-to-end yourself: it opens browsers and blocks on human input. Trace it statically instead: every value from step 1 is captured and lands where step 1 said, and every `set_secret` name exactly matches a `secrets.*` reference in CI. - Tell the user how to run it. If it's a repeatable setup path, commit it and link it from the README so the next person runs the script instead of asking an AI.
© Matt Pocock · MIT · mattpocock/skills
Questions about wizard
How do I install wizard in Claude Code?
Run npx skills add mattpocock/skills --skill wizard -a claude-code, or use /plugin marketplace add mattpocock/skills followed by /plugin install mattpocock-skills@mattpocock.
What does wizard do?
It creates an interactive bash script that guides a person through manual steps, captures values, and writes them to the project or CI locations defined for the procedure.
Should wizard be run during verification?
The agent should not run it end to end because the script opens browsers and waits for human input. It can check the script with bash -n and trace where each captured value will go.