Skip to content
Development
Command

/setup

Validate the local Salesforce development environment โ€” scan required tools (SF CLI, Code Analyzer, Node, NPM, Git, MCP, Source Tracking) with ๐Ÿ”ด/๐ŸŸก/๐ŸŸข status and offer guided install/update.

From plugin
sf-skills
1.1k15 skills6 agents15 commands4 MCP
$ npx -y skills add forcedotcom/sf-skills --agent claude-code

Command definition

setup.md
description: Validate the local Salesforce development environment โ€” scan required tools (SF CLI, Code Analyzer, Node, NPM, Git, MCP, Source Tracking) with ๐Ÿ”ด/๐ŸŸก/๐ŸŸข status and offer guided install/update.
allowed-tools:
  - Bash
  - Read

Run the tool prerequisite scan and render an actionable status report.

Phase 1: Scan

${CLAUDE_PLUGIN_ROOT}/scripts/sf-context check-tools

The output is a JSON object with a `tools` array (plus a `diagnostic` block on any critical failure).

**The banner is painted for you โ€” do not reproduce it.** When `check-tools` runs, the plugin paints the framed **"Ready to build on Salesforce?"** banner deterministically on the visible channel (one status row per tool, the footer verdict, and the wayfinding footer), exactly like the SessionStart banner. Read the JSON for your own understanding, but do **NOT** reproduce, redraw, or re-render the banner โ€” add only a short read of what it means for the user, then go to Phase 2.

**Only if you do not see the banner painted** (an older Claude Code build, or a paint fallback) render it yourself from the JSON, using the layout defined in the `platform-environment-validate` skill as the single source of truth. **Read `${CLAUDE_PLUGIN_ROOT}/skills/platform-environment-validate/SKILL.md` (Phase 1)** for the canonical frame, status-dot definitions, fixed row order, footer verdict, and wayfinding footer. In brief: one framed block, one row per tool with a ๐Ÿ”ด/๐ŸŸก/๐ŸŸข/โ„น๏ธ status dot in a fixed order, and a footer verdict โ€” ` โœ“ toolchain ready` when there are no ๐Ÿ”ด/๐ŸŸก rows, or ` โš  <N> need attention ยท <M> ready` otherwise โ€” then the "You don't memorize commands here." wayfinding block ending in a context-aware `Next: <action> โ†’ "<phrase>"` line. A setup is "all green" when there are no ๐Ÿ”ด or ๐ŸŸก rows; โ„น๏ธ rows never count against it.

**Deterministic results โ€” do NOT override a failure.** The JSON report is the authoritative result. If a tool reports ๐Ÿ”ด/๐ŸŸก, render it as-is; never re-run the check a different way and present the result as ๐ŸŸข. When the report includes a `diagnostic` block (attached on any critical failure), surface it โ€” it carries platform, active shell, working directory, plugin root, and the resolved executable paths, and is secret-free by design.

Note: the Code Analyzer plugin is a JIT ("just-in-time") plugin โ€” if it is registered but not yet physically installed, `check-tools` reports it ๐ŸŸข with a note that it auto-installs on first `sf code-analyzer` run. That is expected and not a problem.

Optional Headless 360 recommendation

Read the separate `Salesforce MCP (headless-360)` row. Recommend enabling H360 for better answers about live Setup settings and org-specific caps. Distinguish local opt-in from org activation and endpoint health: disabled/unknown opt-in is not proof that the org server is inactive. If an enabled probe reports inactive: in the org's Setup Quick Find, search **MCP Servers**, select **MCP Servers** under **API Catalog**, and toggle **Headless360** on. Allow up to two minutes, then rerun status. Never activate it automatically. See the [activation guide](https://developer.salesforce.com/docs/platform/hosted-mcp-servers/guide/activate-mcp-servers.html).

For Claude Code, direct the user to the plugin option. For Codex CLI/desktop, use the H360 integration skill's saved local preference and start a new session; no shell export is required. Endpoint reachability does not prove the host exposes the tools. H360 remains optional; its warnings do not block scaffolding or other work.

Optional Metadata Grounding

Read the separate `Salesforce MCP (metadata-grounding)` row. Grounding finds metadata by meaning, and it needs Salesforce Catalog in the org. Turning on Catalog needs a Data Cloud license; an admin turns it on through Feature Manager in Data Cloud Setup. If the row warns that it is not connected, explain the steps: once Catalog is on, search **MCP Servers** in the org's Setup Quick Find and activate **metadata-grounding**, then rerun status. The same warning also covers a network or VPN problem. Never activate it automatically, and offer no install command, because nothing local fixes it. Grounding stays optional: its warnings do not block scaffolding, and the grounding skills fall back to name matching without it.

Phase 2: Install / Update

**If all green:** confirm setup is complete โ€” the user is ready to develop.

**If any ๐Ÿ”ด/๐ŸŸก items exist:** offer to help. For each item the user wants to fix, show the correct install/update command for their OS and ask them to confirm before running it โ€” do **not** run install commands automatically.

For the full guided install/update flow (per-tool commands by OS, PATH-restart guidance, source-tracking enablement), see the `platform-environment-validate` skill.

Notes

  • After installing a tool that modifies PATH (Node.js, SF CLI), the user may need to restart Claude Code for the change to take effect.
  • For org authentication issues (expired session, wrong org), run `/salesforce-development:login`.
  • For a quick org/project banner rather than a prerequisite scan, run `/salesforce-development:status`.
Read more
@forcedotcom
Ships withsf-skills

This repository provides Salesforce agent skills, plugins, and sample apps for building applications.

1.1k200 skills6 agents4 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
1.1k
Star history of forcedotcom/sf-skills on GitHub, a chart by star-history.com

Other commands on sf-skills.

discover

discover

Command

Show ranked what's-next nudges across the six-stage journey, run on-demand org feature detection, or find an uninstalled pluginโ€ฆ

@forcedotcom@forcedotcomInstall Command
feedback

feedback

Command

Record a quick 1-5 satisfaction rating as local usage telemetry. Manual-only โ€” never dispatched by the model.

@forcedotcom@forcedotcomInstall Command
login

login

Command

Authenticate to a new Salesforce org via the browser (sf org login web). Optionally set the org as the project's default target.

@forcedotcom@forcedotcomInstall Command
logout

logout

Command

Sign out of one or all Salesforce orgs (sf org logout). Confirms before destructive action.

@forcedotcom@forcedotcomInstall Command
org

org

Command

Show just the connected Salesforce org details โ€” alias, edition, API version, instance URL, username.

@forcedotcom@forcedotcomInstall Command

More commands from other plugins.

build
Auto-invoked

build

Command

Implement tasks incrementally โ€” build, test, verify, commit. Add "auto" to run the whole plan in one approved pass.

@addyosmani@addyosmaniInstall Command