# Commands Create Slash Command

> Create or edit reusable Agent Zero /commands with YAML and text/Python templates.

- Skill: `frdel/commands-create-slash-command` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add frdel/commands-create-slash-command`
- Raw SKILL.md: https://api.skillmd.com/api/skills/frdel/commands-create-slash-command/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: frdel (https://skillmd.com/u/frdel)
- Updated: 2026-09-10
- Page: https://skillmd.com/skills/frdel/commands-create-slash-command

---


# Commands Plugin Slash Command Authoring

Use this skill when the user wants a reusable `/command` for Agent Zero's built-in `_commands` plugin.

## Source Of Truth

- Slash commands are file-backed, not database rows.
- Each command uses:
  - one config file: `<slug>.command.yaml`
  - one content file:
    - text template: `<slug>.txt`, or
    - python hook: `<slug>.py`
- Required config keys:
  - `name`
  - `description`
  - `type` (`text` or `script`)
- Optional config keys:
  - `argument_hint`
  - `include_history` (script commands)
- Preserve unknown config keys when editing existing commands.

## Scope Resolution

Choose the target folder from the requested scope:

- Project: `usr/projects/<project>/.a0proj/plugins/_commands/commands/`
- Global fallback: `usr/plugins/_commands/commands/`

If the user does not specify a scope, prefer the active chat scope when it is clear. Otherwise use the global scope.

## File Rules

- Config file format: `<slug>.command.yaml`
- Slash command name should be lowercase and hyphenated, for example `explain-code`
- For text commands, keep the `.txt` template concise and directly reusable
- For script commands, implement `run(payload)` in the `.py` file
- If the command expects trailing input, use `{raw}`, `{args.positional.0}`, or `{args.flags.some_flag}`

Use the bundled templates in `template.command.yaml` and `template.command.txt` when creating a new text command from scratch.

## Editing Workflow

1. Determine scope and final slash command name.
2. Check whether a command file already exists in that scope.
3. If it exists, load the file first and preserve unknown frontmatter keys.
4. Update YAML config and template/script content.
5. Save the file in the correct scope folder.
6. Report:
   - the saved config path
   - the saved content path
   - the slash command name in `/name` form

## Output Contract

After saving, explicitly state the final file path and the exact slash command invocation, for example:

- `Saved config: /a0/usr/plugins/_commands/commands/explain-code.command.yaml`
- `Saved content: /a0/usr/plugins/_commands/commands/explain-code.txt`
- `Invoke with: /explain-code`

