Directory Layout
npx codemod workflow run -w ./my-workflow/
.
You can combine types in a single package. The
scripts/
and rules/
folders are conventional, not required—use any paths and reference them from workflow.yaml
.Workflow Package & Loading Workflows
Workflow Package & Loading Workflows
A workflow package is a directory containing your
workflow.yaml
and any scripts, rules, or assets referenced by your workflow.-
When you run
the directory is used as the root for all relative paths.
-
You can also run a workflow directly from a file:
Workflow File
workflow.yaml
See Building workflows for a deep dive into nodes, steps, params, strategy, and examples.
codemod.yaml fields
These are the fields you define when scaffolding a new codemod (based on the actual CLI template and prompts):Codemod workflow schema version.
Codemod package name (unique within scope).Example:
-
remove-console-logs
- Optionally, you can add organization/project scopes:
@scope/remove-console-logs
.
Semantic version of the package.
Brief description of what the codemod does.
Author name and email, e.g.,
Jane Doe <jane@example.com>
.License identifier (SPDX), e.g.,
MIT
.Relative path to your workflow file.
Category for the codemod.
Languages targeted by this codemod (selected language during
codemod init
; editable later).Search keywords for discovery.Example:
keywords: ["transformation", "migration"]
Access controls who can run/use the codemod (once they can see it).
- public: Anyone can run the codemod.
- private: Only the owner can run the codemod.
- pro: Only Pro plan users can run the codemod.
Access applies on top of visibility. For example,
visibility: public
with access: pro
shows the package publicly, but only Pro users can run it.Visibility controls who can see the package in the Registry (search, listings, and UI).
- public: Everyone can see the package in the Registry.
- private: Only the owner can see the package.
- org: Members of the package’s organization scope can see the package.
- user: Visible only to the publishing user (user-scoped visibility).
During scaffolding, the CLI sets
public
/private
based on —private
. You can change to any supported value above when publishing.codemod.yaml