Skip to content
NorthstarPlatformPricingLogin
Environments

Lightcone OS

The desktop runtime that Northstar operates in. Optimized for AI-driven computer use.

When Northstar operates a computer, it runs inside Lightcone OS — a minimal Linux desktop runtime tuned for AI operation. Consistent rendering, fast boot, pre-installed tools, and a display pipeline optimized for Northstar’s vision model.

You don’t need to think about Lightcone OS to use Northstar — it’s the default environment for every computer. This page covers what’s inside it for cases where you need to install software, customize the environment, or understand what Northstar is looking at.

Every Lightcone OS instance comes with:

  • Web browser — Chromium with stealth mode and anti-detection
  • Terminal — full shell with bash, python3, node, curl, git, and standard Unix tools
  • Package managerapt-get for installing additional software
  • File system — isolated per computer, writable, with standard Linux paths
  • Display server — X11 with consistent viewport configuration
  • Network stack — full internet access, optional residential proxy routing

Computer-use models work by looking at screenshots. The quality of Northstar’s decisions depends on the visual environment being legible and predictable. Stock Linux desktops introduce variability — different themes, fonts, icon sets, display scaling — that degrades model performance.

Lightcone OS removes that variability: deterministic fonts, DPI, and color profiles across every instance. Northstar produces more reliable actions when the environment is consistent.

Since it’s a full Linux environment, install anything:

with client.computer.create(kind="desktop") as computer:
client.computers.exec.sync(computer.id, command="apt-get install -y libreoffice")
client.computers.exec.sync(computer.id, command="libreoffice --calc &")
computer.wait(3)
result = computer.screenshot()
await client.computers.exec.sync(computer.id!, {
command: "apt-get install -y libreoffice",
});
await client.computers.exec.sync(computer.id!, {
command: "libreoffice --calc &",
});

Use persistent state to save installed software across sessions so you don’t reinstall every time.

Configure the viewport when creating a computer:

with client.computer.create(
kind="desktop",
display={"width": 1920, "height": 1080, "scale": 1.0},
) as computer:
pass
const computer = await client.computers.create({
kind: "desktop",
display: { width: 1920, height: 1080, scale: 1.0 },
});

The default is 1280x720, which works well for most tasks and keeps screenshot sizes manageable for Northstar’s inference.