Skip to content
NorthstarPlatformPricingLogin
Getting Started

How Lightcone Works

Northstar sees screens and acts on them. Here's how the pieces fit together.

Northstar is a vision-language model that operates computers. It takes a screenshot as input, decides the next action (click, type, scroll, navigate), and outputs structured coordinates. Lightcone provides the API to use Northstar and the cloud environments it operates in.

┌──────────────────────────────────────────────────────────┐
│ Your Code │
│ │
│ ┌──────────────┐ ┌──────────────┐ ┌───────────────┐ │
│ │ Tasks │ │ Responses API│ │ Computers │ │
│ │ (managed) │ │ (CUA) │ │ (low-level) │ │
│ └──────┬───────┘ └──────┬───────┘ └───────┬───────┘ │
└─────────┼─────────────────┼──────────────────┼───────────┘
│ │ │
▼ ▼ ▼
┌──────────────────────────────────────────────────────────┐
│ Lightcone API │
│ api.tzafon.ai │
├──────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ Northstar CUA Fast │ │
│ │ screenshot in → structured action out │ │
│ └─────────────────────────────────────────────────┘ │
│ │
│ ┌─────────────┐ ┌─────────────┐ ┌─────────────┐ │
│ │ Desktop │ │ Desktop │ │ Browser │ ... │
│ │ environment │ │ environment │ │ environment │ │
│ └─────────────┘ └─────────────┘ └─────────────┘ │
│ │
│ Isolated containers · Lightcone OS │
└──────────────────────────────────────────────────────────┘

You describe what needs to be done. Northstar operates a computer from start to finish — opening apps, navigating, typing, reading the screen, making decisions.

for event in client.agent.tasks.start_stream(
instruction="Open LibreOffice Calc, create a budget spreadsheet with categories for rent, food, and transport",
kind="desktop",
):
print(event)

Best for: work that’s easy to describe but tedious to script — filling forms, navigating multi-app workflows, research, data collection.

Learn more →

You build a computer-use loop: Northstar looks at a screenshot, tells you what action to perform, you execute it, and feed back the new screenshot. You control the loop and can inject custom logic between steps.

response = client.responses.create(
model="tzafon.northstar-cua-fast",
input="Open the terminal and check disk usage",
tools=[{"type": "computer_use", "environment": "desktop"}],
)
# Execute the action, screenshot, send back, repeat

Best for: custom workflows where you need to validate results, branch on conditions, or integrate with other systems between steps.

Learn more →

3. Computers API — direct control (no model)

Section titled “3. Computers API — direct control (no model)”

You send individual actions to a cloud computer: click, type, navigate, screenshot, shell commands. No model involved — you decide what to do at every step.

with client.computer.create(kind="desktop") as computer:
client.computers.exec.sync(computer.id, command="firefox https://example.com &")
computer.wait(3)
computer.click(400, 300)
computer.type("hello")
result = computer.screenshot()

Best for: programmatic automation, testing, and any workflow where you know exactly what steps to take.

Learn more →

ModelPurposeTraining
tzafon.northstar-cua-fastComputer use — sees screenshots, outputs GUI actionsGUI reinforcement learning
tzafon.northstar-cua-fast-1.2Computer use — sees screenshots, outputs GUI actionsGUI reinforcement learning
tzafon.sm-1Low-level Rust programming

Northstar CUA Fast is optimized for speed and cost ($1/M input, $5/M output). It recovers from mistakes, generalizes across desktop environments, and is competitive with open-source models at twice its size.

Both models are available through the Responses API and Chat Completions API. Tasks use northstar-cua-fast by default.

Northstar outputs GUI actions in a normalized 0–999 coordinate grid(0,0) is the top-left of the screen, (999,999) is the bottom-right. Coordinates always come back in this 0–999 space; your code converts them to pixels using int(coord / 1000 * display_dim) before passing to click() or other methods.

See Coordinates for the full guide, including scaling formulas, visual examples, and which API to use.

Already using the OpenAI SDK? Northstar works as a drop-in — just change the base URL and model name:

from openai import OpenAI
client = OpenAI(
base_url="https://api.tzafon.ai/v1",
api_key="sk_your_api_key_here",
)
response = client.chat.completions.create(
model="tzafon.northstar-cua-fast",
messages=[{"role": "user", "content": "What is reinforcement learning?"}],
)
import OpenAI from "openai";
const client = new OpenAI({
baseURL: "https://api.tzafon.ai/v1",
apiKey: "sk_your_api_key_here",
});
const response = await client.chat.completions.create({
model: "tzafon.northstar-cua-fast",
messages: [{ role: "user", content: "What is reinforcement learning?" }],
});

Streaming, tool calling, and structured outputs are all supported. See Chat Completions for the full reference.

When Northstar operates a computer, it runs inside an isolated cloud environment powered by Lightcone OS — a minimal desktop runtime optimized for AI operation. You can choose:

  • Desktop (kind: "desktop") — full Linux desktop. Northstar can use any native application.
  • Browser (kind: "browser") — Chromium in the foreground, with stealth mode and proxy support for web-focused tasks.

Environments are fully isolated from each other — separate filesystem, network stack, and display. They spin up in seconds and are destroyed when you’re done.

  • Quickstart — get Northstar running a task in 5 minutes
  • Tasks — the simplest way to use Northstar
  • Responses API — build your own computer-use loop
  • Integrations — connect to LangChain, Playwright, and more