Needle 2: a 14MB open agentic LLM runs on phones, wearables, robots
45M params, open-weight, 500 tok/s on a Raspberry Pi 5. Tool calls and structured extraction with no GPU — plus Upstage's agentic Solar Pro 4 lands.

Copy markdown
45M params, 28MB of RAM, no GPU
Cactus's Needle 2 is a 45M-parameter model that ships as a single 14MB binary and runs a full tool-calling session in about 28MB of RAM — no GPU, no NPU. `pip install cactus-needle` and the weights auto-download from Hugging Face, nothing to build.
500 tokens/sec on a Raspberry Pi 5
It decodes 500+ tok/s on a Raspberry Pi 5, 400–1,500 tok/s on a Meta Quest 3S or Vision Pro, and 300–700 tok/s on sub-$200 Android phones. Fast enough to sit inside a real-time device loop, not just a demo.
Build this weekend: a fully offline device agent
A byte-level grammar compiled from your JSON schemas forces valid tool calls, a retriever pins only the top-5 tools per turn, and LoRA fine-tunes merge into one deployable .cact file. Enough to wire an offline voice-or-sensor agent straight into a smart-home hub or robot.
The honest benchmark: it trails by inches
On Google's Mobile Actions benchmark Needle 2 scores 63.7%, just under LFM2.5's 69.1% and FunctionGemma's 64.0% — while being 5× to 70× smaller. You trade a few points of accuracy for a model that fits on a watch.
Elsewhere: Upstage's Solar Pro 4 finishes the job
Upstage shipped Solar Pro 4, an agentic API model with 512K context and 128K output at $0.30/$1.20 per 1M tokens (90% off through Sept 10). It scores 57 on Terminal-Bench v2.1 and is tuned to say it can't verify rather than hallucinate.