Documentation

SF Spotlight Guide

Everything the extension can do, feature by feature — for Salesforce developers who want to debug Apex faster.

v1.10.0

What's New

A friendlier front door and faster ways in: a Home dashboard, a dependency finder, a strip-only universal search, a right-click menu for every feature, and an optional Salesforce-native look.

v1.10.0 — Home, universal search & right-click access

  • Home tab — a dashboard front door: org identity and environment, at-a-glance API & storage health, debug-session status, quick actions, and your recent items.
  • Where Used — a dependency finder. Enter a field (Object.Field), Apex class, flow or LWC and see everything that references it, grouped by type, via the Dependency API.
  • Minimal view (universal search) — an optional strip-only mode: one search box across Setup, objects, flows, users, custom shortcuts and your own tools, with results only as you type. Enable it in Settings.
  • Right-click menu — open any tab or tool straight from the extension's context menu, plus a "View record detail" item on record pages.
  • SLDS UI style — an optional skin that matches the Salesforce Lightning Design System, toggled in Settings.
  • Quicker open — a new ⌘/Alt+Space shortcut, an inline (Inspector-style) autocomplete in Data Export, and a quick-actions launcher on the Setup tab.

v1.9.0 — Sample data, Magic Fill & the API console

  • Sample Data Generator — pick any object and a record count, and the tool reads the schema and creates realistic, type-correct records (respecting field length, precision/scale, picklist values and required lookups), previews them (editable before insert), and inserts via the Composite API with a one-click undo. Sandbox & scratch orgs only — a confirmation is required before inserting anywhere else.
  • Magic Fill — adds an Auto Fill button to Lightning new-record modals that fills the fields for you (text, number, email, phone, url, checkbox, date, address and picklists), with an Undo. Toggle it and choose what it fills from Tools → Magic Fill; off by default.
  • API Activity console — a live, collapsible footer console showing every Salesforce API call the extension makes — queries (with the SOQL), Apex runs, REST calls and session lookups — plus per-type counts for the session. Fully transparent and ephemeral (cleared on refresh).
  • Lighter debug-session checks — the debug-session status is now checked on demand instead of polling every 30 seconds; flip on the Live toggle only when you want it to auto-refresh.

v1.8.0 — Component Inspector

  • One-key reveal — press Alt+Z (Option+Z on Mac) to outline every custom LWC on the page with its name.
  • Live source viewer — click a component to read its html / js / css / meta, pulled via the Tooling API, with one-click copy.
  • Edit & deploy — fix your own components inline, with production warnings, a required confirmation on live orgs, and post-deploy verification.
  • Org Limits tool — a new Tools-drawer view of every governor & org limit with usage bars, search, sort and a "near limit" filter.

v1.7.0 — Log Explorer & the Apex Log Analyzer

  • Log Explorer — your debug logs in a sortable table with Select-All, per-row open / copy / download, a live auto-refresh toggle, bulk delete, and a one-click Analyze button on every row.
  • Apex Log Analyzer — Analyze opens a full-screen breakdown with the log's size, duration and debug-level chips, across five tabs.
  • Timeline — a zoomable, pannable canvas flame chart with a top overview/minimap strip, in-bar labels, a time axis and rich hover tooltips (timings, DML/SOQL counts & rows vs governor limits). Click a bar to jump to the Call Tree.
  • Call Tree — the execution tree in Time Order, Aggregated or Bottom-Up, with tristate sortable columns, Expand/Collapse, and Details / Debug-Only / Type filters.
  • Analysis — a bottom-up aggregated tree grouping every method/operation by self-time, with Group by, Min/Max time and namespace header filters.
  • Database — every SOQL query (with selectivity, rows and time) and DML operation extracted into grouped tables.
  • Raw Log — read the unparsed log line-by-line with instant filtering, copy and download.

Built on the open-source, BSD-3-licensed apex-log-parser by Certinia. Earlier highlights (v1.4): open records by ID, the record field viewer with inline edit, and Spotlight dark mode.

