Skip to main content

Sentinel

Point it at a URL. It explores the app, generates a test plan, runs it, and reports findings. Web + visual regression + accessibility in v0.1; API + mobile in later versions.

PyPI License: MIT Status Built by ThinkNext

Status: alpha, live on PyPI as sentinel-agent==0.1.0a1. Web + visual regression + accessibility ship today. API testing in v0.1.0a2; mobile (React Native) in v0.1.0a3.

Install: pip install sentinel-agent · Repo: GitHub · Issues: file one

What it does

Point Sentinel at a URL:

sentinel run https://your-app.com

In one command, the agent:

  1. Opens the URL in headless Chromium
  2. Reads the rendered HTML + visible text
  3. Asks the LLM to generate a focused test plan (2-5 scenarios, 3-8 steps each)
  4. Runs the plan in fresh browser sessions per scenario
  5. Captures screenshots and compares against baselines (visual regression)
  6. Scans each page state for WCAG 2.1 AA violations (axe-core)
  7. Reports findings: failed scenarios, visual diffs, accessibility issues, with cost

Why this exists

The same teams that need Cascade (meeting-to-PR) and Relay (issue-to-PR) need a way to verify that the PRs those agents produce actually work. Hand-writing Playwright tests for every feature is the bottleneck. Sentinel removes the bottleneck: generate tests with the same LLM that writes the code.

Sentinel is fully standalone. It carries its own LLM-client layer and config so it does not depend on any other ThinkNext package at runtime.

Install

# Core install + the LLM provider you want:
pip install 'sentinel-agent[anthropic]'        # Anthropic Claude
pip install 'sentinel-agent[openai]'           # OpenAI
pip install 'sentinel-agent[google]'           # Google Gemini
pip install 'sentinel-agent[claude-code]'      # Local Claude Code subscription, no API key
pip install 'sentinel-agent[all]'              # All providers

# One-time: install the Chromium binary Playwright needs
playwright install chromium

Configure

# Set up an LLM provider. Credentials live at ~/.config/sentinel/config.yaml.
sentinel configure llm anthropic --key sk-ant-xxx --set-default

# Or, if you have Claude Code installed locally (no API key needed):
sentinel configure llm claude_code --set-default

If you want a project-local config (highly recommended; lets you set viewport, baseline directory, accessibility thresholds):

sentinel init

This scaffolds sentinel.yaml with sensible defaults you can edit.

Run

sentinel run https://cascadeagent.dev

# Output (truncated):
#   ✓  3/3 scenarios passed, 0 visual diff(s), 2 a11y violation(s)
#
#   ✓  Homepage loads and primary CTA is visible  (1.42s)
#   ✓  Get-started link navigates to /getting-started/  (1.83s)
#   ✓  Docs sidebar contains all expected sections  (2.10s)
#
#   Accessibility violations:
#     [moderate] color-contrast: Elements must meet minimum color contrast...
#       sample: .text-slate-500
#       (3 node(s) affected)
#     [minor] image-alt: Images must have alt text...
#       sample: img.hero-illustration
#       (1 node(s) affected)
#
#   cost:    $0.04 (5,210 in / 980 out tokens)

What ships in v0.1.0

Capability Module
Web testing via Playwright sentinel.browser, sentinel.runner
LLM-driven test plan generation sentinel.planner
Self-healing tests (LLM re-plan on failed step + retry once) sentinel.planner.regenerate_step
Multi-page exploration (up to 4 same-origin links) sentinel.agent
Visual regression (PIL pixel diff) sentinel.visual
Accessibility scan (axe-core 4.10, WCAG 2.1 AA) sentinel.a11y
REST API contract testing (OpenAPI + URL-probe modes) sentinel.api_*
Multi-LLM (Anthropic / OpenAI / Google / Claude Code / Ollama) sentinel.llm
Mobile (React Native via Detox) planned for a future release

How it differs from existing tools

