Free public assets · SDK, packs, and helpers for visible cross-domain tab demos on allowed hosts

Remote Tab Opener SDK used manually or with AI assistance to generate and adapt browser workflow scripts faster.
Start with the SDK manually, or use chatGPT AI assistance to generate, adapt, and debug your first RTO integrations faster.
RTO v8.6.0

Include files, helper packs, and bundles

The current options are simple: use individual helper files from /RTO_helpers/, use the curated packs in /RTO_helper_packs/, or load the all-in-one bundle RTO.min.js from /RTO_helpers.min/. The pack folder now also includes focused bundles like RTO.visibility.min.js and RTO.formhelpers.min.js when you want smaller targeted includes.

Security reminder
Target hostnames must be allowlisted in the extension UI (deny-by-default).
Option 1: individual helpers
Use this when you want explicit control over every file you ship.
Open RTO_form_api.js
Option 2: helper packs
Use packs when you want a lighter include list without loading everything.
Open pack guide
Option 3: one global bundle
Use this when convenience matters more than micro-optimizing file count.
Get RTO.min.js

Minimal controller include

<!-- Controller page (your site) -->
<script src="../RTO_helpers/RTO_form_api.js"></script>
<script>
RTOForm.detect(1500).then(function(){
  console.log("RTO detected");
}).catch(function(e){
  console.log("RTO missing:", e.code, e.message);
});
</script>

Pack-based include

Use the focused packs when you only need selected features, for example RTO.visibility.min.js for tab-aware visibility rules or RTO.formhelpers.min.js for higher-level form flows.

<script src="../RTO_helper_packs/RTO.core.min.js"></script>
<script src="../RTO_helper_packs/RTO.ui.min.js"></script>
<script>
RTOconnectOnce(2500).then(function(ok){
  window.RTOconnected = !!ok;
});
</script>

All-in-one bundle

<script src="../RTO_helpers.min/RTO.min.js"></script>
<script>
RTOconnectOnce(2500).then(function(ok){
  window.RTOconnected = !!ok;
});
</script>

Helpers reference (file by file)

