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
ssg fleet status
# Show the current agent ID and org
ssg fleet whoami
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 profile token
ssg fleet enroll --token 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, or via the CLI:
# List all active agents in your org
ssg fleet agents list
# Filter by status
ssg fleet agents list --status active
ssg fleet agents list --status stale
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
# Forced revoke from the admin dashboard or CLI (the machine cannot re-enroll
# without admin action — use for lost or compromised devices)
ssg fleet agents revoke --agent-id <AGENT_ID>
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