Force Navigator Reloaded is a Chrome Extension for Salesforce Lightning that provides fast and efficient navigation within Salesforce environments. This extension implements a command palette interface that allows users to quickly search, navigate, and perform actions without leaving their keyboard. It is available directly from the Chrome Web Store.
- Command Palette: Access a powerful command interface with keyboard shortcut (
Ctrl+Shift+L
on Windows orCmd+Shift+P
on Mac), this can be configured in the chrome shortcut settings (chrome://extensions/shortcuts
) - Fast Navigation: Quickly search and navigate to Salesforce records, flows, list views, and setup pages
- SLDS Integration: Uses Salesforce Lightning Design System for a native look and feel
- Modern Architecture: Built with LWC OSS (Lightning Web Components) for composable UI
- Dynamic & Configurable Commands: Fetches and caches Salesforce setup menu items, SObjects, and Flows directly from your org. Edit the JSON settings to include or exclude specific sources and custom commands from the palette.
- Command-Controlled Palette Closing: Commands can keep the palette open after execution when appropriate
- Virtual Scrolling: Only visible commands are rendered, keeping performance high even with thousands of commands
- Usage-based Sorting: Frequently executed commands appear higher in search results
The command palette uses the uFuzzy library for efficient searching.
You can install the latest published version directly from the Chrome Web Store. Please note that updates are published manually, and due to the review process—which can take several days—the store version might occasionally lag behind the latest release.
- Download
force-navigator-reloaded.zip
from the GitHub Releases page - Extract the archive
- Open Chrome and navigate to
chrome://extensions
- Enable Developer mode in the top-right corner
- Click Load unpacked and select the extracted folder
- Navigate to any Salesforce Lightning page
- Press
Ctrl+Shift+L
(orCmd+Shift+P
on Mac) to toggle the command palette - Type commands or search terms to find what you need
- Press Enter to execute the selected command
- Press
Esc
or the same shortcut again to close the command palette - Open the extension popup from the toolbar icon for quick help and a link to Settings
- Use the Settings page to edit the JSON configuration, tailoring which command sources (Setup nodes, objects, flows, custom commands) appear in the palette
- *.force.com*
- *.salesforce-setup.com*
- *.builder.salesforce-experience.com*
Force Navigator Reloaded authorises to Salesforce via the OAuth 2.0 PKCE flow declared in src/manifest.json
.
- Two connected-app definitions live in
sf/force-app/main/default/connectedApps
:Force_Navigator_Reloaded_Prod.connectedApp-meta.xml
Force_Navigator_Reloaded_Dev.connectedApp-meta.xml
- Both apps were created and configured once in the author’s developer org.
They are bound to the stable extension IDs:- Production ID
iniflnopffblekndhplennjijdcfkeak
- Development ID
fjcokiadigpmkojdlhbkbhimkcmjokon
- Production ID
No. The connected app is needed only during the OAuth handshake; it is not deployed to, nor stored in, your Salesforce org. Simply install the extension and approve its access once—nothing else is required.
Even if the original developer org is deleted, Salesforce retains the connected-app metadata in its infrastructure. At that point the app becomes read-only. Any future changes (e.g. redirect URIs, scopes, secret rotation) would require the author to redeploy a fresh connected app and update the extension’s consumer key—end-users do not need to take action.
- Clone this repository
- Run
npm install
to install dependencies - Run
npm run dev
to build the extension in watch mode - Open Chrome and navigate to
chrome://extensions/
- Enable Developer mode and load the
dist
directory as an unpacked extension
- Background Script (
src/background
): Service worker that manages extension lifecycle, listens for keyboard commands, and handles cross-context communication - Content Script (
src/content_scripts
): Injects the LWC app into Salesforce pages and handles communication with the background script - LWC Components (
src/content_scripts/modules/x
): Lightning Web Components that provide the UI for the command palette - Popup (
src/popup
): Provides quick usage tips and links to settings and GitHub, with automatic light/dark theme styling - Options Page (
src/options
andsrc/options/modules
): Settings UI built with LWC - Shared Utilities (
src/shared
): Common modules for background and content scripts, including the Channel messaging wrapper and settings management
- Webpack + Babel: Builds and bundles the extension into
dist/
- LWC: Uses Lightning Web Components via lwc-webpack-plugin
- Code Quality: Prettier and ESLint configured with Salesforce LWC standards
- Git Hooks: Husky pre-commit hook runs formatting
- CI Build & Web Store Release: A GitHub Action builds
dist/
on each commit tomain
where the source files has changed, attaches a zipped archive to the latest GitHub release, and uploads the extension to the Chrome Web Store - Manifest Key Injection:
webpack
injects the extensionkey
and OAuth consumer key based on build mode. This keeps the extension ID stable for authentication.
npm run build
: Build the extension for productionnpm run dev
: Build with watch mode for developmentnpm run lint
: Run ESLint on source filesnpm run lint-fix
: Fix ESLint issues automaticallynpm run format
: Format code with Prettiernpm run bump
: Increment minor version and sync tosrc/manifest.json
Connected apps are configured for a specific extension ID. Same app is reused across any Salesforce org without actual deployment, even if the org where the app lived is deleted.
See backlog.md for planned features and development tasks.
Contributions are welcome! Please feel free to submit a Pull Request.
If you enjoy using Force Navigator Reloaded, please consider leaving a review on the Chrome Web Store. Your feedback helps the project grow.
This extension only runs locally in communication with your instance of Salesforce. No data is collected from any user, nor is extension activity tracked or reported to a third-party.
This extension is not intended to support the work of any individual or organization that is discriminatory or outright illegal.