plugin-creator

Contributors

GitHub-linked commit authors for this SKILL.md at the saved revision. Co-authors and history before file renames are not included.

File history ↗

Create and scaffold plugin directories for Codex with a required `.codex-plugin/plugin.json`, optional plugin folders/files, valid manifest defaults, and personal-marketplace entries by default. Use when Codex needs to create a new personal plugin, add optional plugin structure, generate or update marketplace entries for plugin ordering and availability metadata, or update an existing local plugin during development with the CLI-driven cachebuster and reinstall flow.

codex-rs/skills/src/assets/samples/plugin-creator/SKILL.md

Download bundle ↓
main · 18d7ace11 bundle filesScanned 2026-09-14

scripts/identifier_validation.py

184 tokens · o200k_base · 784 bytes

Source excerpt starting at line 1.
"""Validate plugin and marketplace identifiers before using them in commands.""" import re  def validate_plugin_identifier(plugin_name: str) -> None:    if re.fullmatch(r"[A-Za-z0-9_-]+(?:\.[A-Za-z0-9_-]+)*", plugin_name) is None:        raise ValueError(            "Plugin name may only contain ASCII letters, digits, `.`, `_`, and `-`, "            "with dots separating non-empty name segments."        )  def validate_marketplace_name(marketplace_name: str) -> None:    if not marketplace_name:        raise ValueError("Marketplace name must include at least one letter or digit.")    if re.fullmatch(r"[A-Za-z0-9_-]+", marketplace_name) is None:        raise ValueError(            "Marketplace name may only contain ASCII letters, digits, `_`, and `-`."        )