# SmartSpectra documentation > SmartSpectra SDK developer docs for v3.4.0, the latest stable release. Measure pulse, breathing and more from camera video on iOS, Android, desktop C++ and Node.js. Every page is Markdown. The SmartSpectra SDK is for general wellness use; only SmartSpectra Vital Signs Monitor 1.0 is FDA-cleared. ## Start here - [SmartSpectra SDK](https://presagetech.com/docs/smartspectra-sdk/index.md): Build contactless vital signs into your app. Explore SmartSpectra quick starts, API references, measurement guides, and developer tools. - [Getting a Good Measurement](https://presagetech.com/docs/smartspectra-sdk/measurement-quality.md): Camera setup, lighting and positioning for accurate SmartSpectra readings, plus how to surface the SDK's live validation feedback to users. - [SmartSpectra Metrics Payload Data Types](https://presagetech.com/docs/smartspectra-sdk/data-types.md): The language-agnostic SmartSpectra metrics payload — every message, enum, and field the SDK emits. - [Model Cards and Limitations](https://presagetech.com/docs/smartspectra-sdk/model-cards-and-limitations.md): Model cards, operating ranges, and known limitations for SmartSpectra SDK metrics. - [SDK Telemetry & Privacy](https://presagetech.com/docs/smartspectra-sdk/telemetry-and-privacy.md): What the SmartSpectra SDK's aggregate, opt-out session telemetry collects, how to disable it, and the privacy guarantees behind it. - [Using the AI agent skill](https://presagetech.com/docs/smartspectra-sdk/agent-skill.md): Install the using-smartspectra agent skill in Claude Code or Codex, and build pulse and breathing apps with an AI coding assistant. - [SmartSpectra MCP Server](https://presagetech.com/docs/smartspectra-sdk/mcp-server.md): Connect an AI assistant to your SmartSpectra account with the hosted MCP server: manage API keys, register apps, check plan usage, and search these docs. - [Headless Testing in CI Overview](https://presagetech.com/docs/smartspectra-sdk/headless-testing-in-ci.md): Run a SmartSpectra sample headlessly in a CI pipeline — feed a recorded video for automated measurement, or smoke-test that the SDK builds and starts. - [LLM Insights Overview](https://presagetech.com/docs/smartspectra-sdk/llm-insights.md): Conceptual overview, common API interface, required configuration, and privacy notice for the SmartSpectra LLM Insights feature. - [Redistribute on Linux](https://presagetech.com/docs/smartspectra-sdk/redistribute-smartspectra-on-linux.md): Bundle the SmartSpectra Linux C++ SDK tarball into your own .deb so end users install your app on stock Ubuntu without a Presage apt source. - [Troubleshooting LLM Insights Errors](https://presagetech.com/docs/smartspectra-sdk/llm-insights/troubleshooting.md): The two LLM Insights error surfaces, common failure modes, retry guidance, and how to surface errors in your UI. - [Writing Effective Prompts](https://presagetech.com/docs/smartspectra-sdk/llm-insights/writing-prompts.md): What data an LLM Insights prompt can rely on, effective vs. ineffective prompt patterns, and the caveats that shape a good prompt. ## iOS · Swift - [Swift Quick Start](https://presagetech.com/docs/smartspectra-sdk/swift.md): Measure pulse and breathing from the iPhone camera or custom AVFoundation, CVPixelBuffer, and CMSampleBuffer input with the SmartSpectra Swift SDK. Requires iOS 17 or later. - [Option 1: API Key on Swift](https://presagetech.com/docs/smartspectra-sdk/swift/option-1-api-key.md): The fastest SmartSpectra Swift setup: add the package, drop in an API key, and run a first pulse and breathing measurement on device. - [Option 2: OAuth on Swift](https://presagetech.com/docs/smartspectra-sdk/swift/option-2-oauth.md): Set up SmartSpectra on iOS with OAuth instead of a hard-coded API key: register the app, add PresageService-Info.plist, and verify it works. - [Configuring Metrics on Swift](https://presagetech.com/docs/smartspectra-sdk/swift/metrics.md): Request pulse and breathing rates, HRV and EDA metrics from the SmartSpectra Swift SDK, and read published results. - [Swift API Reference](https://presagetech.com/docs/smartspectra-sdk/swift/api-reference.md): API reference for the SmartSpectra Swift SDK — observable state, lifecycle methods, metrics, and error codes. - [Headless Mode on Swift](https://presagetech.com/docs/smartspectra-sdk/swift/headless-mode.md): Use SmartSpectra with your own iOS UI, AVFoundation camera, CVPixelBuffer, or CMSampleBuffer video input. - [Headless Testing in CI on iOS](https://presagetech.com/docs/smartspectra-sdk/swift/headless-testing-in-ci.md): Test SmartSpectra on the iOS Simulator with public custom input, decoded CVPixelBuffer or CMSampleBuffer frames, or testing-only video playback. - [LLM Insights on Swift](https://presagetech.com/docs/smartspectra-sdk/swift/llm-insights.md): Ask natural-language questions about a measurement and receive LLM Insights through the SmartSpectra Swift SDK, alongside the metrics stream. - [Swift Troubleshooting](https://presagetech.com/docs/smartspectra-sdk/swift/troubleshooting.md): Troubleshoot SmartSpectra Swift setup, camera permissions, custom input frame rejections, timestamps, and iOS Simulator measurements. - [Swift Migration Guide](https://presagetech.com/docs/smartspectra-sdk/swift/migration-guide.md): Migrate the SmartSpectra Swift SDK to typed camera selection, public custom video input, specific usage errors, and other release-by-release API changes. - [Use Case Examples](https://presagetech.com/docs/smartspectra-sdk/swift/use-case-examples.md): SmartSpectra Swift examples for metrics, face landmarks, custom camera and decoded video input, data export, and iOS UI state. ## Android · Kotlin - [Android Quick Start](https://presagetech.com/docs/smartspectra-sdk/android.md): Measure pulse and breathing from the Android camera or caller-supplied frames with the SmartSpectra Android SDK. Kotlin, minSdk 28; install, authenticate, and run. - [Option 1: API Key on Android](https://presagetech.com/docs/smartspectra-sdk/android/option-1-api-key.md): The fastest SmartSpectra Android setup: add the Gradle dependency, drop in an API key, and run a first measurement on a phone. - [Option 2: OAuth on Android](https://presagetech.com/docs/smartspectra-sdk/android/option-2-oauth.md): SmartSpectra Android setup using OAuth instead of a hard-coded API key. - [Configuring Metrics on Android](https://presagetech.com/docs/smartspectra-sdk/android/metrics.md): Request pulse and breathing rates, HRV and EDA metrics from the SmartSpectra Android SDK, and read LiveData results. - [Android API Reference](https://presagetech.com/docs/smartspectra-sdk/android/api-reference.md): API reference for the SmartSpectra Android SDK — Kotlin types, lifecycle methods, metrics, and error codes. - [Headless Mode on Android](https://presagetech.com/docs/smartspectra-sdk/android/headless-mode.md): Use SmartSpectra Android lifecycle and metrics LiveData with your own UI, or submit custom camera frames through direct buffers, Bitmap, and CameraX ImageProxy. - [Headless Testing in CI on Android](https://presagetech.com/docs/smartspectra-sdk/android/headless-testing-in-ci.md): Run a full SmartSpectra measurement on an Android emulator in CI by feeding a recorded video, or smoke-test that the SDK builds and initializes. - [LLM Insights on Android](https://presagetech.com/docs/smartspectra-sdk/android/llm-insights.md): Ask natural-language questions about a measurement and receive LLM Insights through the SmartSpectra Android SDK, alongside the metrics stream. - [Android Troubleshooting](https://presagetech.com/docs/smartspectra-sdk/android/troubleshooting.md): Solutions to common build, runtime, and integration issues with the SmartSpectra Android SDK. - [Android Migration Guide](https://presagetech.com/docs/smartspectra-sdk/android/migration-guide.md): Migrate the SmartSpectra Android SDK to typed camera selection, public custom video input, specific usage errors, and other release-by-release API changes. ## Desktop · C++ - [Get Started with the SmartSpectra C++ SDK](https://presagetech.com/docs/smartspectra-sdk/cpp.md): Measure pulse and breathing from a camera or video file with the SmartSpectra C++ SDK on Linux, macOS, and Windows. C++20 and CMake. - [Configuring Metrics on C++](https://presagetech.com/docs/smartspectra-sdk/cpp/metrics.md): Request pulse and breathing rates, HRV and EDA metrics from the SmartSpectra C++ SDK, and read callback results. - [C++ API Reference](https://presagetech.com/docs/smartspectra-sdk/cpp/api-reference.md): API reference for the SmartSpectra C++ SDK — the SmartSpectra class, callbacks, builders, metrics, and error codes. - [Headless Mode on C++](https://presagetech.com/docs/smartspectra-sdk/cpp/headless-mode.md): The SmartSpectra C++ SDK is headless by default — wire up metric and frame callbacks for custom integrations. - [LLM Insights on C++](https://presagetech.com/docs/smartspectra-sdk/cpp/llm-insights.md): Ask natural-language questions about a measurement and receive LLM Insights through the SmartSpectra C++ SDK, alongside the metrics stream. - [C++ Migration Guide](https://presagetech.com/docs/smartspectra-sdk/cpp/migration-guide.md): Migrate the SmartSpectra C++ SDK to C++20, typed camera selection, specific usage errors, and other release-by-release API changes. - [C++ on macOS](https://presagetech.com/docs/smartspectra-sdk/cpp/macos.md): Install the SmartSpectra C++ SDK and run the SwiftUI macOS sample app. - [C++ on Windows](https://presagetech.com/docs/smartspectra-sdk/cpp/windows.md): Install the SmartSpectra C++ SDK on Windows with NuGet or CMake, then build and run the sample app in Visual Studio. - [Debian 13 (Trixie)](https://presagetech.com/docs/smartspectra-sdk/cpp/linux/debian-13.md): Install the SmartSpectra C++ SDK on Debian 13 (Trixie) for amd64 and arm64. - [Install the SmartSpectra C++ SDK on Linux](https://presagetech.com/docs/smartspectra-sdk/cpp/linux.md): Install the SmartSpectra C++ SDK on Debian, Ubuntu, and Linux Mint. Pick the guide that matches your distribution. - [Issues and Limitations](https://presagetech.com/docs/smartspectra-sdk/cpp/windows/issues-and-limitations.md): Known issues and platform limitations for the SmartSpectra C++ SDK on Windows, and the workarounds available for each of them. - [Ubuntu 22.04 / Mint 21](https://presagetech.com/docs/smartspectra-sdk/cpp/linux/ubuntu-22-04.md): Install the SmartSpectra C++ SDK on Ubuntu 22.04 or Linux Mint 21 (jammy) for amd64 and arm64. - [Ubuntu 24.04 / Mint 22](https://presagetech.com/docs/smartspectra-sdk/cpp/linux/ubuntu-24-04.md): Install the SmartSpectra C++ SDK on Ubuntu 24.04 or Linux Mint 22 (noble) for amd64 and arm64. ## Node.js & Electron - [Node.js and Electron SDK](https://presagetech.com/docs/smartspectra-sdk/nodejs.md): Build Node.js and Electron apps that measure pulse and breathing from a camera on Linux, macOS, and Windows, using a prebuilt native runtime from npm. - [Configuring Metrics on Node.js](https://presagetech.com/docs/smartspectra-sdk/nodejs/metrics.md): Request pulse and breathing rates, HRV and EDA metrics from the SmartSpectra Node.js SDK, and read event results. - [Node.js API Reference](https://presagetech.com/docs/smartspectra-sdk/nodejs/api-reference.md): API reference for the SmartSpectra Node.js SDK — the SmartSpectraSDK class, events, metrics decoding, and error codes. - [Headless Testing in CI on Node.js](https://presagetech.com/docs/smartspectra-sdk/nodejs/headless-testing-in-ci.md): Run a full SmartSpectra measurement in CI by feeding a recorded video through the Node.js SDK. - [LLM Insights on Node.js](https://presagetech.com/docs/smartspectra-sdk/nodejs/llm-insights.md): Ask natural-language questions about a measurement and receive LLM Insights through the SmartSpectra Node.js SDK, alongside the metrics stream. - [Node.js Migration Guide](https://presagetech.com/docs/smartspectra-sdk/nodejs/migration-guide.md): Migrate the SmartSpectra Node.js SDK to CameraSelection, cross-platform camera discovery, stopped-only source changes, and specific usage errors.