GlideLens

Chrome & Edge · for ServiceNow developers

Press \
anywhere in ServiceNow.

A command palette over the platform you already work in. Find a record, search the script the instance's own index can't see, read what actually runs on a catalog item, and replay a form interaction after it has happened.

GLIDELENS
    move jump to it this palette works — try it

    Same commands as the real thing. In ServiceNow they run; here they scroll.

    Forms

    Reads
    sys_documentation
    sys_translated
    sys_choice
    sys_ui_message
    Resolves
    inherited fields

    Which translations are missing, and where they would go

    A read-only report over every field, catalog variable, choice and getMessage key on the surface in front of you, against every active language. A gap links to the record that would hold the translation, prefilled with the exact keys — so closing it is a save, not a search. It runs on a classic form, a catalog item's definition form and a Service Portal catalog item; on a Workspace record the same command offers a link to the record's classic form, where it runs.

    The store depends on the dictionary type, and getting that wrong is silent: translated_field values live in sys_translated keyed by the source string, not in sys_translated_text. Labels resolve through super_class, so a field inherited from task lands on the right dictionary record. Absent data is never counted as coverage: a denied read stays Unavailable and stays out of the denominator.

    per-language chips prefilled gaps coverage per section read-only

    Interactive demo — fictional catalog item. Two rows are open to show the per-language chips. Deselect a language to rescore, or reveal the Minor rows.

    Translation Lens

    Catalog definition form · sc_cat_item · Base language en

    0% 0complete 0partial 0missing / none 0 of 0 languages shown

    Reports where a translation is missing. It never writes one.

    Catalog

    Covers
    Stored vs live
    record movement
    secret-safe reads

    Variable Values, including the ones you cannot see

    On a classic RITM or record-producer target, compare the raw value stored in the database with the raw value now held by g_form, so an onLoad change is visible without mistaking reference or choice labels for differences. On a verified Workspace record — a Service Operations Workspace request item, or a supplier case or supplier task in Source-to-Pay Workspace — the same command checks a narrower evidence-backed set after confirming the visible record, the Variable Editor, read permission, and each raw value's shape. Each supported surface has its own verified type list rather than inheriting another's. Partial and stored-only results say plainly what was not compared; every other Workspace experience and table remains unsupported. On an ordering form, the same command keeps its current best-effort live-value and hidden-variable view.

    hidden / visible filter differing filter Workspace guarded comparison read-only

    Interactive demo — fictional data, native RITM panel. Switch to Differing, or try Non-empty.

    Variable Values Best effort

    Stored Table API values compared with raw live g_form values on this RITM. Values are read-only; reference and choice labels are not compared.

    0variables 0hidden 0visible 0differing

    Read-only inspector — does not modify the live form.

    Debugging

    Captures
    g_form
    GlideAjax
    field events, errors

    Debug Timeline

    Record one page's interaction and read back what happened: public g_form calls, native field events, GlideAjax timing, and JavaScript errors on a filterable timeline. Best-effort by design — it shows you what ran, not which script ran it, and says so rather than guessing.

    GlideAjax rows carry what you would otherwise open the Network tab for: the Script Include, the method, every parameter added, and the decoded response, next to how long the call took and in order with the rest of the interaction — rather than pieced back together from a list of XHRs. Parameter and response names that read like secrets are redacted before anything is shown.

    single page params · response reversible patches secrets redacted

    Interactive demo — fictional trace, real panel. Open a GlideAjax row for its params and response.

    Debug Timeline Best effort

    ServiceNow form activity correlated across the frames that were available during this interaction.

    0events 2frames 2.4sduration

    Stacks identify runtime calls, not guaranteed Client Script or UI Policy names.

    Catalog

    Reads
    catalog_script_client
    catalog_ui_policy
    catalog_ui_policy_action
    Where
    Service Portal

    Catalog Logic: what actually affects this item

    Open a catalog item and get every client script and UI policy bound to it or its variable sets, grouped by the variable they watch. Rows that cannot fire while ordering — inactive, or scoped to RITM and Task views only — are flagged, so "why isn't my script running" answers itself before you open a single record.

    group by variable ⚠ won't run here open in platform read-only

    Interactive demo — fictional data, real panel. Try Group by variable, Active only, or search laptop_model.

    Catalog Logic

    Catalog client scripts and catalog UI policies bound to this item or its variable sets. Read-only — nothing here runs or edits the logic.

    0shown 0active 0inactive 0won't run here

    Rows flagged ⚠ are active but scoped away from the catalog form — the usual answer to "why isn't my script running".

    Catalog

    Reads
    item_option_new
    catalog_ui_policy_action
    Shortcut
    Alt + double-click

    Per-variable insight icons

    An icon beside every variable on the form. Click one and the panel narrows to that variable alone: the onChange scripts watching it, and what each UI policy does to it — hides, mandatory, read-only, sets value. Attribution is matched on sys_id, not guessed from script text.

    per-variable scope show all to clear

    Install

    One click, then backslash.

    It is on the Chrome Web Store and Edge Add-ons, so your browser keeps it current by itself. Same package either way — nothing about it is browser-specific.

    Google Chrome

    Chrome Web Store

    Add to Chrome

    Microsoft Edge

    Microsoft Edge Add-ons

    Add to Edge

    Chromium browsers, version 111 or newer — from March 2023. The panels colour themselves with color-mix(), so the manifest declares that floor and the browser declines to install rather than leaving you to discover it. There is no Firefox or Safari build.

    1. Pin it

      Click the puzzle-piece icon in the toolbar and pin GlideLens, so the popup is one click from anywhere.

    2. Press \

      Open any ServiceNow tab and hit backslash. Everything else starts from that palette.

    Or run it from source. On the repository, click Code then Download ZIP, extract it somewhere permanent — your browser re-reads that folder on every start, so not Downloads — and load it at chrome://extensions with Developer mode on and Load unpacked. Point it at the folder that directly holds manifest.json; GitHub wraps everything in an inner folder. An unpacked copy will not update itself: re-download over the same folder, hit reload on the card, and refresh your ServiceNow tab.

    Nothing leaves your browser. The extension only activates on *.service-now.com, reads through your own session, and has no server of its own.

    What this isn't

    Deliberately narrow.

    It is not a general ServiceNow toolbelt, and it does not try to become one. Update set switching, impersonation and environment badges are well served by tools that already exist, so they stay out of scope. This aims squarely at the gaps: catalog and Service Portal debugging, dictionary inheritance, form introspection, and the script no index reaches.

    Everything it reads goes through the Table API on your own session, with your own permissions — there is no server, no account and no telemetry. It never writes directly to your records and never submits a form; the one thing that changes anything is Prefill, which fills unsaved fields on the catalog form in front of you for you to review. Code search shows the matching lines and one line either side, and redacts hits whose field names read like secrets. The privacy policy spells all of this out.