Bulk enrollment with your MDM
Push Connect and one enrollment policy through your device platform. Each machine enrolls to the email the MDM assigns, with no browser and no sign-in prompt.
| Fleet | Lane |
|---|---|
| Managed Macs | The package and profile. Works with Jamf Pro, Kandji, Intune, or any MDM that installs a package and a profile. |
| Windows and Linux | A managed installer plus a policy file. |
| API-key fleet, SSO not connected yet | A provisioning token. |
| Subscription (seat) fleet | The same Mac or Windows and Linux lane. |
Contractors, BYOD machines, and anything outside your MDM take the one-command path. Depth on everything here is in the MDM reference.
Enroll managed Macs with the package and profile
macOS 13 and later, Apple silicon and Intel. One profile and one package serve every Mac in scope, and each Mac still gets its own key.
Console, then Users, then Add user. Expand Enrolling a managed fleet via MDM? at the
bottom, and on the macOS tab pick Create & download next to anyray-enroll.mobileconfig.
Save it. It is shown once.
Jamf Pro, Kandji, and Intune fill the $EMAIL placeholder in EnrollmentEmail from the
computer's assigned user. With another MDM, use its per-device email variable. Replace only
$EMAIL, and never hardcode one address across the fleet.
Download anyray-connect.pkg from the same console step and deploy both to the same Macs in
device scope. Either order works.
No browser or password prompt appears. The user shows under Users with source MDM
provisioning, anyray-connect doctor reports a valid enrollment, and the desktop app's dot
turns green.
Deeper (admin-API mint, retries, rotation): Managed Macs.
Enroll Windows and Linux without a browser
Console, then Users, then Add user. Expand Enrolling a managed fleet via MDM?, choose Windows or Linux, and download the installer or package plus the generated policy file.
Windows: import anyray-enroll.reg as SYSTEM. Connect reads
HKLM\SOFTWARE\Policies\Anyray\Connect. Linux: put the JSON policy at
/etc/anyray/anyray-enroll.json, root-owned, mode 0600.
Treat the file as a secret. Its EnrollmentUrl carries the reusable enp_… credential, so
restrict it to administrators and rotate the link if it leaks.
Windows: run the managed installer once in each assigned user's context. Linux: deploy the
signed .deb or .rpm from the
releases page. Never run it as SYSTEM or
root. It exits rather than write a privileged account's profile.
& ([scriptblock]::Create((irm https://app.anyray.ai/connect.ps1))) "--managed"
Deeper (runner behavior, policy-file checks): Windows and Linux.
Enroll an API-key fleet with a provisioning token
A provisioning token (enp_…) is a reusable credential that lives in your MDM. Each machine runs
one command, gets its own ark_… key, and never needs the token again.
Console, then Users, then Add user, then Enrolling a managed fleet via MDM?. Copy
the raw token into your MDM secrets vault. It is shown once. Leave Mode on email and pick
the domain under Who can enroll (one per file, from the Email domains card). Matching is
exact, so a subdomain does not satisfy its parent.
Use the URL shown at mint. With another MDM, swap in its own user variable. Your MDM fills in
the device owner's email, and an empty variable is rejected with
email is required for this provisioning token.
- Jamf
- Intune
curl -fsSL https://app.anyray.ai/connect.sh | sh -s -- --enroll https://app.anyray.ai/enroll/enp_synthetic_example --user $EMAIL --yes
& ([scriptblock]::Create((irm https://app.anyray.ai/connect.ps1))) "--enroll" "https://app.anyray.ai/enroll/enp_synthetic_example" "--user" "%LoggedOnUser%" "--yes"
Enrolled users appear in Users with source MDM provisioning, one key per machine. Keys renew on their own while a machine stays in use.
Token lifetime and what the command configures
A token accepts new enrollments for 365 days. Expiry never touches issued keys, and no fleet
artifact carries a static key. The command sets up tools only, and holds back Claude Desktop.
A Default team is optional, and a SCIM-mapped team beats it. Machine mode, --endpoint, and
the Desktop trade-off are in provisioning tokens.
After you connect SSO
Manual tokens no longer mint, rotate, or redeem. Use the Mac package or legacy lanes, which enroll with SSO on or off.
Subscription (seat) fleets
A seat fleet enrolls through the Mac or Windows and Linux lane above, with nothing extra. Claude Code and Codex keep the developer's own seat sign-in for inference. Headless and CI machines get a service key instead.
Offboard
An enrolled machine holds a certificate that keeps renewing its key while the machine is in use, so waiting for expiry offboards nobody.
Revoke the user, then the live key. A machine-mode device offboards differently.
To rotate an exposed token, revoke it on the Users page, mint a fresh one with the same config, and push the new command. Enrolled devices carry on.