Skip to main content

Starlight Part 1: From Browser Automation to a General Agent Platform

Why Starlight now separates domain agents from execution coordination, and how to run a verified mission without a model or browser.

4 min read
Starlight Part 1: From Browser Automation to a General Agent Platform
On this page

Revised for the September 5 platform refinement
These five articles now describe the general-purpose Node.js agent platform. The reviewed main-branch checkout identifies itself as 5.0.0-alpha.2; the wire protocol remains 1.0. The latest GitHub release is still the older v1.3.4. Use the reviewed checkout for these examples, rather than assuming the alpha has been published to a package registry.

Starlight began as an experiment in making browser automation recover from environmental obstacles. That exposed a more general problem: when several agents can perform work, who chooses an agent, bounds its execution, verifies the outcome, and explains what happened? The September refinement makes that coordination problem the center of the project.

The goal is an inspectable outcome

The current platform accepts goals and routes each step to a registered agent. An agent can work with code, data, APIs, a browser, a device, or a model. The platform does not supply a universal planner. Your agent owns the domain logic and tools; Starlight supplies the execution lifecycle around it.

ResponsibilityOwner
Planning and tool useYour domain agent
Agent selection and execution boundsStarlight platform
Business constraints and outcome checksAgent implementation and verifier
Mission steps, attempts, status, evidenceExecution report
Host permissions and resource isolationYour deployment environment

Start with a deterministic agent

A word counter is a useful first agent because success is easy to inspect. Run this CommonJS example in a project where the package built from the reviewed checkout is installed. It uses no model, browser, or external service.

javascript
const { AgentPlatform } = require('@starlight-protocol/starlight');
const platform = new AgentPlatform();

platform.register({
  name: 'word-counter',
  capabilities: ['text'],
  canHandle: intent => intent.goal === 'Count the words',
  run: async intent => {
    if (typeof intent.context.text !== 'string') {
      return { status: 'failed', error: 'context.text must be a string' };
    }
    const words = intent.context.text.match(/\S+/g) || [];
    return { status: 'completed', value: { words: words.length } };
  }
});

async function main() {
  const report = await platform.run({
    goal: 'Count the words',
    context: { text: 'Goals become observable results' }
  });
  console.log(report.status, report.steps[0].result?.value);
}
main().catch(console.error);

The expected word count is four. That small example establishes the important separation: the agent computes a result, and the platform records the outcome of its attempt. A readable goal alone does not make an arbitrary task executable.

Run the complete local proof

Use Node.js 22 or newer. The packaged data-report demo coordinates two agents: it totals three orders, writes a Markdown report, and reads the artifact back to verify a total of 5,500 cents. Each demo run uses a fresh output path.

bash
git clone https://github.com/starlight-protocol/starlight.git
cd starlight
git checkout f6ad2f1de72a14790b61f858155399af695f1b7a
npm ci
npm run demo

Inspect the generated artifact and final JSON report under .starlight/runs. The value of this example is the read-back check: successful file-writing code is less convincing than a verifier that opens the file and confirms its contents.

What changed from the browser-era articles

The old Mission Control launcher, Python Sentinel SDK, browser recorder, selector-healing examples, and speculative compliance levels no longer describe the supported tree. They remain part of Git history. The current reference implementation is JavaScript on Node.js, with an embeddable SDK, local CLI, and authenticated remote-agent protocol.

Choose a first mission you can verify

  • Keep the task small enough that a deterministic check can establish success.
  • Give the agent only the resources the task requires.
  • Record errors and uncertainty explicitly.
  • Add a second step only when it needs the verified result of the first.

Starlight is an alpha platform for trusted agents. It is useful when coordinating work and inspecting outcomes are already real requirements. A single short script may be easier to maintain without a platform.

Continue the series

Reviewed implementation and setup

September refinement changelog

Core protocol specification

Dhiraj Das

About the Author

Dhiraj Das is an Automation Consultant with over a decade of experience building systems that expose failures, reduce flakiness, and make complex workflows repeatable. He applies that discipline to AI-agent validation, LLM testing, and postmortems.

He shares small open source utilities from real automation work, including: 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: