Account & LicensingLicensing & Upgrades

Licensing & Upgrades

How SiteKnock licenses, seats, activation, and version upgrades work for your projects.

How licensing works

Your SiteKnock license entitles you to scaffold and run projects. A license is bound to your account or organization and defines an entitlement — the range of kit versions you can use. The sk-cli and Studio use your license to download the correct bundle when you create a project.

Activation and seats

When you open a project in Studio, it activates against your license and acquires a seat:

  • A seat is bound to the project and the machine it runs on.
  • The machine binding uses a stable hardware identifier, so changing networks, joining a VPN, or moving locations does not consume a new seat.
  • Multiple projects in one workspace can share your stored license credentials while keeping separate seats.

Studio keeps the seat active while you work and releases it when you're done.

One license per project identity

Each project is bound to a single license at a time. If you try to connect a project that's already bound to a different license, activation is blocked until you explicitly confirm a reassignment through the SiteKnock connect flow. This prevents a project from silently moving between licenses.

Verifying your license

Check a license token or a project's binding at any time:

sk-cli verify --token <your-token>
sk-cli verify --project my-saas

If create fails, confirm your machine can reach the registry:

sk-cli probe

Upgrades

New SiteKnock versions ship as updated @siteknock/* packages within your entitlement range. When you upgrade a project's kit version:

  • Studio and sk-cli resolve the new version your license allows.
  • The Common Knowledge Base updates to match the version, so your AI agents stay accurate.
  • Regenerate your project afterward with pnpm sk:generate so derived files reflect any changes.

Keep your project's agent guides current after an upgrade — re-download the Project KB so Copilot, Claude, and others have up-to-date context.

Next steps