Release2026-10-21

Opposable released an Android app running GUI-Owl 2B on-device. The model controls other apps without a server. One step takes 7.3 s on a laptop CPU. Its vision encoder runs in 236 ms on a Galaxy S25 NPU. The encoder previously took 3.9 s on the same CPU. The model is quantised to 4 bits and uses 1.05 GB for the language model. It uses 445 MB for the vision encoder. Both stay in memory between steps. The app crops screenshots to reduce tokens by 25-40%. This improves accuracy from 27 to 28 of 36 graded screens. The app taps elements directly when the model’s intent matches one on screen. The NPU encoder passes a self-test with cosine similarity above 0.99. The first NPU load takes 72 s to prepare the graph.

What changed

GUI-Owl required a connected cloud model to operate Android apps.

What it unlocks

Running a 2B model entirely on-device to control Android apps without a server.

  • 2B parameters
  • 7.3 s per step on M2 CPU
  • 236 ms vision encoder on Galaxy S25 NPU
  • 3.9 s vision encoder on M2 CPU

What you need to act on it

  • an Android phone with Snapdragon 8 Elite NPU for full NPU acceleration
  • 1.5 GB download for the screen model

Send this to someone who needs it

Shares the story and its sources. Nothing about you.

What does this mean for your job?

This is the story as everyone gets it. Once a week we send you the version written for your role — what changed, why it matters for the work you actually do, and one thing to try. Free while we tune it.