Automation
AI
Test Automation
Starlight Part 5: Introducing the Starlight Protocol Specification v1.0.0

Starlight Part 5: Introducing the Starlight Protocol Specification v1.0.0

2 min read

Today, I'm excited to announce the release of the Starlight Protocol Specification v1.0.0β€”a formal, open standard for building self-healing browser automation systems. This isn't just another testing library. It's a protocolβ€”a contract that defines how autonomous agents coordinate to handle the chaos of modern web applications.

Starlight Protocol Logo

The official logo for the Starlight Protocol.

🚨

The Problem We're Solving

Every automation engineer knows this pain. The button is still there, your code is the sameβ€”but the environment changed.

Code
// Your test yesterday
await page.click('#submit-btn');  // βœ… Passed

// Your test today
await page.click('#submit-btn');  // ❌ Failed: Element blocked by cookie banner

Traditional frameworks force you to write defensive codeβ€”50 if-statements for every possible environmental obstacle. This is madness. Your test should express intent, not handle every possible environmental obstacle.

πŸ’‘

The Starlight Solution: Decoupling Intent from Environment

  • Pulse Sentinel: Monitors DOM/Network stability
  • Janitor Sentinel: Clears popups and modals
  • Vision Sentinel: AI-powered obstacle detection

Before every action, the Hub asks ALL Sentinels: 'Is the environment safe?' Only when they ALL agree does the action proceed.

πŸ“œ

Why a Protocol, Not Just a Library?

AspectLibraryProtocol
LanguageSingleAny
ExtensibilityFork/ChangeAdd Components
InteroperabilityLimitedUniversal
StandardizationNoneFormal Spec

By publishing Starlight as a protocol, we enable Hub implementations in any language, a community-built Sentinel ecosystem, and cross-platform compatibility.

πŸ“‹

What's in the Specification?

The spec defines everything needed to build a compliant implementation: message formats, 12 protocol methods, the handshake lifecycle, and three compliance levels.

Code
{
                "jsonrpc": "2.0",
                "method": "starlight.pre_check",
                "params": {
                    "command": { "cmd": "click", "selector": "#submit" }
                },
                "id": "msg-001"
            }
LevelRequirements
Level 1All core methods
Level 2+ Context, Entropy, Health
Level 3+ Semantic Goals, Self-Healing
🎯

Design Goals

  • Zero Configuration: Works out of the box with sensible defaults
  • Language Agnostic: Hubs and Sentinels can be built in any language
  • Composable: Add or remove Sentinels without changing your tests
πŸš€

Get Started

1
Read the Specification
2
Use the Reference Implementation
git clone https://github.com/starlight-protocol/starlight.git && npm install && node src/hub.js
3
Build Your Own Sentinel
Extend SentinelBase and implement your detection logic.
🌌

Join the Constellation

The stars in the constellation are many, but the intent is one. Contribute Hub implementations in Rust, Go, or Python. Share your community-built Sentinels. Let's build the future of autonomous browser agents together.

✨

Built with ❀️ by Dhiraj Das
GitHub: starlight-protocol/starlight

Dhiraj Das

About the Author

Dhiraj Das | Automation Consultant | 10+ years building automation systems that expose failures, reduce flakiness, and make complex workflows repeatable. He now applies that discipline independently to AI-agent validation, run replay, LLM testing, and postmortems.

Creator of many open-source tools solving what traditional automation can't: waitless (flaky tests), sb-stealth-wrapper (bot detection), selenium-teleport (state persistence), selenium-chatbot-test (AI chatbot testing), lumos-shadowdom (Shadow DOM), and visual-guard (visual regression).

Share this article: