Loading...
Loading...
Browse the web using the user's real Chrome browser — already logged in, with real cookies and extensions. No headless browser. Uses BrowserForce relay + Playwright API via CLI.
npx skill4agent add ivalsaraj/browserforce browserforcebrowserforce statusbrowserforce status # Check relay + extension status
browserforce tabs # List open tabs
browserforce snapshot [n] # Accessibility tree of tab n
browserforce screenshot [n] # Screenshot tab n (PNG to stdout)
browserforce navigate <url> # Open URL in new tab
browserforce -e "<code>" # Run Playwright JavaScript (one-shot)browserforce -e-ebrowserforce snapshot 0 # See what's on tab 0
browserforce tabs # List all tabsbrowserforce -e "
state.page = await context.newPage();
await state.page.goto('https://example.com');
await waitForPageLoad();
return await snapshot();
"snapshot()state.pagepagestate.pagesnapshot()browserforce -e "
state.page = context.pages()[context.pages().length - 1];
await state.page.locator('role=button[name=\"Next\"]').click();
await waitForPageLoad();
return await snapshot();
"browserforce -e "
state.page = context.pages()[context.pages().length - 1];
await state.page.locator('role=textbox[name=\"Email\"]').fill('user@example.com');
return await snapshot();
"browserforce -e "
const p = context.pages()[context.pages().length - 1];
return await p.evaluate(() => document.querySelector('.price').textContent);
"browserforce screenshot 0 > page.png
# or via -e:
browserforce -e "
state.page = context.pages()[0];
return await state.page.screenshot();
" > page.pngcontext.newPage()browserforce navigate <url>browserforce tabsbrowserforce snapshotbrowserforce screenshotbrowserforce statusbrowserforce navigate https://example.combrowserforce -e "return await snapshot({ search: 'button' })"