Your browser agent works in demos.
Make it work in production.

Pokant adds reliability, observability, and error recovery to any browser automation agent. Two lines of code. Zero dependencies.

View on GitHub
without_pokant.py
agent = Agent(task="Extract pricing", llm=llm)
result = await agent.run()
# Crashes on API errors
# Loops forever on broken pages
# No idea what happened
# Costs spiral invisibly
with_pokant.py
from pokant import wrap
result = await wrap(agent).run()
# Auto-retry on transient errors
# Stuck detection kills loops
# Step-by-step screenshots + replay
# Cost tracking per step
Scroll to explore

Browser agents break in production.Every team hits the same wall.

Silent failures

Your agent crashes on a transient API error at 3 am. No retry, no alert, no visibility into what happened. You find out when a customer complains.

Infinite loops

The agent clicks the same button 47 times because the page didn’t load as expected. You burn $12 in API costs before the timeout kills it.

Black box execution

The task failed. Why? Was it the website, the LLM, the network, the credentials? Without step-by-step replay, you’re guessing.

Production reliability in one function call.

Error Classification & Auto-Retry

Seven error categories. Transient failures retry automatically with exponential backoff. Permanent failures surface immediately.

Stuck Detection

Detects visual stagnation, action loops, and failure spirals in real time. Kills the agent before it wastes your budget.

Step-by-Step Replay

Every action screenshotted, timestamped, and saved. HTML files you can open in any browser—no account needed.

Cost & Token Tracking

Per-step and total LLM cost monitoring. Know exactly how much each task costs before your invoice surprises you.

Session Persistence

Encrypted cookie storage across runs. Your agent stays logged in without re-authenticating every time.

Local Dashboard

pokant dashboard launches a debugging UI on your machine. See all runs, replay steps, inspect errors. No cloud required.

Sits between your agent and the browser.Intercepts nothing, observes everything.

Your Code
wrap(agent)ortrack(page)
Pokant Layer
Error Classification
Auto-Retry (exp backoff)
Stuck Detection
Screenshot Capture
Cost Tracking
Report Generation
BrowserChromium / Browserbase / CDP

Works with Browser Use, Playwright, or any browser automation framework. Bring your own agent—Pokant doesn’t replace it, it makes it reliable.

Agent agnostic. Framework agnostic.

Browser Automation
Browser Use 81K+ stars
Playwright
Any agent with a run() method
LLM Providers
Claude
GPT-4o
Any LangChain-compatible model
Browser Infrastructure
Local Chromium
Browserbase
Any CDP-compatible browser

60 seconds to production reliability.

1

Install

$ pip install pokant
2

Wrap your agent

from pokant import wrap
result = await wrap(agent).run()
3

See what happened

$ pip install pokant[dashboard]
$ pokant dashboard
pokant dashboard — localhost:8420
Extract pricing data from acme.comCompleted
Navigate to acme.com/pricing0.8s$0.003
Click ‘Enterprise’ tab1.2s$0.008
Extract pricing table2.1s$0.012
Handle rate limit (retry 1)3.0s$0.004
Extract feature comparison1.8s$0.011
5 steps · 1 retry · 8.9s total$0.038

Real example: extracting data from a SaaS portal.

Same task, same agent, same target website. The only difference is two lines of code.

Before (raw Browser Use)
Task fails silently on 429 rate limit
No way to see what the agent did
No retry — manual re-run required
Session cookies lost — re-authenticates every run
Cost unknown until monthly invoice
After (with Pokant)
429 classified as rate_limited, auto-retried after backoff
Step replay shows exactly what happened on each page
3 retries with exponential backoff, succeeded on attempt 2
Cookies persisted — agent stayed logged in
Cost tracked: $0.034 for the successful run

Open source. Local first. No cloud required.

Zero dependencies

Core library is pure Python. No accounts, no API keys beyond your LLM provider, no vendor lock-in.

Your data stays local

Screenshots, replays, and run metadata saved to .pokant/ on your machine. Nothing leaves your environment unless you configure it.

MIT Licensed

Use it commercially, modify it, contribute back. The code is on GitHub.

Where it's going.

Workflow Definitions

Save and reuse task templates with parameterized inputs.

Scheduled Execution

Run workflows on a cron schedule.

Self-Improving Playbooks

The system learns from every run. Success patterns become reusable knowledge.

Two lines of code. That's it.

from pokant import wrap
result = await wrap(agent).run()
Read the DocsGitHub