sf-metaexplorer
v0.2.2
Published
Interactive Salesforce CLI plugin to browse, compare, retrieve, and deploy metadata
Maintainers
Readme
sf-metaexplorer
sf-metaexplorer is a Salesforce CLI plugin with an interactive terminal UI to inspect metadata, compare local vs org state, and execute retrieve/deploy actions without manually composing long commands.
Why use it
- Navigate metadata in a two-panel interface (types and components)
- See component status at a glance (local-only, remote-only, synced)
- Select multiple components and run retrieve/deploy in bulk
- Switch orgs from inside the UI
- Filter quickly with search and view only selected items
- Preload selection from one or more git commits
Screenshot
Requirements
- Node.js
>=18 - Salesforce CLI (
sf) installed and authenticated - A Salesforce DX project (recommended for local metadata comparison)
Installation
From npm:
sf plugins install sf-metaexplorerFrom source:
npm install
sf plugins link .Usage
Start the UI:
sf metadata explorerShort alias:
sf explorerUse a specific org:
sf metadata explorer --target-org myAliasPreload components changed in commits:
sf metadata explorer -p a1b2c3d -p d4e5f6aKeyboard shortcuts
| Key | Action | | ----------- | ---------------------------------- | | Tab / h / l | Switch active panel | | j / k | Move cursor | | Space | Toggle current selection | | a | Toggle all in current list | | n | Clear selection | | / | Search components | | v | Toggle selected-only view | | t | Manage subscribed metadata types | | g | Toggle object grouping | | o | Open org selector | | r | Retrieve selected components | | d | Deploy selected components | | s | Sync metadata | | c / Esc | Cancel in-progress retrieve/deploy | | ? | Open help modal | | q | Quit |
Supported metadata types (current)
- ApexClass, ApexTrigger, ApexComponent, ApexPage
- LightningComponentBundle, AuraDefinitionBundle
- CustomObject and object-related metadata (fields, validation rules, record types, layouts, and more)
- Flow, Profile, PermissionSet
- CustomLabels, EmailTemplate, StaticResource
Local state
The plugin stores local cache and UI preferences in:
.sf-metaexplorer/state.jsonThis file is local workspace state and should not be committed.
Development
npm install
npm run compile
npm run lint
npm testRun the command from source:
node --loader ts-node/esm ./bin/dev.js metadata:explorerVersioning
This project currently follows an early-stage 0.x release cycle:
0.1.xfor fixes and small improvements0.2.0+for new features or notable UX/behavior changes1.0.0when behavior is considered stable for wider adoption
Contributing
See CONTRIBUTING.md.
License
Apache-2.0
