Works with React, Vue, Angular, Blazor & more

UI Testing That
AI Agents Love

Visual marker-based testing that uses 90% fewer tokens than DOM selectors. Works with any web framework. No config files.

$ dotnet tool install -g Sigil.Executor
90%
Less token consumption
10x
Faster test creation
0
Brittle CSS selectors

How Sigil Works

Add marker IDs to your UI, reference them in tests. That's it.

1

Add Markers

Add sig attribute to your UI elements

<button sig="submit">
<input sig="email">
2

Write Tests

Reference marker IDs in simple test scripts

type email "user@test.com"
click submit
3

Run Anywhere

Works with any framework out of the box

sigil run test.sigil
-a "http://localhost:3000"

Sigil vs Traditional Tools

Same test, dramatically different complexity

Playwright / Cypress
// playwright.config.ts, fixtures, page objects...
test('user can login', async ({ page }) => {
  await page.goto('http://localhost:3000');
  await page.locator('[data-testid="email"]').fill('user@test.com');
  await page.locator('[data-testid="password"]').fill('secret123');
  await page.locator('button[type="submit"]').click();
  await expect(page.locator('.dashboard')).toBeVisible();
});
Sigil
# login-test.sigil
type email "user@test.com"
type password "secret123"
click submit
wait dashboard 3000

# Run: sigil run login-test.sigil -a "http://localhost:3000"

Built for AI Coding Agents

Traditional UI testing floods LLM context with DOM noise. Vision-based approaches burn thousands of tokens on screenshots. Sigil was designed from the ground up for AI-assisted development, using semantic markers that fit in a single line.

  • Works seamlessly with Claude Code, Cursor, and other AI tools
  • No screenshot analysis—zero vision tokens consumed
  • Markers are self-documenting—no selector explanation needed
  • Tests can be generated, modified, and debugged by AI
  • Compact syntax minimizes context window usage
  • Stable IDs survive UI refactoring and redesigns
Other Approaches
Sigil Markers
Screenshot + Vision API
~1,500 tokens per image
click login-btn
3 tokens
document.querySelector('.MuiButton-root.MuiButton-contained')
click submit-form
await page.$('[data-testid="user-menu"] > div:nth-child(2)')
click user-settings

Simple, Stable, Framework-Agnostic

Add marker IDs to your elements, reference them in tests

1. Add sig attribute to your elements
<!-- Works with any framework -->
<button sig="checkout">
  Submit Order
</button>

<input sig="email" type="email" />
<input sig="password" type="password" />

<!-- Also supports data-testid and data-sigil-id -->
2. Write tests using those IDs
# checkout-test.sigil
type email "test@example.com"
type password "secret123"
click checkout
wait confirmation 5000

# Run (script injection is automatic)
sigil run checkout-test.sigil \
  -a "http://localhost:3000"

Sigil automatically injects the marker detection script via CDP—no npm package needed. Works with React, Vue, Angular, Blazor, Svelte, and vanilla HTML.

Why Teams Choose Sigil

Modern UI testing for modern development workflows

Minimal Token Consumption

Sigil's semantic markers use a fraction of the tokens compared to DOM selectors. Your AI assistant can understand and write more tests in a single context window.

~90% fewer tokens per test
🔄

Re-deployable Tests

Tests are decoupled from your DOM structure. Refactor your UI, change frameworks, redesign completely—your tests stay the same.

Zero maintenance on UI changes
📈

Scales Infinitely

Run tests in parallel across multiple viewports simultaneously. From mobile to desktop, test all variations at once.

Parallel multi-viewport execution
🖥️

Headless & CI/CD Ready

Run in headless Chrome for CI/CD pipelines. No display server needed, works in containers, GitHub Actions, and any CI environment.

--headless flag for CI

Get Started in 60 Seconds

Installation & First Test
# Install the CLI (requires .NET 8+)
dotnet tool install -g Sigil.Executor

# Add sig attributes to your HTML
<button sig="login">Login</button>
<input sig="email" type="email" />

# Create test.sigil
type email "user@test.com"
click login
wait dashboard 3000

# Run
sigil run test.sigil -a "http://localhost:3000"

Ready to Transform Your Testing?

Start with 100 free runs. No credit card required.

Get Started Free