# Introduction

Learn how to build custom Salesforce CLI plugins using by using Node.js and the Salesforce CLI plugin development framework based in [oclif](https://oclif.io) `@salesforce/plugin-dev`.

### Prerequisites

Please make sure you have the following before starting the workshop:

* Basic understanding of JavaScript, Node.js, and how to use a terminal
* Basic experience with the Salesforce CLI (`sfdx` or `sf`)
* [Node.js  (v18 LTS Recommended)](https://nodejs.org/en/)

  You can install it using:

  * [Official Binaries](https://nodejs.org/en/download/)
  * [nvm](https://github.com/nvm-sh/nvm)
  * [Volta](https://volta.sh/) (Recommended)
* Git/GitHub
* [Salesforce CLI Installed (latest version)](https://developer.salesforce.com/tools/sfdxcli)
  * If you already have it installed please run: `sfdx update`
* [Visual Studio Code with Salesforce Extensions (Recommended)](https://developer.salesforce.com/tools/vscode)
* A Salesforce Org ([Developer Edition is encouraged](https://developer.salesforce.com/signup))

### Learning Resources

* [\[BLOG\] Building a Salesforce CLI Plug-In](https://developer.salesforce.com/blogs/2023/01/building-a-salesforce-cli-plug-in)
* [\[BLOG\] Building a CLI Application with oclif ](https://developer.salesforce.com/blogs/2022/10/building-a-cli-application-with-oclif)
* [\[VIDEO\] codeLive: How to Build a Salesforce CLI Plug-In?](https://www.youtube.com/watch?v=Hi9kS8mcEVE)
* [\[VIDEO\] codeLive: How to Write NUTS Test Cases for Salesforce CLI Plug-In](https://www.youtube.com/watch?v=1KpPGBcEgyE)
* [\[VIDEO\] codeLive: Building a CLI Application with oclif](https://www.youtube.com/watch?v=ro87riVVDRg\&list=PLgIMQe2PKPSLhMNuyWD6SwD5wz2pPYhDi)
* [\[VIDEO\] Build a Salesforce Unified CLI Plugin that generates zen quotes | Mini Hacks Solved](https://www.youtube.com/watch?v=WGgJ_sEm2pw)
* [\[VIDEO\] Build a Salesforce CLI plugin to invoke static methods of an Apex class | Mini Hacks Solved](https://www.youtube.com/watch?v=53Wp3G_Wwwo)
* [\[VIDEO\] codeLive: Build and Design a CLI Plugin for working with Salesforce Bulk API v2.0](https://www.youtube.com/watch?v=d5umX2k9YT0)
* [\[VIDEO\] Exploring the sf CLI | Developer Quick Takes](https://www.youtube.com/watch?v=2EwZY5UX7fo)
* [\[PODCAST\] Salesforce CLI Plugins with Shane McLaughlin | Episode 71](https://www.youtube.com/watch?v=PEYPJEXvQbs)
* [\[DOCS\] Quick Introduction to Developing sf Plugins](https://github.com/salesforcecli/cli/wiki/Quick-Introduction-to-Developing-sf-Plugins)
* [\[CODE EXAMPLE\] rest-api plugin](https://github.com/julianduque/sf-rest-api-plugin)
