Adding a Device to SigmaShake Fleet
There are two ways to enroll a machine into your fleet org.
| Path | Who triggers it | When to use |
|---|---|---|
| Self-enroll ("Connect this machine") | The developer themselves, via Workspace | The default — no admin token needed; the developer's existing SSO session is the credential |
| Admin-issued enrollment profile | Fleet admin generates a token; developer uses it | Headless / CI environments; onboarding scripts; situations where the developer does not have a Workspace session |
Path 1: Self-enroll via Workspace (recommended)
This is the "Connect this machine" flow. A developer who is already a member of your Fleet org can enroll their own machine without any admin intervention.
Prerequisites
- The developer has a SigmaShake account and is a member of your Fleet org.
ssgCLI is installed on the machine — see Getting Started for the platform-specific install command.- The developer is signed into
ssg:ssg auth login
Steps
- The developer opens workspace.sigmashake.com and signs in.
- They click Connect this machine in the Fleet section of their dashboard.
- The Workspace browser tab calls the Fleet API to mint a 5-minute single-use enrollment grant (tied to the developer's session and org).
- The Workspace UI hands the grant to the local
ssgdaemon, which callsPOST /api/v1/agents/self-enrollautomatically. - On success,
ssgstores the resulting agent JWT in~/.sigmashake/fleet.toml. The machine appears in the Fleet dashboard under Agents within seconds.
The enrollment grant is single-use — a leaked bearer cannot enroll a second machine. It also expires after 5 minutes even if unused. If the enrollment fails for any reason (quota exceeded, revoked machine, expired grant), the developer must click Connect this machine again to get a fresh grant.
Checking enrollment status
# Verify the machine is enrolled and healthy
# (shows the enrollment and the policy bundle status)
ssg fleet status
ssg fleet status --json
Path 2: Admin-issued enrollment profile token
Use this path for headless servers, CI runners, or bulk onboarding scripts where the developer does not have an active Workspace browser session.
Steps
- Fleet admin: In the Fleet Dashboard, go to Settings → Enrollment Profiles.
- Click Create Enrollment Profile and configure:
- Name — a label for this profile (e.g., "CI runners" or "Dev team Q3")
- Max uses — how many machines can enroll with this token (or leave blank for unlimited)
- Expiry — when the token stops accepting new enrollments
- Copy the generated profile token (
ssg_ep_…). - Send the token to the developer or script.
On the target machine:
# Enroll using the Fleet URL and the profile token
ssg fleet enroll <fleet-url> ssg_ep_your_profile_token_here
# Confirm enrollment
ssg fleet status
A profile token is valid for new enrollments only — it cannot re-enroll a previously revoked machine. If a machine was revoked by an admin, contact the Fleet admin to issue a new enrollment or explicitly re-activate the agent in the dashboard.
Checking enrolled machines
Fleet admins can view all enrolled machines in the Fleet Dashboard under Agents. The ssg CLI has no command that lists the agents of an org; ssg fleet status shows the state of the current machine only.
The Fleet Dashboard shows each agent's last heartbeat, lifecycle state, ssg version, and policy compliance status.
Removing a machine
# Graceful unenroll from the current machine (the machine can re-enroll later)
ssg fleet unenroll
For a lost or compromised device, a Fleet admin revokes the agent in the Fleet Dashboard under Agents. The CLI has no command for this. After a forced revoke the machine cannot re-enroll without admin action.
After a graceful unenroll the agent record is kept with status=revoked so the same machine can re-enroll later. A forced admin revoke also keeps the record but marks unenroll_reason=forced — the machine is blocked from re-enrollment until an admin explicitly re-activates it.
Troubleshooting
| Symptom | Likely cause | Fix |
|---|---|---|
| "Enrollment bearer expired or already used" | Grant expired (> 5 min) or was already consumed | Click Connect this machine again in Workspace |
| "Organization agent quota reached" | Your org has hit its seat limit | Contact sales or remove unused machines |
| "This machine was previously revoked" | The machine was force-revoked by an admin | Ask a Fleet admin to re-activate the agent record |
ssg fleet status shows not enrolled after enrollment | The agent JWT was not saved | Re-run the enrollment; check ~/.sigmashake/fleet.toml permissions |
Related
- Fleet Setup via Claude Code — first-time org setup
- Fleet SSO Setup — configure SSO for your identity provider
- Fleet Dashboard Tour — overview of agents, policies, audit, and health screens