A Visual Studio Code extension that provides a user-friendly interface for managing and retrieving Salesforce metadata components. Create package.xml files and retrieve metadata with just a few clicks.
Features
- Visual Component Selection: Browse and select metadata components through an intuitive interface
- Automatic Package.xml Generation: Creates properly formatted package.xml files automatically
- Metadata Retrieval: Retrieve selected components directly from your Salesforce org
- Real-time Status Updates: Track retrieval status for each component
- Error Reporting: View detailed error information for failed retrievals
- Existing Package Support: Load and modify existing package.xml files
Prerequisites
- Visual Studio Code
- Salesforce CLI (sf) installed and configured
- Authenticated Salesforce org connection
Installation
- Download the
.vsix
file
- Open VS Code
- Press
Ctrl+Shift+P
and type "Extensions: Install from VSIX"
- Select the downloaded
.vsix
file
- Restart VS Code
Usage
Opening the Extension
Method 1: Command Palette
- Press
Ctrl+Shift+P
- Type "Salesforce: Open Metadata Manager"
- Press Enter
Method 2: Context Menu
- Right-click on any folder in the Explorer
- Select "Open Metadata Manager"
Selecting Components
- Choose Metadata Type: Select from the dropdown (e.g., Apex Class, Custom Object)
- Select Components: Choose specific components from the filtered list
- Review Selection: View selected components in the table below
Loading Indicators
- Progress Spinners: Visual indicators show when metadata types and components are loading
- No Components Message: Clear notification when no components are found for a selected metadata type
Retrieving Components
- Click the "Retrieve Components" button (top-right)
- Watch the progress indicator
- Check the Retrieval Status column for results:
- ✅ Success (green): Component retrieved successfully
- ❌ Failed (red): Component retrieval failed
- View error details in the Error Details section (if any failures occur)
Managing Components
- Remove Components: Click the 🗑️ icon next to any component
- Load Existing: Automatically loads components from existing
manifest/package.xml
- Package.xml Location: Generated files are saved to
manifest/package.xml
Screenshots
Main Interface - No Existing package.xml
The main interface showing up on page load when there is no existing package.xml
Loading Components
Loading of components for selected metadata type
Selected Components
Selected components for metadata retrieval
Failed Retrieval
sf project retrieve command failed
Succesful Retrieval (Partial Failure)
sf project retrieve command failed
Succesful Retrieval
sf project retrieve command successful
Newly Created Package.xml
Package.xml created with selected components
Main Interface - Loading Existing package.xml
The main interface showing up on page load when there is an existing package.xml
Interface Overview
Main Sections
- Metadata Type Selector: Choose the type of metadata to browse
- Component Selector: Pick specific components of the selected type
- Selected Components Table: Review your selections with columns:
- Component API Name
- Metadata Type
- Retrieval Status
- Remove Action
- Retrieve Button: Execute the retrieval process
- Error Details: Shows failed components with error messages
Status Indicators
- Loading States: Shows progress messages while fetching data
- Retrieval Status:
-
(default): Not yet retrieved
Success
(green): Successfully retrieved
Failed
(red): Retrieval failed
- Progress Icon: Spinning indicator during retrieval
Loading Indicators
- Metadata Type Loading Spinner: Spinning indicator appears in the metadata type input field while loading all metadata types
- Component Loading Spinner: Spinning indicator appears in the component input field while loading components for a selected metadata type
- Retrieval Progress Spinner: Spinning indicator appears during metadata retrieval process
File Structure
your-project/
├── manifest/
│ └── package.xml # Generated package file
└── force-app/
└── main/
└── default/ # Retrieved metadata components
The extension supports all metadata types available in your Salesforce org, including:
- Apex Classes
- Apex Triggers
- Custom Objects
- Flows
- Lightning Web Components
- Aura Components
- Profiles
- Permission Sets
- And many more...
Requirements
- Salesforce CLI: Must be installed and available in PATH
- Authenticated Org: Run
sf org login web
to authenticate
- Salesforce Project: Must be in a valid Salesforce DX project directory
Troubleshooting
Common Issues
"No workspace folder found"
- Ensure you have a folder open in VS Code
- Make sure it's a valid Salesforce DX project
"Failed to fetch metadata types"
- Check your Salesforce CLI authentication:
sf org display
- Verify internet connection
- Ensure you're in a Salesforce project directory
Components not loading
- Verify the metadata type exists in your org
- Check if you have proper permissions to access the metadata type
Retrieval failures
- Check the Error Details section for specific error messages
- Verify component names are correct
- Ensure you have retrieve permissions for the components
"No components retrieved" message
- This message appears when no components are found for a selected metadata type
- It could indicate that the metadata type is empty or you lack permissions to view its components
- Check your org permissions and verify the metadata type has components
Getting Help
- Check the Error Details section for specific error messages
- Verify your Salesforce CLI setup:
sf org display
- Ensure proper permissions in your Salesforce org
Version History
1.1.1
- Added progress spinners for metadata type and component loading
- Improved error messaging for "no components retrieved" scenarios
- Enhanced user feedback during loading processes
1.1.0
- Email templates, documents, and dashboards in personal folders will not be displayed
- Enhanced filtering for folder-based metadata types
1.0.2
- Added visual interface for metadata management
- Implemented real-time retrieval status tracking
- Added error reporting and details
- Support for existing package.xml files
License
MIT License - see LICENSE file for details
Author
Shabu Thomas
Email: ars.shabu@gmail.com
Note: This extension requires an active Salesforce CLI installation and authenticated org connection to function properly.