Overview

SF Spotlight is a Chrome extension that lives inside your Salesforce org. It turns raw Apex debug logs into a structured, visual experience — an execution tree, a performance timeline, extracted SOQL, automated insights and governor-limit tracking — without copying logs into a separate tool.

It also speeds up everyday navigation with a Spotlight command palette and lets you start, stop and manage debug trace sessions for any user, all from a panel that slides in over your current page.

Everything runs locally in your browser using your existing, auto-detected Salesforce session. There is no separate login and no log data leaves your machine.

Installation

From the Chrome Web Store (recommended)

  • Open the Chrome Web Store listing and click Add to Chrome.
  • Pin the extension if you'd like quick access to the toolbar icon.
  • Navigate to any Salesforce, Lightning, or Visualforce page — the extension activates automatically.

From source (developer mode)

  • Clone the repo and run npm install then npm run build.
  • Open chrome://extensions, enable Developer mode, click Load unpacked, and select the dist/ folder.

Works in Chrome and Edge. Firefox support is available via temporary add-on loading; Safari is on the roadmap.

Getting Started

  • Log into your Salesforce org as you normally would.
  • Press Alt+S (Option+S on Mac) to slide the analyzer panel in from the side.
  • The footer shows Connected as <your name> once your session is detected.
  • Click Fetch Logs to load the Apex debug logs for the current session.
  • Click any log to open the Detail View and explore it across tabs.

If you don't see any logs, make sure a debug trace is active — you can start one directly from the Debug Session Control.

Home Dashboard

The Home tab is the panel's front door — a quick read on the org you're in and one-click routes into everything else.

  • Org identity — name, instance and a Sandbox / Scratch / Production badge, plus the logged-in user.
  • Health at a glance — gauges for API requests, data & file storage and async Apex, colour-coded as you approach the limit.
  • Debug status — whether a trace is active and how long is left.
  • Quick actions & recents — jump to Fetch Logs, Sample Data, Run Apex, Org Limits, and your recently opened records and tools.
Alt + T

Spotlight Search

Spotlight is a command palette for Salesforce. Press Alt+T (Option+T on Mac) anywhere and start typing to jump straight to a Setup destination — no digging through menus.

What you can jump to

Common Setup destinations are built in, including Setup Home, Custom Objects, Custom Fields, Users, Profiles, Permission Sets, API Limits, Organization Settings, Integrations / Connected Apps, and Custom Metadata Types. Results open in a new tab against your current org's instance URL.

How to use it

  • Type any part of a destination name or description to filter the list instantly.
  • Use / to move through results and Enter to open the highlighted one.
  • Press Esc or click the backdrop to dismiss.

Minimal / Universal Search

Prefer a keystroke and a single box? Turn on Minimal view in Settings and the panel becomes just a search strip — no tabs, nothing preloaded. Results appear only as you type.

One box, everything

A single query searches across Setup, objects, flows, users, your custom shortcuts and the extension's own tools — grouped by type. User results include the same Login / Incognito / detail actions as the Users tab, and pasting a record Id still surfaces the open-record options.

Getting back to the full view

A settings gear stays in the strip so you can toggle minimal view off at any time, and opening the panel in a new tab always shows the full tabbed experience.

Right-click Menu

Every tab and tool is one right-click away. Right-click the extension icon (or a Salesforce page) to open Spotlight straight to a tab or, under the Tools submenu, any tool. On a record page you also get a View record detail item that opens the field viewer for the current record.

Where Used

Before you change or delete something, find out what depends on it. Open Where Used from the Tools drawer, enter a custom field as Object.Field, or the API name of an Apex class, flow or LWC (or paste its record Id), and see everything that references it — grouped by type (Apex, flows, validation rules, layouts, and more) — using Salesforce's Dependency API.

Custom Shortcuts

