Benchmarks are supposed to settle arguments, yet they often spark new ones—especially when real-world workflows don’t behave like leaderboard tasks. A new head-to-head from the team behind Buoy’s developer assistant, Ask Buoy, pits Claude Haiku 5.5 against GPT-6 Luna inside a real iOS simulator environment. The desktop-centric chart says Haiku 5.5 leads by a wide margin. On mobile app work, this controlled trial found something else: a near tie, with meaningful trade-offs that engineering teams can actually use.
Snapshot of the findings
- Anthropic’s OSWorld 2.1 chart reportedly shows Haiku 5.5 beating GPT-6 Luna by 23.5 points on desktop computer-use tasks.
- Buoy tested both models inside
Ask Buoyon mobile app development: 256 jobs against the same iOS food-ordering test app, both at default settings. - A job only counted if the app itself displayed the expected result inside the iOS Simulator.
- Jobs done right: Haiku 93.8%, Luna 94.1% (essentially a tie).
- First answer latency: Haiku 1.6 s, Luna 2.9 s (Haiku responds faster).
- Median job completion time: Haiku 20.9 s, Luna 27.9 s (Haiku finishes faster overall).
- Cost per job (list price): Haiku 0.62¢, Luna 0.44¢ (Luna is about 29% cheaper for this workload).
- Strengths by area: Haiku did best on long bug stories (94 vs 88 over 56 jobs). Luna led on web calls, saved data, location, and undo actions.
- Fair notes: each job ran once; Buoy authored the tasks; models ran at different times; costs reflect list-price token accounting. Readers are encouraged to test on their own apps.
- Full area scores: buoy.gg/blog/claude-haiku-5-5-vs-gpt-6-luna.
Key takeaway: On 256 mobile-focused jobs, Haiku 5.5 and GPT-6 Luna landed in a practical tie—Haiku won on speed, Luna won on cost.
Why this matters for engineers
Desktop-style benchmarks reward text reasoning, tool-use precision, and mouse/keyboard orchestration. Mobile app development adds a different kind of friction: simulator quirks, asynchronous APIs, UI state, network flakiness, and platform-specific conventions. In other words, it’s a great stress test for real developer copilot behavior.
For teams deciding how to wire an AI into their mobile toolchain—code suggestions, UI automation, API wiring, or bug triage—the Buoy trial highlights a practical calculus: do you optimize for latency, success rate, or cost? In this experiment, there’s no single winner. Instead, the right answer seems to depend on what the task actually is.
How the test was set up
- Environment: iOS Simulators, same food-ordering test app, identical set of 256 jobs.
- Interface: Both models ran inside the same
Ask Buoydeveloper assistant. - Counting rules: A job only counted as correct if the result appeared in the app’s UI—no subjective scoring.
- Settings: Default model settings; each job ran once per model.
- Timing and costs: Models ran at different times; costs are estimated from token usage at list prices.
This is more “system test” than unit test. It measures end-to-end outcomes—how quickly the model responds, whether it finishes the job, and what it costs to get there.
The numbers, decoded
Two signals are immediately useful for teams wiring models into developer tooling:
- Speed: Haiku was consistently quicker—both to first token and to median job completion. That matters when the model is in your main loop (e.g., code suggestions or tight iteration cycles).
- Cost: Luna was about 29% cheaper per completed job. For high-volume automation—like CI assistance, regression triage, or bulk refactors—cost-per-outcome can dominate TCO.
The nuanced part is capability clustering:
- Long bug stories: Haiku led (94 vs 88 on 56 jobs), suggesting strong performance when sustained reasoning across multiple steps is needed.
- Web calls, saved data, location, undo: Luna led, hinting it may handle IO-bound or stateful tasks with steadier tool-use fidelity.
Design implication: Route long-form debugging and narrative reasoning to Haiku; send networked, stateful, or undo-heavy steps to Luna.
Turning results into a practical architecture
One clear pattern for developer tools is a lightweight router that picks the model based on task profile:
- Latency-sensitive loops (snippets, quick UI edits): favor Haiku for the sub-30-second end-to-end speed.
- Stateful operations (web calls, DB writes, location handling, undo sequences): bias toward Luna for reliability and lower cost.
- Long bug narratives: route to Haiku given its edge on extended troubleshooting.
An example of a simple policy sketch:
if task.type in {"web_call", "saved_data", "location", "undo"}: use("luna")
elif task.type == "bug_story" and task.length > THRESH: use("haiku")
elif task.latency_budget <= 2.0: use("haiku")
else: use(cheapest_that_meets_SLA)
In production, teams might add confidence estimators, retry budgets, or even hybrid strategies: draft with Luna for cost, verify or finalize with Haiku for reliability. If orchestration is your game, frameworks like TensorFlow or PyTorch won’t build the agent for you, but your data and evaluation pipelines can live alongside model routing and feedback loops. Many teams also use Hugging Face datasets or evaluation harnesses to standardize prompts and log metrics across runs.
How to replicate this on your app
- Pick representative jobs: CRUD flows, network calls, schema changes, geolocation prompts, undo/redo, and a few gnarly bug stories.
- Automate the harness: Drive the simulator with the same scripts for both models. Only count success if the UI reflects it. Consider ⌘R rebuilds as boundaries.
- Measure three things: time to first response, median job completion time, and cost per job (tokens × list price).
- Run multiple seeds: The Buoy test ran once per job; your CI might run 3–5 times to smooth variance.
- Log the deltas: Where does each model fail? Tool invocation? Parameter formatting? UI timing? These details inform routing rules.
When you publish internal results, include caveats—the Buoy team notes that authoring the jobs can inadvertently shape difficulty or style. That transparency helps others interpret your findings.
Why a desktop win may not translate to mobile
If the OSWorld 2.1 chart shows a big desktop advantage for Haiku, why does that largely vanish on iOS simulator work?
- Different error surfaces: Desktop tool-use may lean into window manipulation and filesystem actions. Mobile tasks frequently hinge on UI state, asynchronous handlers, and tighter API contracts.
- Latency stakes: On-device development loops reward snappy response more than top-1 accuracy at arbitrary depth. A model that’s 1–2 seconds faster can keep a developer in flow—especially for short, serial tasks.
- State management: Handling saved data, location permissions, and undo chains stresses consistency. A model slightly better at parameter discipline or retry logic can outperform a more generally capable peer on these tasks.
In other words, category-specific ability can overwhelm general leaderboard gaps. That’s useful news for teams who care about outcomes rather than trophies.
A quick note on costs and deployment strategy
At scale, even fractions of a cent matter. Luna’s 0.44¢ vs Haiku’s 0.62¢ per job suggests switching to a cost-first strategy for predictable, low-variance tasks. Keep a latency escape hatch for speed-critical or reasoning-heavy work where Haiku’s faster first answer and quicker median completion time help developers stay in flow.
If GPU-bound inference or on-prem acceleration is in scope, the general ecosystem—from CUDA kernels to model-serving stacks—can reframe the economics. But for many teams using hosted APIs, the list-price calculus Buoy used is a straightforward starting point.
Developer scenarios worth testing
- Schema drift and migrations: When the backend evolves, which model more reliably updates client models, migrations, and UI bindings in one pass?
- Network flake handling: For retry policies and exponential backoff, does Luna’s web-call edge reduce failure loops?
- Complex bug narratives: Multi-hop bugs spanning view models, caching, and permission prompts may favor Haiku’s strong long-form reasoning.
- Undo/redo and optimistic UI: If the app relies on optimistic updates and rollbacks, measure which model better preserves state integrity across steps.
Reality check and where to go next
Per Buoy’s own caveats: each job was run once; the test makers wrote the jobs; models ran at different times; and costs reflect list prices. That said, the methodology—counting only what the app visibly does—is refreshingly concrete.
At AI Tech Inspire, this is the kind of angle that’s worth attention: a reminder that category-specific evaluations can overturn broad expectations. The conclusion isn’t that one model is universally superior. It’s that teams should shape their stack around task-aware selection and observable outcomes.
Action item: Run your own 50–250 job shootout inside your simulator, log end-to-end outcomes, and let the numbers pick your default—and your exceptions.
For the curious, the full breakdown with area scores is available here: buoy.gg/blog/claude-haiku-5-5-vs-gpt-6-luna. Whether you’re building your own assistant or plugging one into Xcode, these findings are a nudge to benchmark where it counts: inside your app, against your workflows.
One last note for routing logic: if you already use GPT-family models elsewhere, consider interoperability details—function-calling schemas, token limits, and safety rails. Consistency across tools often beats any single-model edge.
Bottom line: for mobile dev tasks today, Haiku 5.5 and GPT-6 Luna look like strong co-stars—with Haiku owning speed-sensitive loops and Luna stretching your budget on IO-heavy sequences. That’s not a tie to shrug at. That’s a blueprint to ship faster.
Recommended Resources
As an Amazon Associate, I earn from qualifying purchases.