Playwright Codegen Pytest + Playwright Percy / Chromatic Sentinel
Generates tests from a URL partial (record/replay) ❌ ❌ ✅
Self-hosted ✅ ✅ ❌ ✅
Bring your own LLM n/a n/a n/a ✅
Visual regression ❌ ❌ ✅ ✅
Accessibility scan ❌ partial (plugin) ❌ ✅
Open source ✅ ✅ ❌ ✅

Sentinel is for teams who want test coverage without spending the engineering hours to author it. The trade-off is that AI-generated tests have failure modes hand-written tests do not (e.g. an LLM picks a fragile selector). The self-healing v0.1.0a2 feature is the answer to that.

Configuration

sentinel.yaml (after sentinel init):

version: 1

agent:
  provider: anthropic
  model: claude-opus-4-7
  temperature: 0.2

browser:
  headless: true
  viewport_width: 1280
  viewport_height: 720
  timeout_ms: 30000

visual:
  enabled: true
  baseline_dir: sentinel-baselines
  diff_threshold_percent: 0.5

a11y:
  enabled: true
  fail_on:
    - critical
    - serious

Architecture

   sentinel run <url>
          │
          ▼
   ┌──────────────┐
   │ explore page │  Playwright opens URL, grabs HTML + visible text
   └──────┬───────┘
          │
          ▼
   ┌──────────────┐
   │   planner    │  LLM produces TestPlan (2-5 scenarios, 3-8 steps each)
   └──────┬───────┘
          │
          ▼
   ┌──────────────┐
   │    runner    │  Fresh browser session per scenario
   │              │  Each step is one Playwright action
   │              │  screenshot steps → visual regression check
   │              │  a11y_scan steps → axe-core injection
   └──────┬───────┘
          │
          ▼
   ┌──────────────┐
   │ SentinelReport │  Scenarios + visual diffs + a11y violations + cost
   └──────────────┘

Roadmap

Version Status Highlights
v0.1.0a1 Shipped (2026-05-26) Web testing, visual regression, accessibility
v0.1.0a2 Planned Multi-page exploration, self-healing tests, API contract testing
v0.1.0a3 Planned Mobile (React Native via Detox or Maestro)
v0.2 Q4 2026 CI integration (GitHub Actions / GitLab CI / Bitbucket / Azure), parallel execution
v1.0 Mid-2027 Stable API, full coverage of web + API + mobile + visual + a11y, baselined

License

MIT. See LICENSE.

About

Built and maintained by ThinkNext Software Solutions, alongside our other open-source projects Cascade (meeting-to-PR) and Relay (issue-to-PR).

Follow along: @ThinkNextHQ · LinkedIn · Blog

Metadata

Release files for sentinel-agent 0.1.8

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for sentinel-agent 0.1.8
File Size Uploaded Provenance
sentinel_agent-0.1.8.tar.gz 60.9 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for sentinel-agent 0.1.8
File Interpreter ABI Platform
sentinel_agent-0.1.8-py3-none-any.whl Python 3 none any Details

Total release size: 123.2 kB

Release files / sentinel_agent-0.1.8.tar.gz

Download URL sentinel_agent-0.1.8.tar.gz
Size 60.9 kB
Tags Source
SHA-256 checksum
How to use checksums
3ac923b1c21788daec028d4a18118ba09392972a85c0ff6a0904611a3e8c1f4c
BLAKE2b-256 checksum
How to use checksums
aab959228e01a048bd73952161c68818342783b79f1d0af132690308e55736ce
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Release files / sentinel_agent-0.1.8-py3-none-any.whl

Download URL sentinel_agent-0.1.8-py3-none-any.whl
Size 62.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f920edc6461969d4c4f9789f403d9190648f53664cefba9f38a23a7411a64b07
BLAKE2b-256 checksum
How to use checksums
d1be251298e641a0e62bdc51642dbdbc63cb7d5c23a1a844db3af2e3354128d9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.15

Security for sentinel-agent 0.1.8

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page