Skip to content

mdm skills init

Scaffold a new skill in the current directory.

Usage

mdm skills init [name]

Creates a SKILL.md file with the required frontmatter and a starter template. If a name is provided, the file is created inside a new <name>/ subdirectory. Without a name, SKILL.md is created in the current directory using the directory name as the skill name.

Generated file

---
name: my-skill
description: A brief description of what this skill does
# license: MIT
# compatibility: "Node.js >=20, React ^18"
---

# my-skill

Instructions for the agent to follow when this skill is activated.

## When to use

Describe when this skill should be used.

## Instructions

1. First step
2. Second step
3. Additional steps as needed

Frontmatter fields

mdm follows the Agent Skills open standard. The fields below are the standard-defined fields. See the Claude Code skills docs for Claude Code-specific extensions (e.g. allowed-tools, disable-model-invocation, model).

Field Required Description
name Yes Skill identifier used as the /skill-name slash command. Lowercase letters, numbers, and hyphens only (max 64 characters). Must match the parent directory name.
description Yes What the skill does and when to use it. Max 1024 characters. Claude uses this to decide when to load the skill automatically — put the key use case first.
license No License name (e.g. MIT, Apache-2.0) or a reference to a bundled LICENSE file.
compatibility No Plain-text description of environment requirements (max 500 characters). e.g. "Node.js >=20, React ^18". mdm displays this in mdm skills list. Not enforced — informational only.
metadata No Key-value pairs for custom properties (e.g. internal: true to hide from non-internal installs).

Examples

# Create SKILL.md in the current directory
mdm skills init

# Create my-skill/SKILL.md
mdm skills init my-skill

Publishing and version tagging

Once you have written your skill:

  1. Push the directory to a public GitHub repository.
  2. Share it with mdm skills add <owner>/<repo>.
  3. Optionally submit to the skills.sh registry so others can find it with mdm skills find.

A single repository can contain multiple skills — each in its own subdirectory with its own SKILL.md.

Version tagging

Tag your repository with a semver tag (e.g. v1.0.0) so users can pin to a specific version and receive automatic update notifications:

git tag v1.0.0
git push origin v1.0.0

Users install pinned versions with:

mdm skills add owner/repo#v1.0.0

When a newer tag is published, mdm skills update detects the change and offers to upgrade.

Declaring compatibility

Use the compatibility field to document which runtimes or libraries your skill is designed for:

---
name: my-react-skill
description: React component patterns for this project
license: MIT
compatibility: "Node.js >=20, React ^18, TypeScript >=5.0"
---

This is informational — mdm displays it in mdm skills list so developers know what environment the skill targets. It is not enforced or validated.