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.
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.
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.
git clone https://github.com/starlight-protocol/starlight.git
cd starlight
git checkout f6ad2f1de72a14790b61f858155399af695f1b7a
npm ci
npm run demoInspect 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
- Starlight Part 2: Reading Execution Evidence Instead of Trusting a Green Badge
- Starlight Part 3: Bounded Missions, Cancellation, and Safe Retry Decisions
- Starlight Part 4: Building a Domain Agent with an Explicit Contract
- Starlight Part 5: The Core Protocol and Authenticated Remote Agents
Reviewed implementation and setup

