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.
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.
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.
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 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 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.
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.
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.
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.