Browser Action Control

Browser agents should not
authorize their own clicks.

Decision before side effects.
Stop your Playwright/Puppeteer agents from making unauthorized purchases or navigating to unsafe domains.
Add ALLOW / REQUIRE_CONFIRM / BLOCK before critical browser interactions.

Agent Issues page.click() KiLu ALLOW  |  REQUIRE_CONFIRM  |  BLOCK Execution / Throw Error
KiLu Browser Playwright Setup Demo

Automating clicks is easy. Controlling them is hard.

Browser execution is inherently dangerous. Letting an agent surf the web autonomously exposes you to:

purchases delete account external navigation form submission
Prompt limits

Instructing an agent "do not buy anything" relies on its reading comprehension. If it clicks checkout, it's already too late.

Domain escaping

Agents can follow external links to phishing or out-of-scope domains without explicit constraints.

Authentication loss

Agents mistakenly logging out or mutating authentication states interrupt automations across your system.

Deterministic interception layer.

ALLOW

Safe local navigation or reading data payload proceeds without friction.

REQUIRE_CONFIRM

Payment forms, destructive mutations, and auth changes pause for approval.

BLOCK

Blacklisted domains or out-of-scope interactions are denied outright.

Wrap your browser abstraction.

Before
Agent commands Playwright directly
No distinction between read and write clicks
Relies strictly on LLM intelligence
After
Client wraps sensitive Playwright commands
Decision layer intercepts dangerous intents
Deterministic fallback regardless of LLM behavior
Python (Playwright) — before / after
# before — autonomous risk
def buy_item(page, selector):
    page.click(selector)

# after — execute under authority
def buy_item(page, selector):
    intent = kilu.check_intent(action="browser.click", target=selector)
    
    if intent.outcome == "ALLOW":
        page.click(selector)
    elif intent.outcome == "REQUIRE_CONFIRM":
        wait_for_human(intent.id)
    else:
        raise Exception("Click Denied")

Browser Safety Approaches

Approach What it does What it misses
System Prompts Instructs model not to click on bad things Model hallucination = vulnerability
DOM masking Hides buttons from model vision Brittle. Breaks when DOM changes
KiLu integration Requires token decision per click/nav Bulletproof authority before side effects

Common questions

Yes. You apply KiLu in the command interpreting layer (where your framework translates agent actions to browser APIs).
No. You only wrap elements you care about (e.g., forms, buttons, specific regex matches for outbound domains). Routine scrolling and reading requires no overhead.
Start with one Playwright intercept →