{"id":44694708,"url":"https://github.com/salesforcecli/plugin-custom-metadata","last_synced_at":"2026-04-26T05:05:43.441Z","repository":{"id":65411677,"uuid":"263692978","full_name":"salesforcecli/plugin-custom-metadata","owner":"salesforcecli","description":"SFDX plugin for working with Custom Metadata Types and their records.","archived":false,"fork":false,"pushed_at":"2026-04-19T03:55:01.000Z","size":7356,"stargazers_count":2,"open_issues_count":2,"forks_count":0,"subscribers_count":4,"default_branch":"main","last_synced_at":"2026-04-19T05:31:31.475Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/salesforcecli.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":"CODEOWNERS","security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2020-05-13T17:03:58.000Z","updated_at":"2026-04-19T03:53:31.000Z","dependencies_parsed_at":"2026-04-01T23:05:19.104Z","dependency_job_id":null,"html_url":"https://github.com/salesforcecli/plugin-custom-metadata","commit_stats":{"total_commits":106,"total_committers":7,"mean_commits":"15.142857142857142","dds":0.4339622641509434,"last_synced_commit":"7749f4469a0cae197c286d17609f5dcc3451c0cf"},"previous_names":[],"tags_count":221,"template":false,"template_full_name":null,"purl":"pkg:github/salesforcecli/plugin-custom-metadata","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salesforcecli%2Fplugin-custom-metadata","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salesforcecli%2Fplugin-custom-metadata/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salesforcecli%2Fplugin-custom-metadata/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salesforcecli%2Fplugin-custom-metadata/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/salesforcecli","download_url":"https://codeload.github.com/salesforcecli/plugin-custom-metadata/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/salesforcecli%2Fplugin-custom-metadata/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32285283,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T18:29:39.964Z","status":"online","status_checked_at":"2026-04-26T02:00:05.962Z","response_time":129,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2026-02-15T08:01:10.658Z","updated_at":"2026-04-26T05:05:43.429Z","avatar_url":"https://github.com/salesforcecli.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Custom Metadata Plugin\n\nTools for working with custom metadata types and their records.\n\n[![Version](https://img.shields.io/npm/v/@salesforce/plugin-custom-metadata.svg)](https://www.npmjs.com/package/@salesforce/plugin-custom-metadata)\n[![License](https://img.shields.io/npm/l/@salesforce/plugin-custom-metadata.svg)](https://github.com/salesforcecli/plugin-custom-metadata/blob/master/LICENSE.txt)\n\nThis plugin is bundled with the [Salesforce CLI](https://developer.salesforce.com/tools/salesforcecli). For more information on the CLI, read the [getting started guide](https://developer.salesforce.com/docs/atlas.en-us.sfdx_setup.meta/sfdx_setup/sfdx_setup_intro.htm).\n\nWe always recommend using the latest version of these commands bundled with the CLI, however, you can install a specific version or tag if needed.\n\n## Install\n\n```bash\nsfdx plugins install custom-metadata@x.y.z\n```\n\n## Issues\n\nPlease report any issues at \u003chttps://github.com/forcedotcom/cli/issues\u003e\n\n## Contributing\n\n1. Please read our [Code of Conduct](CODE_OF_CONDUCT.md)\n2. Create a new issue before starting your project so that we can keep track of\n   what you are trying to add/fix. That way, we can also offer suggestions or\n   let you know if there is already an effort in progress.\n3. Fork this repository.\n4. [Build the plugin locally](#build)\n5. Create a _topic_ branch in your fork. Note, this step is recommended but technically not required if contributing using a fork.\n6. Edit the code in your fork.\n7. Write appropriate tests for your changes. Try to achieve at least 95% code coverage on any new code. No pull request will be accepted without unit tests.\n8. Sign CLA (see [CLA](#cla) below).\n9. Send us a pull request when you are done. We'll review your code, suggest any needed changes, and merge it in.\n\n### CLA\n\nExternal contributors will be required to sign a Contributor's License\nAgreement. You can do so by going to \u003chttps://cla.salesforce.com/sign-cla\u003e.\n\n### Build\n\nTo build the plugin locally, make sure to have yarn installed and run the following commands:\n\n```bash\n# Clone the repository\ngit clone git@github.com:salesforcecli/plugin-custom-metadata\n\n# Install the dependencies and compile\nyarn install\nyarn build\n```\n\nTo use your plugin, run using the local `./bin/dev` or `./bin/dev.cmd` file.\n\n```bash\n# Run using local run file.\n./bin/dev force:cmdt\n```\n\nThere should be no differences when running via the Salesforce CLI or using the local run file. However, it can be useful to link the plugin to do some additional testing or run your commands from anywhere on your machine.\n\n```bash\n# Link your plugin to the sfdx cli\nsfdx plugins:link .\n# To verify\nsfdx plugins\n```\n\n# Commands\n\n\u003c!-- commands --\u003e\n\n- [`sf cmdt generate field`](#sf-cmdt-generate-field)\n- [`sf cmdt generate fromorg`](#sf-cmdt-generate-fromorg)\n- [`sf cmdt generate object`](#sf-cmdt-generate-object)\n- [`sf cmdt generate record`](#sf-cmdt-generate-record)\n- [`sf cmdt generate records`](#sf-cmdt-generate-records)\n\n## `sf cmdt generate field`\n\nGenerate a field for a custom metadata type based on the provided field type.\n\n```\nUSAGE\n  $ sf cmdt generate field -n \u003cvalue\u003e -f\n    Checkbox|Date|DateTime|Email|Number|Percent|Phone|Picklist|Text|TextArea|LongTextArea|Url [--json] [--flags-dir\n    \u003cvalue\u003e] [-p \u003cvalue\u003e...] [-s \u003cvalue\u003e] [-l \u003cvalue\u003e] [-d \u003cvalue\u003e]\n\nFLAGS\n  -d, --output-directory=\u003cvalue\u003e    Directory to store newly-created field definition files.\n  -f, --type=\u003coption\u003e               (required) Type of the field.\n                                    \u003coptions: Checkbox|Date|DateTime|Email|Number|Percent|Phone|Picklist|Text|TextArea|L\n                                    ongTextArea|Url\u003e\n  -l, --label=\u003cvalue\u003e               Label for the field.\n  -n, --name=\u003cvalue\u003e                (required) Unique name for the field.\n  -p, --picklist-values=\u003cvalue\u003e...  Picklist values; required for picklist fields.\n  -s, --decimal-places=\u003cvalue\u003e      Number of decimal places to use for number or percent fields.\n\nGLOBAL FLAGS\n  --flags-dir=\u003cvalue\u003e  Import flag values from a directory.\n  --json               Format output as json.\n\nDESCRIPTION\n  Generate a field for a custom metadata type based on the provided field type.\n\n  Similar to a custom object, a custom metadata type has a list of custom fields that represent aspects of the metadata.\n\n  This command creates a metadata file that describes the new custom metadata type field. By default, the file is\n  created in a \"fields\" directory in the current directory. Use the --output-directory to generate the file in the\n  directory that contains the custom metadata type metdata files, such as \"force-app/main/default/objects/MyCmdt__mdt\"\n  for the custom metadata type called MyCmdt.\n\nALIASES\n  $ sf force cmdt field create\n  $ sf cmdt field create\n\nEXAMPLES\n  Generate a metadata file for a custom checkbox field and add the file to the MyCmdt__mdt/fields directory:\n\n    $ sf cmdt generate field --name MyCheckboxField --type Checkbox --output-directory \\\n      force-app/main/default/objects/MyCmdt__mdt\n\n  Generate a metadata file for a custom picklist field and add a few values:\n\n    $ sf cmdt generate field --name MyPicklistField --type Picklist --picklist-values A --picklist-values B \\\n      --picklist-values C --output-directory force-app/main/default/objects/MyCmdt__mdt\n\n  Generate a metadata file for a custom number field and specify 2 decimal places:\n\n    $ sf cmdt generate field --name MyNumberField --type Number --decimal-places 2 --output-directory \\\n      force-app/main/default/objects/MyCmdt__mdt\n\nFLAG DESCRIPTIONS\n  -d, --output-directory=\u003cvalue\u003e  Directory to store newly-created field definition files.\n\n    New files are automatically created in the \"fields\" directory. The location can be an absolute path or relative to\n    the current working directory. The default is the current directory.\n\n  -f, --type=Checkbox|Date|DateTime|Email|Number|Percent|Phone|Picklist|Text|TextArea|LongTextArea|Url\n\n    Type of the field.\n\n    You can't use this command to create a custom metadata type field of type \"Metadata Relationship\". Use the\n    Salesforce Setup UI instead.\n\n  -s, --decimal-places=\u003cvalue\u003e  Number of decimal places to use for number or percent fields.\n\n    The value must be greater than or equal to zero. Default value is 0.\n```\n\n_See code: [src/commands/cmdt/generate/field.ts](https://github.com/salesforcecli/plugin-custom-metadata/blob/3.3.96/src/commands/cmdt/generate/field.ts)_\n\n## `sf cmdt generate fromorg`\n\nGenerate a custom metadata type and all its records from a Salesforce object.\n\n```\nUSAGE\n  $ sf cmdt generate fromorg -o \u003cvalue\u003e -n \u003cvalue\u003e -s \u003cvalue\u003e [--json] [--flags-dir \u003cvalue\u003e] [--api-version \u003cvalue\u003e] [-l\n    \u003cvalue\u003e] [-p \u003cvalue\u003e] [-v PackageProtected|Protected|Public] [-i] [-d \u003cvalue\u003e] [-r \u003cvalue\u003e]\n\nFLAGS\n  -d, --type-output-directory=\u003cvalue\u003e  [default: force-app/main/default/objects] Directory to store newly-created custom\n                                       metadata type files.\n  -i, --ignore-unsupported             Ignore unsupported field types.\n  -l, --label=\u003cvalue\u003e                  Label for the custom metadata type.\n  -n, --dev-name=\u003cvalue\u003e               (required) Name of the custom metadata type.\n  -o, --target-org=\u003cvalue\u003e             (required) Username or alias of the target org. Not required if the `target-org`\n                                       configuration variable is already set.\n  -p, --plural-label=\u003cvalue\u003e           Plural version of the label value; if blank, uses label.\n  -r, --records-output-dir=\u003cvalue\u003e     [default: force-app/main/default/customMetadata] Directory to store newly-created\n                                       custom metadata record files.\n  -s, --sobject=\u003cvalue\u003e                (required) API name of the source Salesforce object used to generate the custom\n                                       metadata type.\n  -v, --visibility=\u003coption\u003e            [default: Public] Who can see the custom metadata type.\n                                       \u003coptions: PackageProtected|Protected|Public\u003e\n      --api-version=\u003cvalue\u003e            Override the api version used for api requests made by this command\n\nGLOBAL FLAGS\n  --flags-dir=\u003cvalue\u003e  Import flag values from a directory.\n  --json               Format output as json.\n\nDESCRIPTION\n  Generate a custom metadata type and all its records from a Salesforce object.\n\n  Use this command to migrate existing custom objects or custom settings in an org to custom metadata types. If a field\n  of the Salesforce object is of an unsupported type, the field type is automatically converted to text. Run \"sf cmdt\n  generate field --help\" to see the list of supported cmdt field types, listed in the --type flag summary. Use the\n  --ignore-unsupported to ignore these fields.\n\n  This command creates the metadata files that describe the new custom metadata type and its fields in the\n  \"force-app/main/default/objects/TypeName__mdt\" directory by default, where \"TypeName\" is the value of the required\n  --dev-name flag. Use --type-output-directory to create them in a different directory.\n\nALIASES\n  $ sf force cmdt generate\n\nEXAMPLES\n  Generate a custom metadata type from a custom object called MySourceObject__c in your default org:\n\n    $ sf cmdt generate fromorg --dev-name MyCMDT --sobject MySourceObject__c\n\n  Generate a custom metadata type from a custom object in an org with alias my-scratch-org; ignore unsupported field\n  types instead of converting them to text:\n\n    $ sf cmdt generate fromorg --dev-name MyCMDT --sobject MySourceObject__c --ignore-unsupported --target-org \\\n      my-scratch-org\n\n  Generate a protected custom metadata type from a custom object:\n\n    $ sf cmdt generate fromorg --dev-name MyCMDT --sobject MySourceObject__c --visibility Protected\n\n  Generate a protected custom metadata type from a custom setting with a specific singular and plural label:\n\n    $ sf cmdt generate fromorg --dev-name MyCMDT --label \"My CMDT\" --plural-label \"My CMDTs\" --sobject \\\n      MySourceSetting__c --visibility Protected\n\n  Generate a custom metadata type and put the resulting metadata files in the specified directory:\n\n    $ sf cmdt generate fromorg --dev-name MyCMDT --sobject MySourceObject__c --type-output-directory \\\n      path/to/my/cmdt/directory\n\n  Generate a custom metadata type and put the resulting record metadata file(s) in the specified directory:\n\n    $ sf cmdt generate fromorg --dev-name MyCMDT --sobject MySourceObject__c --records-output-dir \\\n      path/to/my/cmdt/record/directory\n\nFLAG DESCRIPTIONS\n  -i, --ignore-unsupported  Ignore unsupported field types.\n\n    In this context, \"ignore\" means that the fields aren't created. The default behavior is to create fields of type\n    text and convert the field values to text.\n\n  -v, --visibility=PackageProtected|Protected|Public  Who can see the custom metadata type.\n\n    For more information on what each option means, see this topic in Salesforce Help:\n    https://help.salesforce.com/s/articleView?id=sf.custommetadatatypes_ui_create.htm\u0026type=5.\n```\n\n_See code: [src/commands/cmdt/generate/fromorg.ts](https://github.com/salesforcecli/plugin-custom-metadata/blob/3.3.96/src/commands/cmdt/generate/fromorg.ts)_\n\n## `sf cmdt generate object`\n\nGenerate a new custom metadata type in the current project.\n\n```\nUSAGE\n  $ sf cmdt generate object -n \u003cvalue\u003e [--json] [--flags-dir \u003cvalue\u003e] [-l \u003cvalue\u003e] [-p \u003cvalue\u003e] [-v\n    PackageProtected|Protected|Public] [-d \u003cvalue\u003e]\n\nFLAGS\n  -d, --output-directory=\u003cvalue\u003e  Directory to store the newly-created custom metadata type files\n  -l, --label=\u003cvalue\u003e             Label for the custom metadata type.\n  -n, --type-name=\u003cvalue\u003e         (required) Unique object name for the custom metadata type.\n  -p, --plural-label=\u003cvalue\u003e      Plural version of the label value; if blank, uses label.\n  -v, --visibility=\u003coption\u003e       [default: Public] Who can see the custom metadata type.\n                                  \u003coptions: PackageProtected|Protected|Public\u003e\n\nGLOBAL FLAGS\n  --flags-dir=\u003cvalue\u003e  Import flag values from a directory.\n  --json               Format output as json.\n\nDESCRIPTION\n  Generate a new custom metadata type in the current project.\n\n  This command creates a metadata file that describes the new custom metadata type. By default, the file is created in\n  the MyCustomType__mdt directory in the current directory, where MyCustomType is the value of the required --type-name\n  flag. Use the --output-directory to generate the file in a package directory with other custom metadata types, such as\n  \"force-app/main/default/objects\".\n\nALIASES\n  $ sf force cmdt create\n  $ sf cmdt create\n\nEXAMPLES\n  Generate a custom metadata type with developer name 'MyCustomType'; this name is also used as the label:\n\n    $ sf cmdt generate object --type-name MyCustomType\n\n  Generate a protected custom metadata type with a specific label:\n\n    $ sf cmdt generate object --type-name MyCustomType --label \"Custom Type\" --plural-label \"Custom Types\" \\\n      --visibility Protected\n\nFLAG DESCRIPTIONS\n  -d, --output-directory=\u003cvalue\u003e  Directory to store the newly-created custom metadata type files\n\n    The location can be an absolute path or relative to the current working directory. The default is the current\n    directory.\n\n  -n, --type-name=\u003cvalue\u003e  Unique object name for the custom metadata type.\n\n    The name can contain only underscores and alphanumeric characters, and must be unique in your org. It must begin\n    with a letter, not include spaces, not end with an underscore, and not contain two consecutive underscores.\n\n  -v, --visibility=PackageProtected|Protected|Public  Who can see the custom metadata type.\n\n    For more information on what each option means, see this topic in Salesforce Help:\n    https://help.salesforce.com/s/articleView?id=sf.custommetadatatypes_ui_create.htm\u0026type=5.\n```\n\n_See code: [src/commands/cmdt/generate/object.ts](https://github.com/salesforcecli/plugin-custom-metadata/blob/3.3.96/src/commands/cmdt/generate/object.ts)_\n\n## `sf cmdt generate record`\n\nGenerate a new record for a given custom metadata type in the current project.\n\n```\nUSAGE\n  $ sf cmdt generate record -t \u003cvalue\u003e -n \u003cvalue\u003e [--json] [--flags-dir \u003cvalue\u003e] [-l \u003cvalue\u003e] [-p true|false] [-i \u003cvalue\u003e]\n    [-d \u003cvalue\u003e]\n\nFLAGS\n  -d, --output-directory=\u003cvalue\u003e  [default: force-app/main/default/customMetadata] Directory to store newly-created\n                                  custom metadata record files.\n  -i, --input-directory=\u003cvalue\u003e   [default: force-app/main/default/objects] Directory from which to get the custom\n                                  metadata type definition from.\n  -l, --label=\u003cvalue\u003e             Label for the new record.\n  -n, --record-name=\u003cvalue\u003e       (required) Name of the new record.\n  -p, --protected=\u003coption\u003e        [default: false] Protect the record when it's in a managed package.\n                                  \u003coptions: true|false\u003e\n  -t, --type-name=\u003cvalue\u003e         (required) API name of the custom metadata type to create a record for; must end in\n                                  \"__mdt\".\n\nGLOBAL FLAGS\n  --flags-dir=\u003cvalue\u003e  Import flag values from a directory.\n  --json               Format output as json.\n\nDESCRIPTION\n  Generate a new record for a given custom metadata type in the current project.\n\n  The custom metadata type must already exist in your project. You must specify a name for the new record. Use\n  name=value pairs to specify the values for the fields, such as MyTextField=\"some text here\" or MyNumberField=32.\n\nALIASES\n  $ sf force cmdt record create\n  $ sf cmdt record create\n\nEXAMPLES\n  Create a record metadata file for custom metadata type 'MyCMT' with specified values for two custom fields:\n\n    $ sf cmdt generate record --type-name MyCMT__mdt --record-name MyRecord My_Custom_Field_1=Foo \\\n      My_Custom_Field_2=Bar\n\n  Create a protected record metadata file for custom metadata type 'MyCMT' with a specific label and values specified\n  for two custom fields:\n\n    $ sf cmdt generate record --type-name MyCMT__mdt --record-name MyRecord --label \"My Record\" --protected true \\\n      My_Custom_Field_1=Foo My_Custom_Field_2=Bar\n\nFLAG DESCRIPTIONS\n  -p, --protected=true|false  Protect the record when it's in a managed package.\n\n    Protected records can only be accessed by code in the same managed package namespace.\n```\n\n_See code: [src/commands/cmdt/generate/record.ts](https://github.com/salesforcecli/plugin-custom-metadata/blob/3.3.96/src/commands/cmdt/generate/record.ts)_\n\n## `sf cmdt generate records`\n\nGenerate new custom metadata type records from a CSV file.\n\n```\nUSAGE\n  $ sf cmdt generate records -f \u003cvalue\u003e -t \u003cvalue\u003e [--json] [--flags-dir \u003cvalue\u003e] [-i \u003cvalue\u003e] [-d \u003cvalue\u003e] [-n \u003cvalue\u003e]\n\nFLAGS\n  -d, --output-directory=\u003cvalue\u003e  [default: force-app/main/default/customMetadata] Directory to store newly-created\n                                  custom metadata record files.\n  -f, --csv=\u003cvalue\u003e               (required) Pathname of the CSV file.\n  -i, --input-directory=\u003cvalue\u003e   [default: force-app/main/default/objects] Directory from which to get the custom\n                                  metadata type definition from.\n  -n, --name-column=\u003cvalue\u003e       [default: Name] Column used to determine the name of the record.\n  -t, --type-name=\u003cvalue\u003e         (required) API name of the custom metadata type to create a record for.\n\nGLOBAL FLAGS\n  --flags-dir=\u003cvalue\u003e  Import flag values from a directory.\n  --json               Format output as json.\n\nDESCRIPTION\n  Generate new custom metadata type records from a CSV file.\n\n  The custom metadata type must already exist in your project. By default, the Name column is used to determine the\n  record name; use the --name-column flag to specify a different column.\n\nALIASES\n  $ sf force cmdt record insert\n  $ sf cmdt record insert\n\nEXAMPLES\n  Generate record metadata files from values in a CSV file for the custom metadata type MyCmdt. Use 'Name' as the\n  column that specifies the record name:\n\n    $ sf cmdt generate records --csv path/to/my.csv --type-name MyCmdt\n\n  Generate record metadata files from a CSV file in the directory different from the default, and use 'PrimaryKey' as\n  the column that specifies the record name:\n\n    $ sf cmdt generate records --csv path/to/my.csv --type-name MyCmdt --input-directory path/to/my/cmdt/directory \\\n      --name-column \"PrimaryKey\"\n\nFLAG DESCRIPTIONS\n  -t, --type-name=\u003cvalue\u003e  API name of the custom metadata type to create a record for.\n\n    The '__mdt' suffix is appended to the end of the name if it's omitted.\n```\n\n_See code: [src/commands/cmdt/generate/records.ts](https://github.com/salesforcecli/plugin-custom-metadata/blob/3.3.96/src/commands/cmdt/generate/records.ts)_\n\n\u003c!-- commandsstop --\u003e\n\n\u003c!-- debugging-your-plugin --\u003e\n\n# Debugging your plugin\n\nWe recommend using the Visual Studio Code (VS Code) IDE for your plugin development. Included in the `.vscode` directory of this plugin is a `launch.json` config file, which allows you to attach a debugger to the node process when running your commands.\n\nTo debug the `hello:org` command:\n\n1. Start the inspector\n\nIf you linked your plugin to the sfdx cli, call your command with the `dev-suspend` switch:\n\n```sh-session\nsfdx hello:org -u myOrg@example.com --dev-suspend\n```\n\nAlternatively, to call your command using the `bin/dev` script, set the `NODE_OPTIONS` environment variable to `--inspect-brk` when starting the debugger:\n\n```sh-session\nNODE_OPTIONS=--inspect-brk bin/dev hello:org -u myOrg@example.com\n```\n\n2. Set some breakpoints in your command code\n3. Click on the Debug icon in the Activity Bar on the side of VS Code to open up the Debug view.\n4. In the upper left hand corner of VS Code, verify that the \"Attach to Remote\" launch configuration has been chosen.\n5. Hit the green play button to the left of the \"Attach to Remote\" launch configuration window. The debugger should now be suspended on the first line of the program.\n6. Hit the green play button at the top middle of VS Code (this play button will be to the right of the play button that you clicked in step #5).\n   \u003cbr\u003e\u003cimg src=\".images/vscodeScreenshot.png\" width=\"480\" height=\"278\"\u003e\u003cbr\u003e\n   Congrats, you are debugging!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsalesforcecli%2Fplugin-custom-metadata","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsalesforcecli%2Fplugin-custom-metadata","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsalesforcecli%2Fplugin-custom-metadata/lists"}