wow-macro-commands

wow-macro-commands is a skill for Claude Code, Codex from JBurlison/WoWAddonAPIAgents. It costs 0 tokens per session (2,000 once invoked), scanned A, original, MIT.

A reference guide to World of Warcraft Retail macros, which are short lists of slash commands run from an action-bar button.

In plain words
What is it for?
Writing, explaining, and debugging commands such as /cast, /use, and /castsequence, including conditional targeting and tooltips.
Why use it?
It explains macro syntax, conditions, execution limits, and security rules so macros behave as the game allows.

Skill for Claude CodeCodex

Written for no agent in particular: nothing here depends on one.

Good fit Writing, explaining, and debugging commands such as /cast, /use, and /castsequence, including…

Compare 6 skills from other repositories ↓
Install with agentmods
npx agentmods add skills/jburlison/wowaddonapiagents/wow-macro-commands
Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

Any agent
npx skills add JBurlison/WoWAddonAPIAgents --skill wow-macro-commands
Clone the repo
git clone --depth 1 https://github.com/JBurlison/WoWAddonAPIAgents

Made for: Claude Code, Codex.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for wow-macro-commands

README.md
[![agentmods](https://agentmods.dev/badge/skills/jburlison/wowaddonapiagents/wow-macro-commands.svg)](https://agentmods.dev/skills/jburlison/wowaddonapiagents/wow-macro-commands)
Your own site
<a href="https://agentmods.dev/skills/jburlison/wowaddonapiagents/wow-macro-commands"><img src="https://agentmods.dev/badge/skills/jburlison/wowaddonapiagents/wow-macro-commands.svg" alt="Measured on agentmods" height="20"></a>
Per session 0 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 2,000 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00000 $0.02000
Opus 5 $0.00000 $0.01000
Sonnet 5 $0.00000 $0.00400
Haiku 4.5 $0.00000 $0.00200

Measured 7d ago against content hash 12eb9d58aa88, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-06, from the pricing page.

Security

Grade A, and why

wow-macro-commands scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.github/skills/wow-macro-commands/SKILL.md · 202 lines

How it starts

The opening of the file, as written. The whole thing — 202 lines — stays where its author put it; the contents beside it link to each section on GitHub.

---
name: wow-macro-commands
description: "Complete reference for WoW Retail macro commands (slash commands), macro conditionals, macro syntax and options, secure command rules, castsequence, #show/#showtooltip, and conditional targeting. Use when writing macros, explaining /cast, /use, /castsequence, conditionals like [mod], [harm], [help], [@unit], or any slash command behavior."
---

# WoW Macro Commands

Use this skill when writing, explaining, or debugging World of Warcraft macros (slash commands).

> **Source of truth:** https://warcraft.wiki.gg/wiki/Macro_commands
> **Conditionals:** https://warcraft.wiki.gg/wiki/Macro_conditionals
> **Making a Macro:** https://warcraft.wiki.gg/wiki/Making_a_macro
> **Scope:** Retail only.

## What Macros Are

A macro is a list of slash commands executed sequentially from an action bar button. Each command goes on its own line, preceded by `/`. Macros have a **255 character limit**. Commands are **not** case-sensitive. Multiple commands run in a single frame — there is no way to wait or delay between lines.

/y Everybody, dance now! /dance


## Key Concepts

### Macro Execution Rules
- All commands in a macro execute in the **same frame** — no delays.
- You generally cannot cast more than one GCD-triggering spell per macro click.
- Instant spells that do NOT trigger the GCD can chain (e.g., trinket + cooldown + cast).
- If a `/cast` fails, subsequent `/cast` commands in the same macro are blocked.

### Secure vs. Insecure Commands
Only **secure commands** support macro conditionals (`[conditions]`). Insecure commands (chat, emotes) do not. See [references/SYNTAX.md](references/SYNTAX.md) for the full list of secure commands accepted by conditionals.

### The `!` Prefix (Toggle Prevention)
Toggleable abilities (Stealth, Shoot, Mass Dispel ground target) toggle off if `/cast` is pressed again. Prefix with `!` to prevent toggling off:

/cast !Stealth


## Core Commands Quick Reference

| Command | Purpose |
|---------|---------|
| `/cast` (or `/use`) | Cast a spell or use an item by name |
| `/castsequence` | Cast spells in order, advancing each click |
| `/castrandom` (or `/userandom`) | Cast a random spell/item from a list |
| `/stopcasting` | Stop current cast or channel |
| `/cancelaura` | Remove a buff by name |
| `/cancelform` | Leave current shapeshift form |
| `/cancelqueuedspell` | Cancel queued spell |
| `/stopmacro` | Stop processing the current macro (used with conditionals) |
| `/startattack` / `/stopattack` | Toggle auto-attack |
| `/target` | Target a unit by name (closest match) |
| `/targetexact` | Target by exact name match |
| `/focus` / `/clearfocus` | Set or clear focus target |
| `/click` | Simulate a mouse click on a UI button |
| `/equip` / `/equipslot` / `/equipset` | Equip items |
| `/dismount` | Dismount |
| `/script` (or `/run`) | Execute Lua code (insecure — cannot cast spells) |
| `#show` / `#showtooltip` | Control action bar icon and tooltip display |

## Macro Conditionals Overview

Conditionals let you choose parameters based on game state. They only work with secure commands.

**Basic syntax:**

/command [conditions] parameters; [conditions] parameters; ...


Clauses are evaluated left to right. The first true set of conditions executes. A clause with no conditions is always true (acts as "else").

/cast [help] Renew; [harm] Shadow Word: Pain


### Targeting Options (`@unit`)
Temporarily target a unit for this command only — does NOT change your selected target:
- `@player`, `@target`, `@focus`, `@mouseover`, `@party1`, `@raid5`, etc.
- `@cursor` — immediately targets ground under cursor
- `@none` — interrupts auto self-cast, requires targeting cursor

### Common Boolean Conditionals

| Conditional | Description |
|-------------|-------------|
| `exists` | Unit exists |
| `help` / `harm` | Unit can receive helpful/harmful spells |
| `dead` / `nodead` | Unit is dead / alive |
| `combat` / `nocombat` | Player in/out of combat |
| `stealth` / `nostealth` | Player stealthed |
| `mounted` / `nomounted` | Player mounted |
| `swimming` | Player swimming |
| `flying` | Player airborne (mounted/flight form) |
| `flyable` / `advflyable` | Area supports flying / Skyriding |
| `indoors` / `outdoors` | Player location |
| `mod:shift` / `mod:ctrl` / `mod:alt` | Modifier key held |
| `button:1` / `button:2` | Mouse button used (left/right) |
| `group` / `group:raid` / `group:party` | Player in group |
| `spec:1` / `spec:2` | Active spec number |
| `stance:n` / `form:n` | Current stance/form number |
| `known:spell` | Spell is known |
| `equipped:type` | Item type equipped (e.g., `equipped:Shields`) |
| `channeling` / `channeling:spell` | Currently channeling |
| `pet:name` / `pet:family` | Hunter pet by name/family |
| `pvpcombat` | PvP talents are usable |
| `resting` | In rested zone |
| `house:inside` / `house:plot` / `house:editor` / `house:neighborhood` | Housing states (Patch 11.2.7+) |

The `no` prefix inverts any condition: `[nomod]`, `[nodead]`, `[nostealth]`, etc.

See [references/CONDITIONALS.md](references/CONDITIONALS.md) for the complete conditionals reference.

## Castsequence

`/castsequence` advances through a spell list one per click:

/castsequence Immolate, Corruption, Curse of Agony


**Reset conditions** (placed before the spell list):

/castsequence reset=10/target/combat/shift Spell 1, Spell 2, Spell 3

- `reset=N` — reset after N seconds of inactivity
- `reset=target` — reset on target change
- `reset=combat` — reset on leaving combat
- `reset=shift/alt/ctrl` — reset when modifier held

## #show and #showtooltip

Control the action bar button's icon and tooltip. Must be on the first line, lowercase only:

#showtooltip [modifier:shift] Conjure Food; Conjure Water

- `#show` — controls icon only
- `#showtooltip` — controls icon AND tooltip
- Without parameters, uses the first spell WoW auto-detects
- Cannot use both `#show` and `#showtooltip` in the same macro

## Reference Files

| Reference | Contents |
|-----------|----------|
| [SLASH-COMMANDS.md](references/SLASH-COMMANDS.md) | Complete slash command reference organized by category |
| [CONDITIONALS.md](references/CONDITIONALS.md) | Full macro conditionals reference with API equivalents |
| [SYNTAX.md](references/SYNTAX.md) | Macro syntax rules, secure commands list, EBNF grammar |

## Common Macro Patterns

### Mouseover healing with fallback

#showtooltip /cast [@mouseover, help, nodead] [ ] Flash of Light


### Focus crowd control

#showtooltip Polymorph /focus [@focus, noharm] [@focus, dead] [modifier] /stopmacro [@focus, noexists] /cast [@focus] Polymorph


### Modifier-based spell selection

#showtooltip /cast [mod:shift] Healing Word; [mod:ctrl] Power Word: Shield; Heal


### Trinket + cooldown + cast

#showtooltip Pyroblast /use 13 /cast Arcane Power /cast Presence of Mind /cast Pyroblast


### Cancelaura + cast

/cancelaura Ice Block /cast Ice Block


### Equip set swap

/equipset [equipped:Shields] DPS; Tank


## When to Use This Skill

- Writing or debugging WoW macros
- Explaining slash command behavior or syntax
- Working with macro conditionals and targeting
- Understanding secure vs. insecure command restrictions
- Implementing `/castsequence`, `/castrandom`, `#showtooltip`
- Helping with focus, mouseover, or conditional targeting macros

Read the full file on GitHub · 202 lines

Files

What ships with it

3 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 7d ago First seen · 202 lines · 0 tokens per session scan A 12eb9d58aa88

Subscribe to this mod's changes

wow-macro-commands is a skill published in the GitHub repository JBurlison/WoWAddonAPIAgents (43 stars, last pushed 6mo ago), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 2,000 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.