Downloads · 30 days
34
1% of all-time downloads
Tzafon/Northstar-CUA-Fast
Northstar-CUA-Fast is a image-text-to-text model from Tzafon. Use it for the image-text-to-text task on the model card, and read the license before you ship it in a product. It is set up for transformers. The card lists the license as apache-2.0.
A 4B-parameter computer-use agent model trained with GUI reinforcement learning. Recovers from mistakes, generalizes across environments, and outperforms open-source models at twice its size on single-app tasks.
Downloads · 30 days
34
1% of all-time downloads
All-time downloads
2.9K
Public
Parameters
4.8B
9.7 GB on disk
Likes
8
Public
Click a slice to open those files.
.safetensors9.7 GB · 100%
From the Hugging Face model README
A 4B-parameter computer-use agent model trained with GUI reinforcement learning. Recovers from mistakes, generalizes across environments, and outperforms open-source models at twice its size on single-app tasks.
Built for agentic loops where every step is a model call.
| Parameters | 4B |
| Context | 64K tokens |
| Training | GUI reinforcement learning |
| Input | Text + screenshot |
| Output | GUI actions (click, type, scroll, key, drag, ...) |
| Coordinates | 0-999 normalized (model) / pixel-scaled (Responses API) |
| Pricing | < $1/M tokens |
Supervised fine-tuning on GUI data saturates after 100-1000 examples per task and degrades other abilities. More critically, SFT improvements do not generalize: the model memorizes state-action pairs rather than learning why an action should be taken. Coordinate prediction under SFT also suffers because all incorrect coordinates are penalized uniformly, so clicking 1 pixel away from ground truth is treated the same as clicking on the opposite side of the screen.
Using a GRPO loss adapted for multi-modal inputs (built on prime-rl), Northstar CUA Fast was trained on synthetic GUI environments with bounding-box-based reward signals. Key findings:
Analysis of the vision encoder revealed that absolute positional information decays exponentially through attention layers due to normalization. Since 2D-RoPE only encodes relative position, the additive patch embedding (added once at input) is the sole source of absolute coordinate information, and it degrades with depth. Scaling the positional embedding by 3x improved click accuracy from 40% to 80% on a simple red-ball benchmark without any retraining.
Evaluated on OSWorld across 369 real-world desktop tasks.
| Domain | UI-TARS 2 | Qwen3 Flash | Northstar CUA Fast (4B) |
|---|---|---|---|
| Chrome | 62.96% | 56.43% | 55.30% |
| Thunderbird | 73.33% | 66.67% | 62.40% |
| LibreOffice Writer | 60.87% | 56.52% | 56.94% |
| OS | 41.67% | 54.17% | 46.26% |
| VLC | 49.94% | 34.41% | 43.87% |
| Overall | 53.1% | 41.6% | 37.01% |
At 4B parameters, Northstar CUA Fast is competitive with open-source models at twice its size on single-app tasks. Using the EVOCUA agent harness: EVOCUA-8B averages 32.5% vs Northstar CUA Fast (RL) at 37.0%.
For multi-step agentic tasks, per-step accuracy requirements scale harshly:
| Trajectory Length | 50% success | 80% success | 95% success |
|---|---|---|---|
| 1 | 0.50 | 0.80 | 0.95 |
| 4 | 0.84 | 0.95 | 0.99 |
| 16 | 0.96 | 0.99 | 1.00 |
| 32 | 0.98 | 0.99 | 1.00 |
Even with retry tolerance, the required per-step accuracy for long trajectories becomes impractical. The model's ability to recover from failures and handle out-of-distribution variation matters far more than raw single-step precision.
click · double_click · triple_click · right_click · drag · type · key · scroll · hscroll · navigate (browser only) · wait · terminate
pip install tzafon
import os
from tzafon import Lightcone
client = Lightcone(api_key=os.environ["TZAFON_API_KEY"])
response = client.responses.create(
model="tzafon.northstar-cua-fast",
instructions="Click on the Firefox icon.",
tools=[{
"type": "computer_use",
"display_width": 1024,
"display_height": 768,
"environment": "browser",
}],
)
print(response.output)
from openai import OpenAI
client = OpenAI(
api_key="your-api-key",
base_url="https://api.tzafon.ai/v1",
)
response = client.chat.completions.create(
model="tzafon.northstar-cua-fast",
messages=[
{"role": "user", "content": [
{"type": "image_url", "image_url": {"url": "data:image/png;base64,..."}},
{"type": "text", "text": "Click on the Firefox icon."},
]},
],
temperature=0,
max_tokens=512,
)
print(response.choices[0].message.content)
curl -X POST https://api.tzafon.ai/v1/responses \
-H "Authorization: Bearer $TZAFON_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "tzafon.northstar-cua-fast",
"instructions": "Click on the Firefox icon.",
"tools": [{"type": "computer_use", "display_width": 1024, "display_height": 768}]
}'
Lightcone wraps Northstar CUA Fast into a full desktop automation loop: screenshot, think, act, repeat.
screenshot → Northstar CUA Fast → parse action → execute on computer → repeat
Features: pure-async FastAPI server with SSE streaming, sliding-window context management, Rust-accelerated image processing, and an auto-discovering tool registry.
git clone https://github.com/tzafon/lightcone.git
cd lightcone
uv venv && uv sync --extra dev
uv run maturin develop -m native/Cargo.toml
export TZAFON_API_KEY="your-api-key"
lightcone run --task "Open Firefox and search for 'hello world'"
| Component | License | Status |
|---|---|---|
| Lightcone agent harness | Apache 2.0 | GitHub |
Python SDK (tzafon) | MIT | PyPI |
| Model weights | Apache 2.0 | Tzafon API |
@misc{tzafon2026northstarcuafast,
title={Northstar CUA Fast: Lightweight Computer-Use Agent Model},
author={Tzafon Team},
year={2026},
url={https://github.com/tzafon/lightcone},
}