# SmartSpectra SDK > SmartSpectra measures human vitals — pulse, breathing, and more — from ordinary camera video. > All metric computation runs on-device inside the SDK; the backend is only contacted to authenticate the API key and validate the subscription. > One metrics payload and one start/stop lifecycle across every binding: C++, Swift/iOS, Kotlin/Android, and Node/TypeScript. > Every page below is markdown. Append `.md` to any documentation URL to get the markdown for that page. > Agent skill: https://smartspectra.presagetech.com/skill.md — the API model, the lifecycle, and the metrics vocabulary in one file. > Hosted MCP server: https://mcp.presagetech.com/mcp — API keys, app registration, plan usage, and search over these docs. > Whole corpus in one file: https://smartspectra.presagetech.com/llms-full.txt. ## Start Here - [Getting Started](https://smartspectra.presagetech.com/docs.md): Get an API key and integrate the SmartSpectra SDK to measure pulse and breathing from video, on iOS, Android, C++, or Node.js. ## Android - [Quick Start](https://smartspectra.presagetech.com/docs/android.md): Measure pulse and breathing from the Android camera with the SmartSpectra Android SDK. Kotlin, minSdk 28; install, authenticate, and run. - [Option 1: API Key](https://smartspectra.presagetech.com/docs/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](https://smartspectra.presagetech.com/docs/android/option-2-oauth.md): SmartSpectra Android setup using OAuth instead of a hard-coded API key. - [Configuring Metrics](https://smartspectra.presagetech.com/docs/android/metrics.md): Request pulse, breathing, HRV and EDA metric groups from the SmartSpectra Android SDK, and read the samples its LiveData delivers. - [LLM Insights](https://smartspectra.presagetech.com/docs/android/llm-insights.md): Ask natural-language questions about a measurement and receive LLM Insights through the SmartSpectra Android SDK, alongside the metrics stream. - [Headless Mode](https://smartspectra.presagetech.com/docs/android/headless-mode.md): Wire SmartSpectra SDK lifecycle and metrics LiveData into your own Android UI — useful for background monitoring or custom interfaces. - [Headless Testing in CI](https://smartspectra.presagetech.com/docs/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. - [Migration Guide](https://smartspectra.presagetech.com/docs/android/migration-guide.md): Release-by-release migration notes for the SmartSpectra Android SDK: breaking API changes, renamed symbols, and what each upgrade requires. - [API Reference](https://smartspectra.presagetech.com/docs/android/api-reference.md): API reference for the SmartSpectra Android SDK — Kotlin types, lifecycle methods, metrics, and error codes. - [Troubleshooting](https://smartspectra.presagetech.com/docs/android/troubleshooting.md): Solutions to common build, runtime, and integration issues with the SmartSpectra Android SDK. ## Swift - [Quick Start](https://smartspectra.presagetech.com/docs/swift.md): Measure pulse and breathing from the iPhone camera with the SmartSpectra Swift SDK. Requires iOS 17 or later; install, authenticate, and run. - [Option 1: API Key](https://smartspectra.presagetech.com/docs/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](https://smartspectra.presagetech.com/docs/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](https://smartspectra.presagetech.com/docs/swift/metrics.md): Request pulse, breathing, HRV and EDA metric groups from the SmartSpectra Swift SDK, and read the samples its observable state publishes. - [LLM Insights](https://smartspectra.presagetech.com/docs/swift/llm-insights.md): Ask natural-language questions about a measurement and receive LLM Insights through the SmartSpectra Swift SDK, alongside the metrics stream. - [Headless Mode](https://smartspectra.presagetech.com/docs/swift/headless-mode.md): Drive SmartSpectra SDK observable state directly from your own iOS UI — useful for background monitoring or custom interfaces. - [Headless Testing in CI](https://smartspectra.presagetech.com/docs/swift/headless-testing-in-ci.md): Run a full SmartSpectra measurement on the iOS Simulator in CI by feeding a recorded video, or smoke-test that the SDK builds and initializes. - [Migration Guide](https://smartspectra.presagetech.com/docs/swift/migration-guide.md): Release-by-release migration notes for the SmartSpectra Swift SDK: breaking API changes, renamed symbols, and what each upgrade requires. - [Use Case Examples](https://smartspectra.presagetech.com/docs/swift/use-case-examples.md): Example SmartSpectra Swift integration patterns for common app use cases. - [API Reference](https://smartspectra.presagetech.com/docs/swift/api-reference.md): API reference for the SmartSpectra Swift SDK — observable state, lifecycle methods, metrics, and error codes. - [Troubleshooting](https://smartspectra.presagetech.com/docs/swift/troubleshooting.md): Solutions to common build, runtime, and integration issues with the SmartSpectra Swift SDK. ## C++ - [Overview](https://smartspectra.presagetech.com/docs/cpp.md): Measure pulse and breathing from a camera or video file with the SmartSpectra C++ SDK on Linux, macOS, and Windows. C++17 and CMake. - [macOS](https://smartspectra.presagetech.com/docs/cpp/macos.md): Install the SmartSpectra C++ SDK and run the SwiftUI macOS sample app. - [Configuring Metrics](https://smartspectra.presagetech.com/docs/cpp/metrics.md): Request pulse, breathing, HRV and EDA metric groups from the SmartSpectra C++ SDK, and read the samples its callbacks deliver. - [LLM Insights](https://smartspectra.presagetech.com/docs/cpp/llm-insights.md): Ask natural-language questions about a measurement and receive LLM Insights through the SmartSpectra C++ SDK, alongside the metrics stream. - [Headless Mode](https://smartspectra.presagetech.com/docs/cpp/headless-mode.md): The SmartSpectra C++ SDK is headless by default — wire up metric and frame callbacks for custom integrations. - [Migration Guide](https://smartspectra.presagetech.com/docs/cpp/migration-guide.md): Release-by-release migration notes for the SmartSpectra C++ SDK: breaking API changes, renamed headers, and what each upgrade requires. - [API Reference](https://smartspectra.presagetech.com/docs/cpp/api-reference.md): API reference for the SmartSpectra C++ SDK — the SmartSpectra class, callbacks, builders, metrics, and error codes. ### Linux - [Overview](https://smartspectra.presagetech.com/docs/cpp/linux.md): Install the SmartSpectra C++ SDK on Ubuntu and Linux Mint. Pick the guide that matches your distribution. - [Ubuntu 22.04 / Mint 21](https://smartspectra.presagetech.com/docs/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://smartspectra.presagetech.com/docs/cpp/linux/ubuntu-24-04.md): Install the SmartSpectra C++ SDK on Ubuntu 24.04 or Linux Mint 22 (noble) for amd64 and arm64. ### Windows - [Overview](https://smartspectra.presagetech.com/docs/cpp/windows.md): Install the SmartSpectra C++ SDK on Windows with NuGet or CMake, then build and run the sample app in Visual Studio. - [NuGet](https://smartspectra.presagetech.com/docs/cpp/windows/windows-nuget.md): NuGet install path for the SmartSpectra C++ SDK on Windows — suitable for Visual Studio and MSBuild projects. - [.NET](https://smartspectra.presagetech.com/docs/cpp/windows/windows-dotnet.md): SmartSpectra.Net — C# / .NET 8 wrapper for the SmartSpectra SDK on Windows. - [Issues and Limitations](https://smartspectra.presagetech.com/docs/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. ## Node.js - [Overview](https://smartspectra.presagetech.com/docs/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](https://smartspectra.presagetech.com/docs/nodejs/metrics.md): Request pulse, breathing, HRV and EDA metric groups from the SmartSpectra Node.js SDK, and read the samples its event handlers deliver. - [LLM Insights](https://smartspectra.presagetech.com/docs/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. - [Headless Testing in CI](https://smartspectra.presagetech.com/docs/nodejs/headless-testing-in-ci.md): Run a full SmartSpectra measurement in CI by feeding a recorded video through the Node.js SDK. - [API Reference](https://smartspectra.presagetech.com/docs/nodejs/api-reference.md): API reference for the SmartSpectra Node.js SDK — the SmartSpectraSDK class, events, metrics decoding, and error codes. ## Guides - [Getting a Good Measurement](https://smartspectra.presagetech.com/docs/measurement-quality.md): Camera setup, lighting and positioning for accurate SmartSpectra readings, plus how to surface the SDK's live validation feedback to users. ## Testing - [Headless Testing in CI Overview](https://smartspectra.presagetech.com/docs/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. ## Reference - [Using the AI agent skill](https://smartspectra.presagetech.com/docs/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://smartspectra.presagetech.com/docs/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. - [Model Cards and Limitations](https://smartspectra.presagetech.com/docs/model-cards-and-limitations.md): Model cards, operating ranges, and known limitations for SmartSpectra SDK metrics. - [SDK Telemetry & Privacy](https://smartspectra.presagetech.com/docs/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. - [Data Types](https://smartspectra.presagetech.com/docs/data-types.md): The language-agnostic SmartSpectra metrics payload — every message, enum, and field the SDK emits. ## LLM Insights - [Overview](https://smartspectra.presagetech.com/docs/llm-insights.md): Conceptual overview, common API interface, required configuration, and privacy notice for the SmartSpectra LLM Insights feature. - [Writing Effective Prompts](https://smartspectra.presagetech.com/docs/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. - [Troubleshooting LLM Insights Errors](https://smartspectra.presagetech.com/docs/llm-insights/troubleshooting.md): The two LLM Insights error surfaces, common failure modes, retry guidance, and how to surface errors in your UI. ## Shipping Your App - [Redistribute on Linux](https://smartspectra.presagetech.com/docs/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.