RTO_form_api.js
Core bridge between your page and the extension.
RTOForm.detect(timeoutMs) — check extension availability.
RTOForm.openTab(args, opts) — open/reuse a controlled tab.
RTOForm.adoptTab(args, opts) — adopt an existing browser tab by id.
RTOForm.navigate(args, opts) — navigate controlled tab to URL.
RTOForm.focusTab(args, opts) — focus controlled tab.
RTOForm.closeTab(args, opts) — close controlled tab.
RTOForm.listTabs(args, opts) — list controlled tabs.
RTOForm.command(msg, opts) — send named safe DOM action.
RTOForm.waitForSelector(args, opts) — wait for remote selector.
RTOForm.waitForNavigation(args, opts) — wait for post-submit selector.
RTOForm.focusElement(args, opts) — focus remote element.
RTOForm.domSetStyle(args, opts) — set remote inline styles.
RTOForm.registerMasterTab(args, opts) — register current page as master tab.
RTOForm.focusMasterTab(args, opts) — request focus back to master tab.
RTOForm.onStatus(fn), offStatus(fn), waitForStatus(filter, timeoutMs) — subscribe/wait tab status events.
RTO_form_helpers.js
High-level helper functions for robust form automation.
RTOHelpers.formWait(selector, waitMs, tabKey, logKey) — wait for field.
RTOHelpers.formClick(selector, tabKey, logKey) — click safely with logs.
RTOHelpers.formHighlight(selector, tabKey, ms, logKey) — highlight target field.
RTOHelpers.formValue(selector, tabKey, logKey) — read field value.
RTOHelpers.formAttr(selector, attrName, tabKey, logKey) — read field attribute.
RTOHelpers.formTextInput(selector, val, read, tabKey, logKey) — type and optionally verify text.
RTOHelpers.formDateInput(selector, dt, read, tabKey, logKey) — write ISO date and verify.
RTOHelpers.formSelect(selector, val, read, tabKey, logKey) — set select value and verify.
RTOHelpers.formCheck(selector, chk, tabKey, logKey) — set checkbox/radio state.
RTOHelpers.formNavigate(url, tabKey, focus, timeoutMs, logKey) — navigate with helper logging.
RTOHelpers.formFindFirstAttr(selector, attrName, waitMs, tabKey, logKey) — read first non-empty attribute.
RTOHelpers.formExtractInt(text, re, groupIndex, logKey) — parse integer from text.
RTOHelpers.formFindHrefAndNavigate(selector, re, groupIndex, waitMs, tabKey, focus, logKey) — extract href/id then navigate.
RTOHelpers.runSteps(steps, ctx) — execute named async steps pipeline.
RTO_detector.js
Boolean detector wrapper.
RTOdetectOnce(timeoutMs) — resolve true/false depending on extension detection.
RTO_connector.js
Connection gate and normalized request helper.
RTOconnectOnce(timeoutMs) — connect once and set window.RTOconnected.
RTOConnector.request(payload) — map generic action payload to API call.
RTO_domainList.js
Allowlist API wrapper.
RTOAllowlist.list(timeoutMs) — fetch normalized allowlist hosts.
RTOAllowlist.has(host, timeoutMs) — check host presence.
RTOAllowlist.add(host, timeoutMs) — request an add using the modern confirmation flow.
RTOAllowlist.remove(host, timeoutMs) — remove host.
RTOAllowlist.cached(), RTOAllowlist.hasCached(host) — read local cache.
RTO_addRemoveDomain.js
Ready-to-use small allowlist UI binder.
RTOAllowlistUI.bind(config) — bind input/buttons/message/list for add/check/remove.
RTO_favoritesList.js
Favorites API wrapper (URLs).
RTOFavorites.list(timeoutMs) — fetch favorites list.
RTOFavorites.has(url, timeoutMs) — check if URL is in favorites.
RTOFavorites.add(url, label, timeoutMs) — add favorite.
RTOFavorites.remove(url, timeoutMs) — remove favorite.
RTOFavorites.cached(), RTOFavorites.hasCached(url) — read local cache.
RTO_addRemovefavorite.js
Ready-to-use favorites UI binder.
RTOFavoritesUI.bind(config) — bind input/buttons/message/list for favorites.
RTO_tabsList.js
Snapshot helper for controlled tabs.
RTOTabsList.requestNow(timeoutMs) — refresh tabs snapshot from extension.
RTOTabsList.getSnapshot() — get current cached snapshot.
RTOTabsList.isOpen(tabKey) — check if tabKey is currently open.
RTO_openTabsListing.js
Auto renderer of open tabs into a table body.
window.RTO_OPEN_TABS_TBODY_ID — optional global override for target tbody id (default: openTabsBody, legacy fallback: openTabsBoby).
RTO_openTab_button.js
Declarative open/focus button behavior via data attributes.
RTObindTabButtons() — bind all matching data-rto-key/data-rto-url buttons.
RTO_visible_when_tab.js
Show/hide elements depending on a tabKey open state.
RTOVisibleWhenTab.bind(config) — bind one element visibility to tabKey state.
RTOVisibleWhenTab.rescan() — rescan declarative data-rto-visible-when elements.
RTO_DOM_focus.js
Remote focus helper for one selector.
RTOFocusElement(selector, tabKey, timeoutMs, tabId) — focus remote element with fallback strategy.
RTO_DOM_style.js
Remote style setter helper.
RTOSetRemoteStyle(selector, styleObj, opts) — apply inline style object remotely.
RTO_DOM_highlight.js
Remote highlight/unhighlight helpers.
RTOHighlight(selector, opts) — highlight one element.
RTOUnhighlight(selector, opts) — clear highlight on one element.
RTOHighlightMany(selectors, opts) — highlight multiple selectors.
RTOUnhighlightMany(selectors, opts) — clear highlights for multiple selectors.
RTO_DOM_actions.js
Declarative DOM action presets for button-driven demos.
No public JS API function exported; usage is attribute-driven (for example data-rto-action presets).

Quick checklist

  1. Include RTO_form_api.js on your controller page.
  2. Run RTOForm.detect() and gate your UI.
  3. Make sure the target hostname is in the allowlist.
  4. Use tabKey consistently (multi-tab safe).
  5. Use waitForSelector before click / setValue.

If you need a starting point, open Minimal connection.