Command Reference
dmx exposes its workflow as slash commands in your IDE. Every command is a skill: a Markdown file with frontmatter that defines its name, description, and arguments.
Commands are invoked as /dmx/{name} in any IDE connected to dmx via MCP.
Passing arguments
Type the command by itself, then give the required value as plain text right after it — the agent reads it as context for the command. For example:
/dmx/create-ticket
Add rate limiting to the public inference endpoint.
For optional arguments, just mention the value in your message (e.g. "type it as a chore") and the agent will pass it through, or your IDE may prompt you to fill it in directly. The tables below list every argument's name, whether it's required, and what it does, regardless of how your IDE collects it.
Workflow commands
init
/dmx/init
One-time project setup. Walks through workflow mode and ticketing configuration, auto-detects tech stack and GitHub settings, writes .dmx/config.md, and scaffolds the memory bank. Safe to re-run. It updates config without overwriting memory bank files that already have content.
No arguments.
create-ticket
/dmx/create-ticket
Add rate limiting to the public inference endpoint.
Takes a short task description, reads project context from the memory bank, creates a ticket, creates a branch, checks it out, and scaffolds a spec.md pre-filled with project context. One command to go from idea to ready-to-implement.
| Argument | Required | Description |
|---|---|---|
task | Yes | Short description of the work. Feature, bug, story, or chore. Type is inferred. |
type | No | Override the inferred branch/ticket type. feature, bug, or chore. |
priority | No | Jira priority: High, Medium, or Low. Defaults to Medium. Ignored for other providers. |
derive-ticket
/dmx/derive-ticket
Reads uncommitted changes in the working tree, infers what was built, creates a ticket retroactively, creates a properly named branch, stashes and re-applies changes if on a protected branch, and scaffolds a derived spec.md.
| Argument | Required | Description |
|---|---|---|
type | No | Branch type prefix. feature or bug. Defaults to feature. |
hotfix
/dmx/hotfix
Creates a hotfix branch from the production branch for a production incident, scaffolds the spec, and transitions the ticket to In Progress.
| Argument | Required | Description |
|---|---|---|
ticket_id | No | Ticket identifier. Jira: DM-123. GitHub Issues: 123. Omit when ticketing is none. |
description | No | Short kebab-case description for the branch name. Auto-generated from ticket title if omitted. |
plan
/dmx/plan
Reads the current branch's spec.md, validates all Q&A is complete, and generates a phased tasks.md. Opens the file in preview.
No arguments.
implement-next-phase
/dmx/implement-next-phase
Executes every task in the next unchecked phase of tasks.md, checking each off as it completes. Stops after the phase and waits for review. Never continues to the next phase automatically.
No arguments.
implement-next-task
/dmx/implement-next-task
Executes the single next unchecked task in tasks.md and stops. Use for fine-grained control when tasks are large or risky and you want to review each individually.
No arguments.
validate
/dmx/validate
Three-part quality gate before opening a PR: ticket completeness (spec, acceptance criteria, tasks), code quality (codebase patterns, style, naming), and security (vulnerabilities introduced by the diff). Produces a structured report with a READY FOR PR or NEEDS WORK verdict.
No arguments.
create-pr
/dmx/create-pr
Opens a GitHub pull request with the correct title format and drafted description, syncs the memory bank, then transitions the ticket to In Review.
| Argument | Required | Description |
|---|---|---|
description | No | PR body markdown. If omitted, draft-pr-description is called automatically. |
base | No | Target branch. Defaults to branch_base from config; auto-detects production branch for hotfixes. |
draft | No | Open the PR as a draft. Defaults to false. |
close-ticket
/dmx/close-ticket
After a PR is merged: transitions ticket to Done, adds PR link as a comment, deletes the branch locally and remotely, raises hotfix back-merge PRs if needed.
| Argument | Required | Description |
|---|---|---|
ticket_id | No | Auto-detected from current branch name if omitted. |
branch | No | Branch to close out. Defaults to current branch. |
draft-release-note
/dmx/draft-release-note
v0.3.0
Generates structured release notes by diffing merged PRs and commits between the last published release and current HEAD. Enriches entries with ticket data.
| Argument | Required | Description |
|---|---|---|
version | Yes | Version number for this release, e.g. v0.3.0. |
since | No | Override the baseline tag. Defaults to the most recent git tag. |
release-merge
/dmx/release-merge
v0.3.0
Opens a PR from the integration branch to the production branch as the formal release gate. Reads release notes from .dmx/releases/{version}.md if already drafted.
| Argument | Required | Description |
|---|---|---|
version | Yes | Version number, e.g. v0.3.0. |
create-release
/dmx/create-release
v0.3.0
Tags the production branch and publishes a GitHub release. Run only after the release-merge PR has been merged.
| Argument | Required | Description |
|---|---|---|
version | Yes | Version tag, e.g. v0.3.0. Must start with v followed by semver. |
prerelease | No | Mark as pre-release on GitHub. Defaults to false. |
Utility commands
commit
/dmx/commit
Stages changes, refreshes the memory bank with light progress updates, and creates a Conventional Commits formatted message referencing the current ticket. Never auto-pushes.
| Argument | Required | Description |
|---|---|---|
message | No | Override the generated commit summary. |
type | No | Conventional Commits type. Inferred from branch prefix if omitted. Values: feat, fix, refactor, chore, docs, test, style, perf, ci, build. |
scope | No | Optional scope in parentheses, e.g. auth, api, db. |
body | No | Optional multi-line explanation added after the summary line. |
stage_all | No | If true (default), runs git add . before committing. Set to false to commit only already-staged files. |
create-branch
/dmx/create-branch
Creates a properly named branch, scaffolds the ticket spec in the memory bank, and transitions the ticket to In Progress.
| Argument | Required | Description |
|---|---|---|
ticket_id | No | Ticket identifier. Omit when ticketing is none. |
type | No | Branch type prefix. feature or bug. Defaults to feature. |
description | No | Short kebab-case description for the branch name. Auto-generated from the ticket title if omitted. |
draft-pr-description
/dmx/draft-pr-description
Generates the PR body from the current branch's commits, diff, and ticket. Available standalone to preview before opening a PR. Called automatically by create-pr.
| Argument | Required | Description |
|---|---|---|
base | No | Base branch to diff against. Defaults to branch_base from config. |
status
/dmx/status
Shows a snapshot of in-progress tickets and open pull requests.
| Argument | Required | Description |
|---|---|---|
repo_only | No | Show only GitHub PR status, skip tickets. Defaults to false. |
sync-branch
/dmx/sync-branch
Rebases (or merges) the latest integration branch onto the current feature or bug branch. Pushes the result to origin.
| Argument | Required | Description |
|---|---|---|
strategy | No | Integration strategy. rebase (default) or merge. |
update-memory
/dmx/update-memory
Reviews spec.md, tasks.md, and the activeContext learning inbox; extracts durable project learnings; reconciles contradictions; syncs into core memory bank files. Use on demand. commit and create-pr handle automatic updates during normal workflow.
No arguments.
Specialist commands
docs
/dmx/docs
src/api/rate_limiter.py
Writes clear, human-first documentation: purpose, parameters, return values, and examples. Uses the idiomatic docstring style for the language.
| Argument | Required | Description |
|---|---|---|
path | Yes | File or module to document. |
style | No | docstrings (default), readme, api, or all. |
audience | No | Intended reader. developer (default), user, or both. |
review
/dmx/review
Reviews code with precision and respect. Focuses on clarity, correctness, maintainability, and functional design. Feedback is actionable, concise, and kind.
| Argument | Required | Description |
|---|---|---|
path | No | File or directory to review. Defaults to the current staged diff. |
focus | No | Focus area: correctness, maintainability, performance, naming, or all. Defaults to all. |
secure
/dmx/secure
Analyses code for vulnerabilities, unsafe patterns, and bad practices. Produces a risk-rated finding list with concrete remediation steps.
| Argument | Required | Description |
|---|---|---|
path | No | File or directory to analyse. Defaults to the current staged diff. |
severity | No | Minimum severity to report: critical, high, medium, low, or all. Defaults to all. |
test
/dmx/test
src/api/rate_limiter.py
Writes tests that enable change. Prioritises unit tests, covers edge cases and failure modes, uses property-based tests where useful.
| Argument | Required | Description |
|---|---|---|
path | Yes | File or module to write tests for. |
style | No | unit (default), integration, property, or all. |
framework | No | Test framework to use. Auto-detected from the project if omitted (e.g. pytest, jest, vitest). |
Loop runtime commands
run-loop
/dmx/run-loop
spec
Add rate limiting to the public inference endpoint.
Starts a dmx loop by name. Reads the loop config from .dmx/loops/{name}.yaml (or the bundled default), initialises job and task state, and runs the first skill. Any description given after the loop name is passed to that first skill as context — for the spec loop, this description becomes the task description that create-ticket uses to scaffold the ticket, branch, and spec.
| Argument | Required | Description |
|---|---|---|
loop | Yes | Name of the loop to run: spec, plan, dev, validate, or release. |
loop-continue
/dmx/loop-continue
Resumes a paused dmx loop after human review at a gate. Advances past the current pause point and runs the next skill (or the validators, if all skills are complete).
No arguments.