Salesforce Org BrowserBrowse metadata in an authenticated Salesforce org, inspect its contents, and retrieve components into the current Salesforce project. Requirements
A Salesforce DX project is typical when retrieving metadata, but it is not required to browse an org. Use Org Browser
Filter MetadataUse Filter by Type/Component in the Org Browser toolbar to search metadata types and component names. When a filter is active, the toolbar icon changes to Edit Filter (active).
Plain-text searches are case-insensitive substring searches. Use Local And Org VisibilityThe Org Browser toolbar also has Show Local Types and Show Org Types toggles. They control which metadata is eligible to appear before a text filter is applied.
The visibility toggles and the text filter combine as an intersection: a component must be visible under the selected local/org mode and match the text filter to appear. For example, with Show Local Types enabled and Show Org Types disabled, a component search returns only matching components that have local source files. The toggles are stored per org ID with the text and regular-expression filters. Changing the default org restores that org's saved local/org visibility mode. Search TimingOrg Browser applies a filter after you stop typing for 300 ms. Pressing Enter closes the filter input and applies its current value immediately. Incomplete Search ExpressionsStructured searches are not sent to the org until they are complete and valid. Examples that need correction include:
For these expressions, Org Browser shows an empty-tree message explaining that the expression must be completed or corrected before searching the org. Correct the expression and pause typing to resume search behavior. Search All Metadata TypesOrg Browser initially searches metadata that is already loaded for the active org. On the first nonempty, valid text filter entered during an IDE session, if metadata types remain unloaded, it shows a non-modal notification once:
The notification appears after a valid term remains unchanged for the debounce interval, including type-only filters such as When Org Browser starts with a restored component filter, it waits for this choice before beginning the filtered tree projection. A restored type-only filter also receives the offer when it is the first valid filter in the session. This prevents metadata loading from starting before you choose the search scope. Discovery ProgressWhile discovering all metadata types:
When Org Browser lazily loads metadata for the initial tree, an expanded node, or a regular tree refresh, the status bar uses the same The lightweight request count is not a completion total. Full filter discovery can show Discovery acquires every metadata branch that Org Browser supports for the active org, including nested folders and Custom Object fields. It does not change the active text filter or local/org visibility toggles. Each periodic tree refresh applies the current visibility mode and text filter to whatever metadata has been discovered so far. This means the tree can grow, shrink, or remain empty while discovery continues:
The discovery prompt is non-modal, so you can keep editing the filter or change visibility toggles while it is visible. The status item is removed and a final tree refresh occurs when discovery ends. A manual root refresh resets the completed-discovery marker for the active view, so a later component search can ask to discover again if inventory data is no longer available. Stored State
A new scratch org starts without a saved filter. Switching back to an earlier org restores that org's previous filter and can reuse persisted metadata inventories and catalog observations to warm the new session. Org Browser rebuilds its tree projections and refreshes metadata when required. Filters from one org are not applied to another org. Restoration LifecycleWhen The Target Org ChangesWhen you change the default org while VS Code remains open, Org Browser:
Metadata inventories and catalog observations already acquired for the newly active org can be reused from the current session. A type is fetched again only when the catalog needs fresh data or its cached data has been invalidated. When Org Browser InitializesAt extension activation, Org Browser waits until the default org has an org ID, then restores that org's filter state before displaying the tree. Existing workspaces with the earlier, workspace-wide filter settings are migrated once to the initial org's per-org filter state. Catalog snapshots are loaded lazily when Org Browser or another catalog consumer first needs metadata for the active org. The snapshot can restore persisted type inventories and catalog observations, but Org Browser still recreates its tree projection and obtains root metadata types for the new session. It may make additional org requests when data is missing, stale, or invalidated. InstallationThis extension is part of the Salesforce Extension Pack for Visual Studio Code. DevelopmentTestingThis extension includes Playwright tests for both web and desktop (Electron) environments with shared test logic. Quick Test CommandsRun from the repository root:
Environment SetupTests use
In CI, the org is created automatically. For local development, reuse an existing org to avoid creating a scratch org for each test run. Manual Testing
This opens VS Code web in Chrome with DevTools. For org credentials and settings injection, see docs/QA.md. Check the Explorer's Org Browser view and the browser console for errors. Test Structure
Desktop tests use a worker-scoped VS Code download and each test receives a fresh Electron instance with an isolated workspace. See docs/QA.md, docs/Build.md, and contributing/developing.md for troubleshooting. ContributingSee the contributing guide. License |