Skip to main content

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.

ArgumentRequiredDescription
taskYesShort description of the work. Feature, bug, story, or chore. Type is inferred.
typeNoOverride the inferred branch/ticket type. feature, bug, or chore.
priorityNoJira 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.

ArgumentRequiredDescription
typeNoBranch 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.

ArgumentRequiredDescription
ticket_idNoTicket identifier. Jira: DM-123. GitHub Issues: 123. Omit when ticketing is none.
descriptionNoShort 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.

ArgumentRequiredDescription
descriptionNoPR body markdown. If omitted, draft-pr-description is called automatically.
baseNoTarget branch. Defaults to branch_base from config; auto-detects production branch for hotfixes.
draftNoOpen 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.

ArgumentRequiredDescription
ticket_idNoAuto-detected from current branch name if omitted.
branchNoBranch 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.

ArgumentRequiredDescription
versionYesVersion number for this release, e.g. v0.3.0.
sinceNoOverride 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.

ArgumentRequiredDescription
versionYesVersion 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.

ArgumentRequiredDescription
versionYesVersion tag, e.g. v0.3.0. Must start with v followed by semver.
prereleaseNoMark 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.

ArgumentRequiredDescription
messageNoOverride the generated commit summary.
typeNoConventional Commits type. Inferred from branch prefix if omitted. Values: feat, fix, refactor, chore, docs, test, style, perf, ci, build.
scopeNoOptional scope in parentheses, e.g. auth, api, db.
bodyNoOptional multi-line explanation added after the summary line.
stage_allNoIf 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.

ArgumentRequiredDescription
ticket_idNoTicket identifier. Omit when ticketing is none.
typeNoBranch type prefix. feature or bug. Defaults to feature.
descriptionNoShort 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.

ArgumentRequiredDescription
baseNoBase branch to diff against. Defaults to branch_base from config.

status

/dmx/status

Shows a snapshot of in-progress tickets and open pull requests.

ArgumentRequiredDescription
repo_onlyNoShow 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.

ArgumentRequiredDescription
strategyNoIntegration 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.

ArgumentRequiredDescription
pathYesFile or module to document.
styleNodocstrings (default), readme, api, or all.
audienceNoIntended 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.

ArgumentRequiredDescription
pathNoFile or directory to review. Defaults to the current staged diff.
focusNoFocus 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.

ArgumentRequiredDescription
pathNoFile or directory to analyse. Defaults to the current staged diff.
severityNoMinimum 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.

ArgumentRequiredDescription
pathYesFile or module to write tests for.
styleNounit (default), integration, property, or all.
frameworkNoTest 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.

ArgumentRequiredDescription
loopYesName 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.