For agentic browsers and autonomous web products

Security for browser agents
before they click.

Guni sits between the page and the action layer. We inspect the DOM, forms, scripts, and goal alignment before your agent logs in, submits data, handles sensitive workflows, or follows hostile instructions.

Why browser-agent teams should care
Prompt injection is a browser problem now Autonomous browsers read hidden DOM content and can be steered mid-task by malicious pages.
Execution risk is customer-visible If an agent clicks the wrong CTA, leaks a credential, or follows a fake workflow, trust is gone immediately.
You need proof, not just a claim Guni returns evidence, risk scores, and explicit decisions that product, security, and customer teams can all understand.
Evaluation is straightforward The product includes deployment guidance, public trust pages, and buyer-facing product proof to reduce evaluation friction.
8Threat vectors covered
3Decisions: allow, confirm, block
SDK + APIShip self-hosted or managed
Live evidenceUsable in demos and audits
What Guni blocks

Guni is designed for workflows where agents browse, authenticate, submit forms, and execute multi-step tasks on unpredictable websites.

Hidden instructions Invisible DOM content telling the browser agent to ignore the task or exfiltrate data.
Credential collection and phishing Unsafe login flows, deceptive forms, and external action targets harvesting secrets.
Goal hijack and deceptive UI Pages that redirect the agent toward purchases, transfers, or unrelated actions.
Clickjacking and redirect abuse Invisible overlays or scripted redirects that trick autonomous navigation and actions.
How it fits in your stack

You can place Guni directly around browser navigation, as a policy check before action execution, or as a hosted service used by multiple browser workers.

from guni import GuniScanner

scanner = GuniScanner(goal="Complete checkout flow")

page.goto(url)
result = scanner.scan(html=page.content(), url=url)

if result["decision"] == "BLOCK":
    page.go_back()
    raise RuntimeError("Hostile page blocked")

if result["decision"] == "CONFIRM":
    log_warning(result)
Evaluation structure

The most effective early rollout is a focused evaluation with clear security objectives, measurable outcomes, and a narrow workflow scope.

Step 1: workflow review Map your highest-risk browser actions: login, checkout, finance, admin workflows, and data extraction.
Step 2: protected deployment Wrap selected browser workflows with Guni and enable audit logging plus live evidence review.
Step 3: attack simulation Run real prompt injection, phishing, redirect, and deceptive UI scenarios against staging or sandbox flows.
Step 4: buyer proof Deliver blocked examples, false-positive notes, latency numbers, and recommended next rollout scope.
What a buyer wants answered

This page is built to make those answers easier during outreach and calls.

Does it slow the browser down? No material product slowdown for heuristic scans; you can reserve LLM reasoning for deeper analysis paths.
Can we self-host? Yes. The SDK and API can run in your own environment, with runtime state isolated from the repo.
Will product teams understand the output? Yes. Decisions are human-readable and include evidence, not just opaque scores.
Can this be shown to customers? Yes. The dashboard and audit trail are usable in product demos, onboarding, and trust conversations.
Recommended evaluation path
Use this page with the live dashboard when discussing a focused security evaluation for a high-risk browser workflow.
Open demo Start evaluation