Overview
Maestro’s slash command system lets you create reusable prompts that are sent to AI agents with a simple/command syntax. Commands support template variables that are dynamically replaced at runtime, making them adaptable to different contexts.
Command Types
Built-in Maestro Commands
Handled internally by Maestro (not sent to the agent):| Command | Description |
|---|---|
/history | Generate synopsis and add to History panel |
/wizard | Start Auto Run planning wizard |
/skills | List Claude Code skills (Claude Code only) |
Custom AI Commands
User-defined commands that send prompts to the agent with variable substitution.Agent Native Commands
Provider-specific commands discovered automatically (e.g., Claude Code’s/compact, /cost).
See Slash Commands for complete documentation.
Creating a Custom Command
Open command editor
- Press
Cmd+,(Mac) orCtrl+,(Windows/Linux) to open Settings - Navigate to AI Commands tab
- Click Add Command
Configure the command
Fill in the command details:
- Trigger: The slash command (e.g.,
/deploy) - Description: What the command does
- Prompt: The text sent to the agent (supports template variables)
Template Variables
Variables are replaced with actual values when the command is executed:Agent & Session Variables
Conductor Profile Variable
{{CONDUCTOR_PROFILE}} inserts your “About Me” profile from Settings → General:
Command Argument Patterns
Explicit Placement with $ARGUMENTS
Control exactly where user input appears:/plan user authentication with OAuth2
Result:
Automatic Appending
If$ARGUMENTS is omitted, user input is appended:
/commit fix login bug
Result:
Real-World Command Examples
Daily Standup
Code Review Request
/review Focus on the authentication module
Documentation Generator
Deployment Checklist
Context-Aware Commit
Auto Run Integration
Commands can reference Auto Run context:Spec-Kit and OpenSpec Commands
Maestro bundles structured workflow commands:Spec-Kit Commands
From GitHub’s spec-kit:src/prompts/speckit/ and are editable.
OpenSpec Commands
From Fission’s OpenSpec:src/prompts/openspec/.
Spec-Kit and OpenSpec commands are system commands and cannot be edited or deleted through the UI. Modify the source
.md files to customize them.Agent Native Command Discovery
Claude Code native commands are discovered automatically:- When a Claude Code agent starts, Maestro spawns it with
/help - The
system/initmessage contains all available slash commands - Commands appear in autocomplete with “Claude Code command” label
Command Management
Editing Commands
- Open Settings → AI Commands
- Click the command to edit
- Modify trigger, description, or prompt
- Click Save
Deleting Commands
- Open Settings → AI Commands
- Click the command
- Click Delete
- Confirm deletion
Exporting/Importing Commands
Commands are stored in Maestro settings (settings.json). To share commands:
- Export settings via Settings → General → Storage Location
- Share the settings file with team members
- Or manually copy the
customCommandsarray from settings JSON
Best Practices
Use clear, action-oriented triggers
Use clear, action-oriented triggers
/deploy, /review, /test are better than /d, /r, /t. Prioritize clarity over brevity.Include context in prompts
Include context in prompts
Always provide context like project path, branch, date. The more context, the better the AI’s response.
Leverage template variables
Leverage template variables
Use
{{GIT_BRANCH}}, {{DATE}}, {{AGENT_PATH}} to make commands reusable across projects.Test with and without arguments
Test with and without arguments
If using
$ARGUMENTS, test both with and without user input to ensure sensible defaults.Document complex commands
Document complex commands
Add detailed descriptions so team members understand what each command does.
Group related commands with prefixes
Group related commands with prefixes
Troubleshooting
Command doesn’t appear in autocomplete Ensure:- Trigger starts with
/ - No duplicate triggers exist
- Settings were saved
- Agent is active (autocomplete only works in active tabs)
- Variable names match exactly (case-sensitive)
- Double curly braces are used:
{{VARIABLE}}not{VARIABLE} - Variable is supported (see template variables list)
$ARGUMENTSis uppercase (not$arguments)- If omitted, arguments are automatically appended
Related Documentation
- Slash Commands - Complete slash command reference
- Spec-Kit Commands - Spec-Kit workflow guide
- OpenSpec Commands - OpenSpec workflow guide
- Configuration - Settings management