Pack Commands
Custom slash commands defined by packs.
What Are Pack Commands
Packs can define their own slash commands via the commands/ directory. These commands are only registered when the pack is loaded. They appear in /help alongside builtin commands.
How Commands Work
A pack command is a markdown file in commands/ that defines:
- Name -- the slash command identifier (e.g.,
/fine-tune) - Description -- what the command does
- Task -- the directive injected into the agent's
currentTaskwhen the command runs - Confirmation -- whether the command requires user approval before execution
Command Files
---
name: fine-tune
description: Export knowledge graph for fine-tuning dataset creation
requiresConfirmation: true
---
Export the knowledge graph as a structured dataset suitable for
fine-tuning. Include:
1. Readiness check -- verify the graph has enough data
2. Persona selection -- which perspective to export from
3. Format selection -- JSONL, CSV, or markdown
4. Export to the current directory
How They Differ from Builtin Commands
| Aspect | Builtin Commands | Pack Commands |
|---|---|---|
| Availability | Always present | Only when pack is loaded |
| Implementation | TypeScript code in src/builtins/ | Markdown in commands/ |
| Scope | Core operations (session, model, memory) | Domain-specific workflows |
| Confirmation | Per-command (hardcoded) | Via requiresConfirmation frontmatter |
Current Pack Commands
Starter Pack
| Command | Description |
|---|---|
/curation | Generate session summary and export options |
Distillery Pack (Post-MVP)
| Command | Description |
|---|---|
/fine-tune | Export knowledge graph for fine-tuning dataset creation |
Creating a Pack Command
- Create a markdown file in
commands/(e.g.,commands/summarize.md) - Add frontmatter with
name,description, and optionallyrequiresConfirmation - Write the task instructions in the body
- Test with
wmind --pack ./my-packand run/helpto see your command
When the user runs your command, the task instructions are injected into the agent's system prompt via currentTask, and the agent executes the workflow using its available tools.