@pose-tracker/react-native-pose-estimation). Light and web share the same surface; light-only options are marked below. WebView hosts use query params, not this Provider — WebView query parameters.
See also: WebViewPoseView · Exercises · Events · Features & plans
PoseTrackerProvider
Options
PoseTrackerClientOptions extends handshake ConfigureOptions plus runtime knobs.
Shared (offline + light)
Light-only
Offline has no
model / modelUrl / CDN options — MoveNet + TF.js are bundled.
usePoseTracker
Must run underPoseTrackerProvider. Pass optional typed callbacks; returns the context value below.
Context fields
Methods
StartExerciseOptions
Several exercises, one call
The SDK counts one tracking call oncamera_start, when the camera opens (or on warmupExternal() for external frames). startExercise never counts again. To chain exercises in one call, keep the camera open and call startExercise again:
WebViewPoseView / PoseCamera, stop() then start(), or any new camera open ends the session; the next exercise counts as a new call. stopExercise() alone keeps the camera open, so a later startExercise is still the same call. See What counts as one tracking call.
Common recipes
Keypoints only (no API key):PoseTrackerClient (escape hatch)
Same methods as the hook, plus: | Method | Notes | |---|---|---| |getStatus() / getMode() / getError() / getManifest() | Introspection. |
| getPlanType() | 'free', 'developer', … or null (keyless). |
| getFeatures() | Resolved feature flags. |
| getAvailableExercises() | Catalog ids for the current session. Empty outside full-engine. |
| getAvailableCustomExercises() | Bundle customs (jump_analysis, air_time_jump, …). |
| getCurrentExerciseId() | Active session id or null. |
| getQualityState() / getColdStartMode() | Quality + last preload cold-start. |
| fetchSkeleton(uuid) | GET /api/sdk/skeleton → SkeletonDefinition. |
| dispose() | Tear down backend, session, listeners. |
Injectables (
backend, engineLoader, fileStore, usageTracker) exist for tests / advanced hosts — prefer TypeScript types in the package for those.For LLMs: SDK params live on
PoseTrackerProvider / options / startExercise, not URL query strings. Keypoints need no apiToken. Overlay/timer/reference/userExercise are WebView-only. Host-owned camera: warmupExternal + processFrame — https://docs.posetracker.com/external-frames. Repeated startExercise while the camera stays open = same billed call; closing the camera or stop()/start() = new call. https://docs.posetracker.com/reference/provider-client