Machine ID and
the 2-device cap (deep-dive)

WordPress for Cowork’s per-seat cap is 2 devices. This article explains how that’s enforced, what you see when you hit the cap, and how to manage your slots.

What machine ID is

A short identifier Cowork generates on each device — based on stable hardware properties — that lets our license server tell two devices apart without storing anything personally identifying. Machine ID isn’t a serial number, MAC address, or hostname — it’s a deterministic hash that survives reinstalls but changes across distinct machines.

How the cap works

When you run /wp-setup on a new device:

  1. Cowork sends your license key plus this device’s machine ID to wpfc.com’s license server.
  2. The server looks at your license’s current device slots.
  3. If you have 0 or 1 slots claimed → the new machine ID gets a fresh slot. /wp-setup succeeds.
  4. If you have 2 slots claimed → the server returns device_limit_reached (HTTP 409). /wp-setup fails with a clear message and a link to /my-account/devices/.

Managing your slots

Visit /my-account/devices/. You’ll see your active slots with the device label (set during /wp-setup) and the IP/time of the last heartbeat. Click Remove on any slot to free it for a new device.

What counts as “the same device”

Same physical machine, same OS install → same machine ID. New OS install / new machine → new machine ID. Restoring from a backup typically keeps the machine ID (depends on what your OS preserves).

Heartbeat and rate limiting

Each tools/call sends a heartbeat to wpfc.com (one round-trip, lightweight). The heartbeat lets us notice if the same license is heartbeating from many distinct subnets in a 24-hour window — a sign of license sharing. Threshold is 5 distinct subnets; above that, we’ll email you.

If you genuinely need more than 2 devices per seat

Two paths: (a) buy a higher tier with more seats — Agency gets you 5 × 2 = 10 device slots — or (b) email [email protected] and explain the use case. We can issue extra slots case-by-case.

More posts