Concepts

Configuration Hierarchy

GPAL settings flow from broad to specific. Configure once globally and override only where needed. At the browser or application object level, or at the individual selector level.

Under the Hood

GPAL is the highest-level automation layer, but it sits on top of lower-level layers you can use directly for custom tooling or finer control. All layers are fluent and all map to the same set of operations.

Automation Engines

GPAL supports 7 stable automation engine variants across 3 technology stacks and works with Chrome, Edge, and Firefox. The same workflow code runs on any of the 19 resulting combinations. Firefox is not supported by the Puppeteer-based engines.

Choosing an Automation Engine

GPAL supports three browser automation engines: OttoMagic, Puppeteer, and Selenium. All three run the same workflow code without changes. The right choice depends on driver management preferences, browser support requirements, and what the target site's anti-automation defenses demand.

OttoMagic: Browser Automation Without WebDriver

OttoMagic is a browser extension that must be installed in the browser profile you are using. When GPAL launches the browser, the extension loads and starts GPALRestAPI -- a native Windows application that acts as the REST server. GPAL communicates with GPALRestAPI over a local port, and GPALRestAPI marshals each command to OttoMagic running in the browser. No WebDriver or driver binary needed.

GPALRestAPI: The REST Automation Server

GPALRestAPI is the native Windows application that OttoMagic launches to drive the browser. It exposes REST endpoints covering navigation, element interaction, script injection, storage, and more. Any HTTP client -- GPAL, Python, Node.js, or curl -- can call these endpoints to automate the browser. An openapi.yaml bundled with the installer documents every endpoint and its parameters for non-GPAL clients.

GPAL Subsystems

Browsers and applications are only two of the things GPAL automates. Credentials, AI, REST, email, Excel, and file conversion are all separate subsystems reached through the same GPAL factory, using the same fluent pattern you already know.

Files GPAL Writes to Disk

GPAL.yaml is created and loaded automatically every run. Five optional config files -- credentialsConfig.json, LLMDigestRules.yaml, googleDorkingConfig.json, GPALMail.yaml, and AIProvidersConfig.yaml -- follow the same Load/Save pattern but are only written when you call Save(). AIProvidersConfig.yaml is also silently attempted on startup. GPALRESTAPI also keeps a single emergency crash log.

File Upload: Attaching Files Without a Dialog

LeftClickAndUpload attaches one or more files to a file input element without opening the OS file picker. GPAL reads the file from disk and delivers it through whichever mechanism the active engine supports -- no user interaction required.

💬 Ask GPAL