---
schema_version: "1"
id: 7429a27b35b7e3c81fe7de2f6080103a01a621a6b8e52d15a0ebd90e4a2561eb
title: Set Up Your Development Environment
collection: developer
version: current
locale: en-us
portal_url: https://docs.salesforce.com/developer/current/en-us/salesforce-functions/functions/guide/set-up.md
canonical_url: https://developer.salesforce.com/docs/platform/functions/guide/set-up.html
source_site: developer.salesforce.com
content_type: documentation
content_hash: 64dee95fb3eebc478d15d2ac3a5f985f5cd41be34355d52966eba4dd418e4f46
products:
  - Salesforce Functions
---
# Set Up Your Development Environment

To develop and run Salesforce Functions, install development tools. The tools vary depending on the language you use.

## Prerequisites

To work with Salesforce Functions, install these tools:

- [Node.js](https://nodejs.org/en/) 20 or higher to develop functions that use JavaScript or TypeScript. Use `npm` version 10.1.0 or higher.
- [OpenJDK](https://openjdk.java.net/) 8 or higher and [Apache Maven](https://maven.apache.org/) 3.6.3 or higher to develop functions that use Java.
- Git CLI or GUI client to track changes in your function code. See [Set up Git](https://docs.github.com/en/github/getting-started-with-github/set-up-git).
- (Optional) To push changes to GitHub, create a github.com account.
- (Optional) To save your function log output to a log drain, set up a log drain receiver or sign up with a service that can accept log drains. See [Function Logging](https://developer.salesforce.com/docs/platform/functions/guide/dev-guide/function-logging.md#log-drains).

## Install and Update Salesforce CLI

Salesforce CLI is a command-line interface that simplifies development and build automation when working with your Salesforce org and Salesforce Functions.

1. [Install Salesforce CLI](https://developer.salesforce.com/docs/atlas.en-us.sfdx_setup.meta/sfdx_setup/sfdx_setup_install_cli.htm).
2. Update to the latest version.

   ```sh
   sf update
   ```

   **note:** Run the update command even if you previously installed Salesforce CLI. Check the [Salesforce CLI Release Notes](https://github.com/forcedotcom/cli/blob/main/releasenotes/README.md) for the most recent CLI versions.

3. Confirm you're using Salesforce CLI `sf`(v2).

   ```sh
   sf --version
   ```

   Example output:

   ```sh
   @salesforce/cli/2.23.20 darwin-x64 node-v20.10.0
   ```

   If your output looks like `sfdx-cli/7.176.1 darwin-x64 node-v18.12.0`, then you're using a deprecated Salesforce CLI version (`sfdx` v(7)) and you must update to `sf` (v2). See [Move from sfdx (v7) to sf (v2)](https://developer.salesforce.com/docs/atlas.en-us.sfdx_setup.meta/sfdx_setup/sfdx_setup_move_to_sf_v2.htm).

4. Install the Salesforce Functions plugin.

   ```sh
   sf plugins install @salesforce/plugin-functions
   ```

5. Run `sf plugins --core` and view the list of all installed plug-ins. Make sure the Salesforce Functions plugin is installed.

   ```sh
   sf plugins --core
   ```

   The output looks like this:

   ```sh
   sf plugins --core
   @oclif/plugin-autocomplete 3.0.4 (core)
   @oclif/plugin-commands 3.1.0 (core)
   @oclif/plugin-help 6.0.9 (core)
   @oclif/plugin-not-found 3.0.7 (core)
   @oclif/plugin-plugins 4.1.14 (core)
   @oclif/plugin-search 1.0.10 (core)
   @oclif/plugin-update 4.1.7 (core)
   @oclif/plugin-version 2.0.11 (core)
   @oclif/plugin-warn-if-update-available 3.0.8 (core)
   @oclif/plugin-which 3.0.14 (core)
   @salesforce/cli 2.23.20 (core)
   apex 3.0.14 (core)
   auth 3.1.0 (core)
   command-reference 3.0.61
   data 3.0.13 (core)
   deploy-retrieve 2.2.12 (core)
   functions 1.22.11    <================= Functions plugin!
   info 3.0.13 (core)
   limits 3.1.0 (core)
   marketplace 1.0.15 (core)
   org 3.2.0 (core)
   packaging 2.0.1 (core)
   schema 3.1.0 (core)
   settings 2.0.14 (core)
   sobject 1.0.7 (core)
   source 3.0.10 (core)
   telemetry 3.1.8 (core)
   templates 56.0.8 (core)
   trust 3.2.5 (core)
   user 3.2.0 (core)

   Uninstalled JIT Plugins:
   community 3.0.10
   custom-metadata 3.0.12
   dev 2.1.3
   devops-center 1.2.5
   env 3.0.13
   signups 2.0.13
   @salesforce/sfdx-plugin-lwc-test 1.1.1
   @salesforce/sfdx-scanner 3.19.0
   ```

**tip:** If your versions are still outdated, then completely [uninstall the Salesforce CLI](https://developer.salesforce.com/docs/atlas.en-us.sfdx_setup.meta/sfdx_setup/sfdx_setup_uninstall.htm) and follow the previous instructions to reinstall.

## Use the Salesforce SDK for Functions

To develop a function using TypeScript or Java, you need the Salesforce SDK.

**note:** When you generate a function with `sf generate function`, these dependencies appear in the example code.

See [Salesforce SDK for Node.js Functions](https://developer.salesforce.com/docs/platform/functions/guide/nodesdk/NODE_README.md) for more on using Node.js.

See [Salesforce SDK for Java Functions](https://developer.salesforce.com/docs/platform/functions/guide/javasdk/JAVA_README.md) for more on using Java.

## Install Salesforce Extensions for Visual Studio Code

If you use Visual Studio Code, install [Salesforce Extensions for Visual Studio Code](https://developer.salesforce.com/tools/vscode).

To install, browse for the extension within Visual Studio Code, or go to [Salesforce Extensions for Visual Studio Code](https://developer.salesforce.com/tools/vscode) and click **Install the Salesforce Extensions**.
