pi-aia-browser0.2.3
Full browser automation for pi — persistent Playwright daemon, multi-tab, screenshots, JS injection, user profiles, cookies. Installs Chromium automatically on install.
Untested on omp
This is a pi package. No one has reported whether it works on omp yet. If you try it, add your result below.
Reports 0
No reports yet.
Readme
pi-aia-browser
Full browser automation for pi: a persistent Playwright daemon with multi-tab support, screenshots, JS injection, user profiles, and cookies — as 16 browser_* tools.
Chromium is installed automatically on install (postinstall script). Playwright is a regular dependency, so everything works right after pi install.
Originally developed locally as the
pi-browserextension; published as pi-aia-browser (the npm namepi-browserwas already taken by a different, simpler package).
Install
pi install npm:pi-aia-browser
The postinstall script downloads Chromium (idempotent — skips if already present). If it fails (e.g. missing system libraries), run manually:
# inside the installed package dir, or:
npx playwright install chromium
# Linux servers often also need:
npx playwright install --with-deps chromium
Then restart pi or run /reload.
Tools
| Tool | Purpose |
|---|---|
browser_init |
Start/ensure the browser daemon (auto-starts if not running) |
browser_navigate |
Go to a URL |
browser_click |
Click an element (CSS, text, XPath) |
browser_type |
Type into an input |
browser_screenshot |
Screenshot page/element |
browser_dom |
Inspect DOM (html/text/attributes/computed) |
browser_js |
Execute JavaScript in the page |
browser_scroll |
Scroll page/container |
browser_wait |
Wait for timeout/selector/navigation/network/condition |
browser_tabs |
List/switch/create/close tabs |
browser_back / browser_forward |
History navigation |
browser_reload |
Reload page |
browser_cookies |
Get/set/clear cookies |
browser_console |
Page console: console.log/warn/error, uncaught JS errors, failed requests |
browser_logs |
Daemon-side log (startup, crashes, recoveries, RPC errors) |
browser_diagnose |
Daemon health, memory, page state, console summary |
browser_close |
Shut down the daemon |
How it works
- Client extension (
index.ts) — registers the tools, communicates with the daemon over a Unix socket (~/.pi/run/aia-browser.sock), auto-spawns the daemon on first use. - Daemon (
src/daemon.ts) — persistent Playwright process that survives pi restarts; manages browser contexts, tabs, profiles, screenshots, and auto-shuts down after 60 min idle. - Profiles — saved sessions in
~/.pi/browser/profiles(login persistence, e.g. LinkedIn). - Logs —
~/.pi/agent/logs/pi-aia-browser/daemon.log. Read them without leaving the agent:browser_logsfor daemon-side events (supportslevelandgrepfilters) andbrowser_consolefor what the page itself said —console.log/warn/error, uncaught exceptions, and failed network requests, captured per tab with no setup.browser_diagnoseshows the tallies and the log file path. This matters because a page that renders fine in a screenshot can still be broken: the error is only in the console.
Use cases
- Testing web interfaces end-to-end (mandatory per the AIA ASF workflow — real user experience, not just curl)
- LinkedIn automation (posting, messaging, research)
- Any site that needs login/session persistence
- Debugging visual issues with screenshots
Development
npm install # installs deps + Chromium (postinstall)
npm run check # typecheck
npm run release patch|minor|major # test → version → CHANGELOG → tag → push
License
MIT © Bruno Jakic, Ai Applied