# Introduction

> Cymo is a contactless mmWave sensor. These docs cover the REST API and the SDK, CLI and MCP server built on it.

## What you get

One API for **respiration**, **heart rate**, **HRV**, **presence** and **movement**. No camera, nothing to wear. The same data is available over REST, from TypeScript, from your terminal and from any MCP-compatible agent.

## Your first reading

`agent.ts`

```ts
import { Cymo } from "@cymos/sdk";

const cymo = new Cymo({ apiKey: process.env.CYMO_API_KEY! });

const { data, meta } = await cymo.vitals.get({ room_id: "room_bedroom" });
for (const person of data.people) {
  console.log(person.track_id, person.signals.heart_rate_bpm?.value);
}
console.log(meta.livemode); // false: test keys read the simulator
```

## Try it

Build a request on this page and preview what comes back. Test keys only ever read simulated data, so they are safe to use here.

## How it works

Start in **test mode**: every operation is served by a simulator with realistic rooms and 14 scenario presets, so you can build before your device arrives.

Order Cymo from the dashboard and pair it. Live keys read your paired Cymo through the same endpoints, so going live means swapping the key, not changing your code.

## Next steps

Follow the [quickstart](https://docs.cymatics.tech/quickstart) to read your first simulated room in under five minutes, or browse the [API reference](https://docs.cymatics.tech/api). To call it from code, a terminal or an agent, see the [SDK](https://docs.cymatics.tech/sdk), [CLI](https://docs.cymatics.tech/cli) and [MCP server](https://docs.cymatics.tech/mcp) guides.