Save your own Setup links and have them appear right inside Spotlight's Setup search. Perfect for the pages you open constantly, deep links Spotlight doesn't ship by default, or even external tools and dashboards.

Add a shortcut

  • Open Custom Shortcuts from the Tools drawer.
  • Enter a label and a URL — either a full URL (https://…) or a relative Setup path (/lightning/setup/Flows/home). Relative paths open in your current org.
  • Click Add shortcut. Edit or delete any shortcut later from the same panel.

Use them

In the Setup tab, start typing — matching custom shortcuts appear at the top of the results (marked 🔖 Custom Shortcut), above the built-in links. They can be pinned as favorites and show up in your Recents just like any other destination. Shortcuts are stored locally in your browser.

Open Records by ID

Paste a Salesforce record ID into Spotlight and it's recognised instantly. The extension validates the ID — 15-character IDs by format, 18-character IDs by recomputing their checksum — so actions only appear for a genuinely valid ID.

What you get

  • Open record — opens the record in Lightning in a new tab.
  • View all fields — opens the Record viewer (below) for that ID.
  • Open in Setup — shown for relevant objects, such as opening a User's detail page in Setup.

Common key prefixes (Account, Contact, User, and so on) are recognised to give you a friendly label, and unknown prefixes still open correctly.

Record Viewer & Inline Edit

The Record viewer is a wide panel that lists every field defined on the object. Open it from "View all fields" after pasting an ID, or press Alt+D (Option+D on Mac) while you're on any record page.

Every field, access-aware

  • Each field shows its label, API name, type and value.
  • Fields you don't have read access to are listed by name but greyed out and marked No access — so you see the complete object, not just what you can read.
  • Filter fields by label, API name or value, and toggle Hide empty to focus on populated fields.

Copy, edit and save

  • Copy any value to the clipboard with one click.
  • Edit updateable fields in place — a text box, checkbox or picklist depending on the field type. A Save button appears only once you change the value.
  • On save the single field is written back to Salesforce. If Salesforce rejects it (field-level security, a validation rule, a required field), the exact error is shown inline so you can correct it.

Reference (lookup) fields render as links you can follow to the related record.

Alt + Z

Component Inspector

See every Lightning Web Component on the page — then edit it without leaving Salesforce. Press Alt+Z (Option+Z on Mac) on any Salesforce page and every custom LWC lights up with a labeled border. It's an X-ray view of what's actually rendering, mapped straight to the components you own.

Reveal & read

  • One-key revealAlt+Z / Option+Z outlines every custom component with its tag name. Press again (or Esc) to exit.
  • Click to read the source — open any component's real html, js, css and js-meta.xml in a tabbed viewer, pulled live via the Salesforce Tooling API. Copy any file in a click.
  • Knows what's yours — managed-package and base components are clearly marked read-only; only your org's own components are editable.

Edit & deploy — with guardrails

  • Inline edit — switch a component you own into edit mode and make quick fixes right in the panel, with per-file change markers.
  • Production-safe — every save is confirmed. On a production org you get a red warning and must tick "I understand this edits production" before deploy; sandboxes are detected automatically.
  • Verified deploys — after saving, the extension re-reads the component from the org and confirms the change actually landed — "Deployed and verified," not just "request sent." Compile errors are surfaced inline so you can fix and retry.

Editing applies to your org's own (unmanaged / unlocked) Lightning Web Components. Salesforce enforces your permissions on every read and deploy.

Log Explorer & the Apex Log Analyzer

The Log Explorer tab lists the current user's Apex debug logs in a sortable table. Select logs with checkboxes, sort by any column, toggle Live to auto-refresh, and use the per-row actions to open, copy or download a log — or delete the selected ones in bulk. Every row has an Analyze button.

Clicking Analyze parses the log and opens a full-screen analyzer, with a header showing the log's size, total duration and the active debug-level chips. It's organised into five tabs:

Timeline

A canvas flame chart of the whole transaction. An overview strip across the top shows the entire log with a draggable viewport box; the main chart draws each code unit, method, SOQL and DML as a coloured, labelled bar by depth. Scroll to zoom, drag to pan, and hover for a tooltip with timings, DML/SOQL counts and rows against governor limits. Click a bar to jump to it in the Call Tree.

Call Tree

The execution hierarchy as an expandable tree. Switch between Time Order, Aggregated and Bottom-Up, sort any column (tristate), Expand/Collapse all, and filter with Details, Debug Only and a Type picker. Columns cover DML/SOQL counts, rows, exceptions thrown, and total & self time with percentages.

Analysis

A bottom-up aggregation that rolls every method and operation up by self-time, with each entry expandable to reveal its callers. Group by namespace or type, and narrow the list with Min/Max time and namespace header filters.

Database

Every SOQL query (with selectivity, row count, time taken and aggregations) and every DML operation (with row counts and timing) pulled into focused tables — the fastest way to spot a slow or non-selective query.

Raw Log

The complete, unparsed log line-by-line with instant line filtering, plus copy and download.

The analyzer is powered by the open-source, BSD-3-licensed apex-log-parser by Certinia.

Dashboard & Log Management

The dashboard is your home base. It shows summary metrics for the current session — total number of logs and total size — and lists every log with its status, operation, time and size.

Actions

  • Fetch Logs — pull the latest Apex debug logs for your session. A toast confirms how many records were loaded.
  • Explore — open any log in the Detail View for full analysis.
  • Delete All — clear every log record at once using the Salesforce Bulk API, keeping your debug log list tidy.
  • Copy / Download — from a log's Detail View, copy the body to your clipboard or download it for sharing and archiving.

The Detail View

Opening a log brings up the Detail View, which organizes the same log into five purpose-built tabs so you can look at it from whichever angle helps most:

  • Tree — the execution hierarchy (default).
  • Timeline — a duration-based view of events.
  • SOQL — every query extracted into one list.
  • Insights — automated findings and limit cards.
  • Complete — the full raw log with filtering and search.

The header shows the log's ID, status, operation, time and size, with quick Copy and Download buttons.

Execution Tree View

The Tree View parses the flat log into an expandable hierarchy that mirrors how your code actually executed. Code units, method entries and exits, SOQL and DML operations are nested by depth, so you can collapse the noise and drill into just the branch you care about.

This is the fastest way to answer "what called what?" in a large transaction without scrolling through thousands of raw lines.

Performance Timeline

The Timeline lays every event out on a horizontal, Gantt-style track positioned and sized by its actual start time and duration. Events are color-coded by type — methods, code units, SOQL and DML — and indented by call depth.

The header reports the total transaction duration and event count, making it easy to see which operations dominate your execution time and where the bottlenecks really are.

SOQL & DML Extraction

The SOQL tab scans the log and pulls out every SELECT statement that executed, collecting them into one clean, readable list separated from the surrounding noise.

Use it to audit exactly which queries ran, catch duplicated or repeated queries, and identify candidates for bulkification or selective filtering. DML operations are surfaced alongside SOQL in the tree and timeline so you can see the full data-access picture.

Automated Insights

The Insights tab runs an analysis pass over the log and surfaces findings automatically, each tagged as an error, warning, info or success with a plain-language explanation. Detections include:

  • CPU usage — flags critical and high CPU-time consumption.
  • Heap usage — flags critical and high heap allocation.
  • N+1 query patterns — detects SOQL likely running inside a loop.
  • Slow SOQL queries — highlights queries taking unusually long.
  • Approaching SOQL limits — warns before you hit the query governor limit.
  • Large result sets — flags queries returning a lot of rows.
  • High DML usage — warns when DML statement counts climb.
  • Execution failures — calls out transactions that ended in error.
  • All clear — confirms when performance looks healthy.

Governor Limit Tracking

Alongside the insights, the analyzer renders limit cards for the key governor limits captured in the log — CPU time, heap size, SOQL queries and DML statements. Each card shows used versus total with a percentage and a progress bar.

The bars are color-coded so problems jump out: green below 50%, yellow between 50% and 80%, and red above 80%. It's an at-a-glance health check for how close a transaction came to the edge.

Filtering & Search

In the Complete (raw log) tab you can slice the log down to exactly what you need. Toggle one or more built-in filters:

  • Debug Only — user debug, execution, code unit, method, statement, heap and DML lines.
  • Errors & Exceptions — errors, exceptions and fatal errors.
  • SOQL — query execution and SOQL limit-usage lines.
  • Governor Limits — cumulative and per-operation limit usage.

Combine filters with the free-text search box to find a specific value or message instantly across the whole log.

Debug Session Control

Manage Salesforce trace flags and debug levels without ever opening Setup. The control opens in a modal with two tabs: New for starting a session, and Active for reviewing what's currently running.

Presets and custom levels

Pick a ready-made preset (such as Apex-only) to start instantly, or switch to custom mode to set the level for each of the eight log categories individually:

  • Apex Code, Apex Profiling, Callout, Database, System, Validation, Visualforce, Workflow.
  • Each category supports the full range of levels: NONE, ERROR, WARN, INFO, DEBUG, FINE, FINER, FINEST.

Duration & multi-user

  • Choose how long the trace should stay active from the duration selector.
  • Enable logging for yourself, or search for any other user by name and trace them instead — ideal for reproducing issues a teammate or integration user hits.

Managing active sessions

The Active tab lists running trace flags with the traced user, debug level and expiration, so you can review and stop sessions you no longer need. Sessions can also be stopped directly from the dashboard.

On-demand status & Live

The debug-session indicator is checked on demand — when the panel opens and after you start or stop a session — rather than polling continuously. When you want it to keep itself in sync (for example, to watch a session auto-expire), turn on the Live toggle and it refreshes on an interval until you turn it off. The countdown itself always ticks locally, with no network calls.

Sample Data Generator

Create realistic test records for any object in seconds. Open Sample Data from the Tools drawer, pick an object and how many records you want, and the tool reads the object's schema and synthesizes type-correct values for you.

Smart, schema-aware values

  • Fills the right shape per field — text, email, phone, url, numbers (respecting length, precision and scale), dates, checkboxes, and a valid picklist value.
  • Fills required fields by default; optional fields are a checkbox away.
  • Resolves required lookups to real parent records, and tells you if a required parent doesn't exist yet.
  • Skips read-only fields (formula, roll-up, auto-number) automatically.

Preview, insert & undo

  • Preview the generated record and edit any value before inserting — optionally applying an edit to every row.
  • Insert up to 200 records at once via the Composite API, with per-record results (failures usually point to a validation rule or trigger).
  • One-click Delete these records undo removes everything you just inserted.

Intended for sandbox & scratch orgs. On any other org you'll be asked to confirm before records are inserted.

Magic Fill

When you open a create or edit record modal in Lightning, Magic Fill adds an Auto Fill button next to Save that fills the visible fields with sample data — so you can test a form without typing a thing. Fill first, then hit Undo if you want to clear it.

What it fills

  • Text, number, email, phone, url, checkbox and date fields, plus the compound Address block (street, city, state, postal code, country).
  • Picklists — picks a valid option, honoring record-type-specific values on the layout.
  • Required fields are filled first, so a required picklist never blocks Save.

Turn it on & choose what it fills

Magic Fill is off by default. Open Tools → Magic Fill to enable it and choose whether to fill normal fields, picklist values, or both. Values are generated from the object's schema, exactly like the Sample Data Generator.

API Activity Console

For full transparency, a collapsible console sits in the panel footer showing — live — every Salesforce API call the extension makes on your behalf as you use it.

  • Each entry shows the call type, a label (the actual SOQL for queries), HTTP status and how long it took.
  • Per-type counts for the session: queries, Apex, REST and session lookups.
  • Nothing is stored — the log is kept in memory only and clears when the page refreshes.

Settings

Tune how the panel fits into your workflow from the Settings view:

  • Panel position — dock the panel on the left or right side of the screen.
  • Panel opacity — slide from transparent to opaque (10%–100%) so you can keep an eye on the page behind it.
  • Panel width — adjust how much room the analyzer takes up.
  • Light / Dark theme — switch the Spotlight appearance.
  • UI style — keep the default look or switch on an SLDS skin that matches the Salesforce Lightning Design System.
  • Minimal view — collapse the panel to a single universal-search strip (see Minimal / Universal Search).
  • Manage tabs — reorder, show/hide, and pick the default tab.
  • Reset — restore all preferences to their defaults in one click.

Your preferences are saved and persist across sessions.

Keyboard Shortcuts

Action Windows / Linux Mac
Open Spotlight SearchAlt + TOption + T
Open Spotlight Search (alt.)Alt + Space⌘ + Space
Open Log Analyzer PanelAlt + SOption + S
Open Record Detail panelAlt + DOption + D
Toggle Component InspectorAlt + ZOption + Z
Close panel / SpotlightEscEsc
Move through Spotlight results↑ / ↓↑ / ↓
Open highlighted resultEnterEnter

Privacy & Permissions

SF Spotlight runs entirely in your browser. It uses your existing Salesforce session to read logs, metadata and component source, and to manage trace flags, through Salesforce's own APIs — your data is never sent to a third-party server.

The extension requests host permissions for Salesforce domains (*.salesforce.com, *.force.com, *.visualforce.com and related), plus activeTab, storage (for your settings) and cookies (to detect your session). See the project's Privacy Policy and host-permissions justification for the full details.

Disclaimer & Responsible Use

For development & testing — not production.

Do not edit or deploy code directly in a production org with SF Spotlight. Use a sandbox, scratch org, or development environment. Changes made with the Component Inspector compile and deploy immediately — there is no automatic backup, version control, or undo. For production, use your standard source-controlled deployment process (version control, CI/CD, change sets, or the Metadata API) with proper review and testing.

Provided "as is" — no warranty, no liability

SF Spotlight is provided "as is", without warranty of any kind. You use it entirely at your own risk. To the maximum extent permitted by law, the author and contributors accept no responsibility or liability for any loss, data loss, broken or corrupted metadata, failed or unintended deployments, downtime, or other harm arising from your use of the extension — including any consequences of reading, editing, saving, or deploying component source or other metadata.

You are solely responsible for any changes you make to your Salesforce org, and for having appropriate backups, permissions, and authorization before making them. When you save a change to a production org, the extension warns you and requires explicit confirmation — but the decision, and its consequences, remain entirely yours.

Full terms are in the project's Privacy Policy & Terms of Use.

FAQ

I opened the panel but there are no logs.

You need an active debug trace to generate logs. Start one from the Debug Session Control, reproduce your scenario, then click Fetch Logs.

Does it work on Lightning and Visualforce?

Yes. The extension activates on Salesforce, Lightning, Visualforce and Experience/Builder domains.

Can I trace another user?

Yes — in Debug Session Control, search for the user by name and start a session for them, subject to your org permissions.

Where do my settings live?

Locally, in the browser's extension storage. They persist across sessions and never leave your machine.

How do I report a bug or request a feature?

Open an issue on GitHub.

Credits & Open Source

SF Spotlight is open source (MIT). The Apex Log Analyzer is built on third-party open-source software, used with attribution as required by its license:

  • apex-log-parser — the engine that parses raw Apex debug logs into the event tree powering the Timeline, Call Tree, Analysis and Database views. By Certinia Inc. (Apex Log Analyzer), licensed under BSD 3-Clause. Copyright © Certinia Inc. All rights reserved.

The full license text is included with the extension in THIRD-PARTY-LICENSES.txt. SF Spotlight is an independent project and is not affiliated with or endorsed by Certinia or Salesforce.