Salesforce Package Builder
A VS Code extension that makes it easy to explore your Salesforce org's metadata and build package.xml files visually.

What It Does
Instead of manually writing package.xml files, this extension lets you:
- Browse all metadata in your Salesforce org
- Select components with simple checkboxes
- Filter out managed packages to focus on your custom work
- Automatically generate a valid
package.xml
- Retrieve selected components directly to your project
Key Features
Hide Managed Packages
Working on a Salesforce org with many installed packages? Enable "Hide Managed" to instantly filter out all managed package components. This shows only your org's custom metadata, making it much easier to find and select what you need.
Select All Components
Need to include everything? Click "Select All" to automatically load and select all components across every metadata type. The extension:
- Shows a confirmation before starting
- Loads metadata types in parallel for speed
- Displays progress as it works
- Respects the "Hide Managed" filter (only selects custom components when enabled)
- Can be cancelled at any time
Full Folder Support
Unlike other tools, this extension fully supports folder-based metadata:
| Metadata Type |
Folder Type |
| Report |
ReportFolder |
| Dashboard |
DashboardFolder |
| EmailTemplate |
EmailFolder |
| Document |
DocumentFolder |
Smart Folder Detection: When you select a Report or Dashboard, the extension automatically checks if its parent folder is included. If not, you'll see a warning banner with an "Add" button to include the missing folders with one click.

The extension detects that 5 ReportFolders are missing and offers to add them automatically.
Getting Started
Prerequisites
- Salesforce CLI - Make sure you have
sf CLI installed
- Authorized Org - Connect to your Salesforce org using
sf org login web
Opening the Extension
- Open your Salesforce project in VS Code
- Press
Cmd+Shift+P (Mac) or Ctrl+Shift+P (Windows)
- Type "SF Package Builder" and select "Choose Metadata Components"
How to Use
The Interface
The extension opens with two panels:
| Left Panel |
Right Panel |
| List of all metadata types (Apex Class, Custom Object, etc.) |
Components within the selected type |
Selecting Components
- Click a metadata type on the left to load its components
- Check individual components on the right to select them
- Use the checkbox next to a type to select/deselect all components in that type
Filtering Options
Hide Managed Packages
Enable the "Hide Managed" checkbox at the top to filter out all components from installed packages. When enabled:
- The component list shows only your org's custom metadata
- Component counts update to reflect filtered totals
- Select All will only select custom components, not managed ones
This is especially useful in orgs with many AppExchange packages installed.
Search
- Use the search box on the left to find metadata types
- Use the search box on the right to find specific components
Show Unselected Only
When reviewing your selections, enable the "Unselected" checkbox to filter out selected components and see only the ones you haven't added yet. This helps you quickly identify what's missing from your package.

Filter to see only the 92 unselected components, making it easy to review what's not yet in your package.xml.
Saving Your Selection
Once you've selected your components:
| Button |
What It Does |
| Update Package.xml |
Saves the selection to your project's manifest/package.xml file |
| Copy |
Copies the package.xml content to your clipboard |
| Retrieve |
Downloads the selected components from the org to your local project |
Refreshing Data
If you've made changes in your org (like creating a new Apex class):
- Click the refresh icon next to a metadata type to reload its components
- Click the refresh icon in the header to clear all cached data
Your current selections are preserved when refreshing.
Tips
Loading from Existing package.xml
The extension automatically reads your existing manifest/package.xml and pre-selects those components. This lets you continue from where you left off.
Refresh Without Losing Selections
Made changes in your org? Click the refresh icon to fetch the latest components. Your existing selections are preserved, so you won't lose track of what you've already chosen.
Keyboard Shortcuts
Press Cmd+Shift+P / Ctrl+Shift+P and type:
- "SF Package Builder: Choose Metadata Components" - Open the extension
- "SF Package Builder: Clear Metadata Cache" - Force refresh all data
- "SF Package Builder: Set API Version" - Change the Salesforce API version
Settings
Access via VS Code Settings (Cmd+, / Ctrl+,) and search for "SF Package Builder":
| Setting |
Description |
| Cache Duration |
How long to keep metadata cached (default: 60 minutes) |
| Parallel Fetch Limit |
Number of simultaneous requests (default: 5) |
| Exclude Namespaces |
Namespaces to always hide |
| Exclude Metadata Types |
Types to exclude from the list |
Troubleshooting
"No org found" Error
Make sure you've authorized a Salesforce org:
sf org login web
Components Not Loading
- Check your internet connection
- Try clicking the refresh button
- Clear the cache using the command palette
Extension Not Appearing
- Ensure you have a Salesforce project open (with
sfdx-project.json)
- Restart VS Code
Requirements
- VS Code 1.85.0 or higher
- Salesforce CLI (
sf) installed
- An authorized Salesforce org
Author
Milanjeet Singh
License
MIT