> ## Documentation Index
> Fetch the complete documentation index at: https://docs.charlemagnelabs.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Devices

> Enroll, monitor, and manage the endpoint devices in your organization

The **Devices** page lists every device enrolled in your organization and gives you controls to manage their lifecycle.

## Device List

Each row in the device list shows:

* **Device name** — the hostname reported by the agent at enrollment
* **Status** — `Active` or `Disabled`
* **Enrolled at** — when the device was first registered
* **Last seen** — most recent telemetry timestamp

## Enrolling a Device

<Steps>
  <Step title="Open the enrollment dialog">
    Click **Enroll Device** in the top-right corner of the Devices page.
  </Step>

  <Step title="Get an enrollment code">
    Choose one of two options:

    * **Copy code** — copy the one-time code to paste into the agent CLI yourself
    * **Send via email** — enter an email address and Charley will send the code with installation instructions
  </Step>

  <Step title="Run the agent enrollment command">
    On the target machine, run:

    ```bash theme={null}
    charley enroll --code <CODE>
    ```

    The device registers immediately and appears in the list with **Active** status.
  </Step>
</Steps>

<Warning>
  Enrollment codes are **one-time use** and expire after 24 hours. If the code expires before use, generate a new one.
</Warning>

## Device Status

### Active

The device is enrolled and the agent is reporting telemetry. Analytics from this device are included in the Overview.

### Disabled

The device is enrolled but the agent's data is excluded from analytics and the device cannot enroll new sessions. Use this to temporarily suspend a device without losing its history.

## Actions

Right-click a device (or use the action menu) to access:

| Action      | Description                                                                         |
| ----------- | ----------------------------------------------------------------------------------- |
| **Disable** | Suspends the device. Telemetry stops being counted.                                 |
| **Enable**  | Re-activates a previously disabled device.                                          |
| **Delete**  | Permanently removes the device and all associated telemetry. This cannot be undone. |

<Note>
  Deleting a device does not uninstall Agent Charley from the endpoint. You'll need to uninstall the agent separately on the machine itself.
</Note>

## MDM Enrollment Key (Enterprise)

Enterprise plans support a **persistent enrollment key** for deploying Agent Charley through an MDM (Mosyle, Jamf, Munki, Intune, etc.). Unlike one-time codes, the enrollment key never expires and supports unlimited uses, making it suitable for automated fleet deployment.

Find the enrollment key under **Devices → Enrollment Key** (or **Settings → Enrollment Key**). From there you can:

* **Generate** a new key (shown once — copy it immediately)
* **Rotate** the key (invalidates the old one; already-enrolled devices are not affected)
* **Revoke** the key (blocks new enrollments until a new key is generated)

To pre-configure Agent Charley before a user logs in, write the enrollment key and desired policy settings to the MDM config directory before the app launches:

```
/Library/Application Support/AgentCharley/config/mdm_enroll.json
/Library/Application Support/AgentCharley/config/mdm_policy.json
```

Contact your account rep for MDM deployment scripts compatible with Mosyle, Jamf, and Munki.

## Device Groups

The **Groups** tab (next to the Devices list) lets you organize devices into named groups and apply group-scoped policy overrides. See [Groups](/dashboard/groups) for full details.

## Plan Limits

The **Basic** plan is limited to **1 active device**. To enroll additional devices, upgrade to Pro or Enterprise from the [Billing page](/dashboard/billing).
