Browser automation that survives a redesign.
Drop-in Playwright companion. Describe goals in natural language; Sentinel handles the clicks, caches selectors, and self-heals when the page underneath you changes.
Everything the watchtower already sees.
Nine systems, one console. Each capability ships with tests, instrumentation, and a public API. No feature flags. No locked tiers.
10× fewer tokens per action.
Smart element filtering trims the page state graph before it ever hits the LLM. Same task, fraction of the prompt.
Self-healing locators
Successful selectors are cached and reused. The LLM is only called when an element moves or changes.
Parallel execution
Sentinel.parallel() runs N browser sessions concurrently with a built-in worker pool and error isolation.
OpenTelemetry
Every act(), extract(), and agent step emits spans and metrics. Drop into Datadog, Grafana, or Jaeger.
Shadow DOM & iframes
Full support for Salesforce, ServiceNow, and any component built with Lit, Polymer, or Stencil.
Multi-LLM
Gemini, OpenAI, Claude, Ollama — swap providers with one line. Bring your own LLMProvider.
Autonomous Agent
sentinel.run(goal) plans and executes autonomously. fillForm(json) fills declaratively. intercept() captures API data.
MCP Server
Use Sentinel from inside Cursor, Windsurf, or Claude Desktop without writing a single line of code.
+ Playwright Test fixture · see all 9 capabilities →
Three sites. One call.
Sentinel.parallel() runs N browser sessions concurrently with a built-in worker pool. Errors stay isolated. Progress callbacks stream into your dashboard in real time.
const results = await Sentinel.parallel(
[
{ url: 'https://amazon.de', goal: 'Find cheapest laptop' },
{ url: 'https://ebay.de', goal: 'Find cheapest laptop' },
{ url: 'https://otto.de', goal: 'Find cheapest laptop' },
],
{ apiKey: process.env.GEMINI_API_KEY, concurrency: 3 }
);The whole field.
Three numbers that matter, then the receipts.
▌Show all 20 metrics — full receipts↓
| Feature | Sentinel | Stagehand | BrowserUse | AutoGPT | Playwright |
|---|---|---|---|---|---|
| Language | TypeScript | TypeScript | Python | Python | TS / Py / Java |
| Default LLM | Gemini Flash | configurable | any | GPT-4o | — |
| Cost / run (ref. task) | ~$0.002 | ~$0.08 | ~$0.05 est. | ~$0.10 est. | — |
| Autonomous agent loop | ● | partial | ● | ● | ○ |
| Self-healing locators | ● | partial | ○ | ○ | ○ |
| Prompt caching | ● | partial | ○ | ○ | ○ |
| Parallel sessions | ● | ○ | partial | ○ | ● |
| MCP server | ● | ○ | ○ | ○ | ○ |
| CLI tool | ● | ○ | ○ | ● | ● |
| Playwright Test fixture | ● | ○ | ○ | ○ | ● |
| Custom LLM | ● | partial | ● | partial | ○ |
| fillForm(json) | ● | ○ | ○ | ○ | ○ |
| Network intercept | ● | ○ | ○ | ○ | ● |
| TOTP / MFA | ● | ○ | ○ | ○ | partial |
| Planner model split | ● | ○ | ○ | partial | ○ |
| Vision grounding | ● | ● | ● | ● | ○ |
| Shadow DOM / iframes | ● | partial | partial | ○ | ● |
| OpenTelemetry | ● | ○ | ○ | ○ | ○ |
| Selector export | ● | ○ | ○ | ○ | ● |
| Open source | ● | ● | ● | ● | ● |
▌ Cost estimates: official API pricing as of 04.08.2026
Drag the slider. See the bill.
► Sentinel 40× cheaper than Stagehand. Defaults: Gemini Flash vs GPT-4o.
Run full numbers →Switch in 10 minutes.
Same act / extract signatures. Just swap the import and your API key. The model swap happens for free.
import { Stagehand } from '@browserbasehq/stagehand';
const stagehand = new Stagehand({
env: 'LOCAL',
modelName: 'gpt-4o',
});
await stagehand.init();
const page = stagehand.page;
await page.goto('https://amazon.de');
await page.act('search for laptop');
const data = await page.extract({
instruction: 'get product name and price',
schema: { name: 'string', price: 'string' },
});import { Sentinel } from '@isoldex/sentinel';
const sentinel = new Sentinel({
apiKey: process.env.GEMINI_API_KEY,
});
await sentinel.init();
await sentinel.goto('https://amazon.de');
await sentinel.act('search for laptop');
const data = await sentinel.extract(
'get product name and price',
{ name: 'string', price: 'string' }
);How act() survives a redesign.
Sentinel sits on top of Playwright. Every action falls through a layered fallback pipeline. The agent loop wraps it all in a plan-execute-verify-reflect cycle.
Sentinel does not replace Playwright. It sits on top, adds intelligence, falls back to it.
► Each act()falls through the layers in order. The Locator Cache hits ~80% of the time on repeated runs — the LLM never gets called. Vision Grounding catches Canvas, Shadow DOM, and anything the AOM can't see.
● The loop terminates when the verifier says goalAchieved = trueor maxSteps is hit. Built-in loop detection compares the last 3 plans — if they match, the run aborts with LoopDetectedError.
Selectors heal
Cached selectors auto-rediscover when the page changes.
Drop in incrementally
sentinel.extend(page) adds act/extract/observe to existing Playwright pages.
Zero-shot agent
sentinel.run(goal) plans, executes, verifies — no step scripting.
Playwright Test ready
@isoldex/sentinel/test exposes an ai fixture for existing test suites.
Start free. Always.
The library is and will always be MIT. Pay only when you want managed infrastructure.
Open Source
- Full library — no feature locks
- Self-hosted, your API keys
- MIT License
- Community support
Pro
- REST API — no Playwright required
- Managed cloud browsers
- Usage dashboard + token analytics
- Priority support
Enterprise
- Everything in Pro
- SLA + dedicated support
- On-premise deployment
- Custom integrations
Shape what comes next.
Sentinel is fresh out of the box. Open an issue, request a feature, or share what you built. Every message is read. Bugs get a fix within 24 hours.
Questions answered.
Everything you need to decide if Sentinel is right for your project.
Start in 30 seconds.
No account. No credit card. Just your Gemini API key — free tier covers thousands of runs per month.
Hosted API — no Playwright required.
POST a goal + URL. Receive structured data. Managed cloud browsers. Usage dashboard. Zero infrastructure. Join the watch.