Platform differences

It is the same product everywhere, but the runtimes genuinely differ. Native desktop builds bundle the built-in AI engines and add desktop-only surfaces; the web build downloads engines on demand; iPhone and iPad run only the built-in engines because of a hard WebView memory ceiling. Everything below is derived from one capability module in the application, not from marketing.

Capability matrix

WebWindowsmacOSiPhone & iPad
Built-in AI engines bundledNo — downloaded on demand, then cachedYesYesYes (built-ins only)
Heavy downloadable enginesCPU/fallback engines; full set when WebGPU is availableCPU/fallback engines; full set when WebGPU is availableCPU/fallback engines; full set when WebGPU is availableNo
Models page (switch / download / remove engines)YesYesYesNo
WebGPU accelerationWhere the browser exposes itWhere WebView2 exposes a working adapterWhere WKWebView exposes a working adapterNo
Custom ONNX model importYesYesYesNo
Text-prompt toolsYes; Grounding DINO needs WebGPUYes; Grounding DINO needs WebGPUYes; Grounding DINO needs WebGPUNo
Semantic search over the datasetYesYesYesNo
Annotation workflow, versions, quality, splits, historyYesYesYesYes
Works fully offlineOnce cachedYesYesYes
Local REST API for automationNoYesYesNo
Camera photo captureWith permissionWhere exposed by the WebViewWhere exposed by the WebViewWith permission
Screen captureWhen screen sharing is supportedWhen screen sharing is supportedNo — disabled in the native macOS appNo
Video file as capture sourcePlayable filesPlayable filesPlayable filesPlayable files
Network camera (RTSP / HTTP)NoYes — bundled FFmpegYes — bundled FFmpegNo
Watched image folderNot implementedNot implementedNot implementedNot implemented
Connected ML runnerLocal development origins only; hosted app blockedNative transportNative transportNo
Silent camera video recordingWhen MP4 or WebM is supportedWhen MP4 or WebM is supportedWhen MP4 or WebM is supportedWhen MP4 or WebM is supported · 128 MiB / 10 min
AI AssistantYes — your key, kept in this browserOpenAI/Claude API key or desktop Codex/Claude Code; OS credential store for API keysOpenAI/Claude API key or desktop Codex/Claude Code; OS credential store for API keysUnavailable on native iOS / Android
Media size ceilings4.7 GiB per image/video · 3 h video; decoding limits also apply4.7 GiB per image/video · 3 h video; decoding limits also apply4.7 GiB per image/video · 3 h video; decoding limits also apply32 MiB image · 128 MiB / 10 min video · 128 MiB archive; decoding limits also apply
Input modelMouse and keyboardMouse and keyboardMouse and keyboardTouch
Saving a produced fileBrowser downloadBrowser downloadBrowser downloadWritten to the app’s Documents folder
Project limitNoneNoneNoneNone
Paid upgradeNoneNoneNoneNone

These are file-size and duration ceilings, not a promise that any file below them will open. Decoded-pixel and memory limits, available image/video codecs, storage quota and archive-reader limits may be lower. Video timing must be readable within the probe limit and contain no more than 1,000,000 frames. AVIF depends on the browser or WebView decoder. AVI/MKV frame extraction requires the native desktop decoder; playback can still be unavailable.

Camera video support is probed at runtime rather than inferred from the platform name. AnnotateIt records without microphone audio and chooses a supported MP4 or WebM type; if the running browser or WebView exposes neither, Video is shown as unavailable while photo capture remains available.

All current builds are free. Mobile has a smaller feature envelope because of device and runtime limits; a purchase cannot enable unsupported features.

Why iPhone and iPad get fewer models

The mobile app runs inside a WebView with a hard per-process memory cap. A 250–380 MB model, plus the inference runtime, plus decoded images, exceeds it — and when it does the operating system kills the view without an error message. Rather than offer engines that would crash, the app caps the runnable model size well below that threshold, which admits the bundled built-ins and excludes the heavy downloads. WebGPU is also unavailable or unreliable there, and local storage quota is smaller.

What you keep on mobile: the full annotation workflow, the built-in Segment Anything engine, every project type, and the same dataset annotation formats. Media decoding still depends on the installed build and its codecs, and the smaller input and rendering limits apply.

What "offline" means for the web build

The first load downloads the application. The AI engines you choose download on first use and are then cached locally. After that, annotation runs on your device and losing the connection changes nothing about the work in progress. For a machine that must never touch a network, install a native build instead — the default engines ship inside it.

Things no build does

  • Train models inside the hosted web app. Fine-tuning requires the separate experimental desktop ML runner integration or your own training stack.
  • Server-side collaboration. There is no shared team queue, assignment or multi-user approval workflow on any platform; Pending AI Review is a local single-user queue.
  • Automatic object tracking. Video tracks are keyframes you place, interpolated in between — no tracker model follows the object for you.
  • Sync between devices. Move a project with an exported archive.

Which build to start with

Start with the web app — it is the same product and takes seconds with nothing to install. Move to a native build when you want the built-in engines bundled, fully offline sessions, store-managed updates, or the desktop-only surfaces.

See also

Video tutorial

AnnotateIt tutorial