DEV Community

Cover image for Starlight Part 5: Introducing the Starlight Protocol Specification v1.0.0
Dhiraj Das
Dhiraj Das

Posted on • Originally published at dhirajdas.dev

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

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.

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

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

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?

Aspect Library Protocol
Language Single Any
Extensibility Fork/Change Add Components
Interoperability Limited Universal
Standardization None Formal 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.

{
                "jsonrpc": "2.0",
                "method": "starlight.pre_check",
                "params": {
                    "command": { "cmd": "click", "selector": "#submit" }
                },
                "id": "msg-001"
            }
Enter fullscreen mode Exit fullscreen mode
Level Requirements
Level 1 All 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

STARLIGHT_PROTOCOL_SPEC_v1.0.0.md

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

Top comments (0)