Tutorials

A Minimal OttoMagic Smoke Test

The smallest possible OttoMagic workflow: turn on the engine, launch a maximized Chrome browser, navigate, and close. Useful as a first check that OttoMagic is installed and wired up correctly before building anything more elaborate on top of it.

Inside the GPAL REST API Server (OttoMagic's Backend)

GPALRestAPI is the local HTTP server that GPAL.OttoMagicClient talks to. It runs alongside a browser extension, listens on a local port, and translates REST calls into native-messaging commands the extension executes against the live browser. Understanding this server helps explain what's actually happening when your GPAL workflow calls .Execute().

Driving a Live Browser Through GPAL.OttoMagicClient

GPAL.OttoMagicClient is a ready-made IRESTClient wired to the OttoMagic REST API. Every browser action - navigation, clicks, scrolling, window management, storage, and more - is just an endpoint call away. This tutorial walks through opening tabs, driving the page, and reading results back with Execute<T>().

Driving a Browser Directly with PuppeteerClient

Under the high-level IBrowser fluent interface sits IPuppeteerClient - a thinner layer that exposes browser actions almost one-to-one with PuppeteerCommunicator's API. This tutorial gets an IPuppeteerClient from a browser, chains a few navigation and interaction calls with AndThen, and reads results back from individual calls.

Dropping Down to PuppeteerCommunicator: Raw Chrome DevTools Commands

Underneath GPAL.Browser and PuppeteerClient sits PuppeteerCommunicator, a thin wrapper that sends raw Chrome DevTools Protocol (CDP) commands over a debug port. This tutorial shows how to reach it directly: launching a debug session, capturing screenshots, querying elements, and dispatching low-level mouse and keyboard events when the higher layers don't expose what you need.

Driving the Browser Through the REST Client

GPAL.OttoMagicClient gives you the same browser actions as IBrowser, but expressed as REST calls against the OttoMagic engine - useful when the thing driving the browser isn't your C# process. This tutorial opens tabs, waits for the network to settle, and walks through Execute() versus the typed Execute<T>().

💬 Ask GPAL