License & billing
Activate your license, manage your subscription, handle offline use, and recover from license errors.
SiteCMD’s paid tiers are subscription-based, billed monthly or annually. Licenses are validated through LemonSqueezy. This page covers the lifecycle: activation, renewal, offline behavior, machine moves, and recovery.
For what each tier includes, see Tiers & pricing.
Activating a license
When you purchase Core or Pro, you receive a license key by email from LemonSqueezy.
- Open SiteCMD.
- Settings → Account → License key.
- Paste the license key.
- Click Activate.
SiteCMD validates the key against the license server, registers this machine, and unlocks the features your tier includes. Activation typically takes a few seconds.
If activation fails, the error message tells you what went wrong:
- “License not found” — typo in the key, or you’re using the wrong store’s key
- “Activation limit reached” — too many machines registered to this license (see “Machine moves” below)
- “License expired” — the subscription wasn’t renewed
- “Network error” — your machine can’t reach
api.lemonsqueezy.com, see Troubleshooting
Where your license lives
Your license key is stored in your operating system’s credential store (Keychain on macOS, Credential Manager on Windows, GNOME Keyring / KWallet on Linux). It’s not in the SiteCMD database. If someone gets your SiteCMD data files, they can’t extract the license key.
The activation state (active, grace, expired) is cached in the local SQLite database for fast startup. The cache is refreshed on each successful validation.
Validation cadence
SiteCMD validates your license:
- On startup, every time the app launches
- Periodically while running, on a low-frequency interval
- On demand, when you click “Refresh license” in settings
A successful validation extends your grace window. Failed validations don’t immediately lock you out; the grace period absorbs short network problems, server hiccups, and offline travel.
The offline grace period
When SiteCMD can’t reach the license server, it doesn’t immediately disable premium features. Instead, it enters an offline grace period during which premium features continue working as if the license is still valid.
The grace window is multiple days long. A typical use case: you fly somewhere, your laptop is offline for the flight + a day of meetings + a flight back. SiteCMD never noticed.
After the grace period elapses without a successful validation, premium features pause. Your data is still all there; you just lose features like fix guides and ticket mirroring until the next validation succeeds. Reconnect to the internet and reopen the app, and you’re back.
This is intentional. We don’t want a flaky license server to wreck your work. We also don’t want indefinite offline use, which is why there’s a window rather than no expiration.
Renewals
Subscriptions renew automatically through LemonSqueezy. You’ll get a renewal email a few days before each renewal, and a receipt after. If the payment fails, LemonSqueezy retries; if retries fail, your license expires.
To update your payment method, manage subscriptions, or cancel: visit LemonSqueezy’s customer portal and sign in with the email you used to purchase. The link is also accessible from Settings → Account → Manage billing in the desktop app.
Cancellation
Cancel anytime through the LemonSqueezy customer portal. Cancellation:
- Stops future charges
- Keeps your license valid through the current billing period
- Drops your tier back to Free at the end of the period
Your data stays. Your projects stay. The features that require a paid tier (fix guides, MCP, ticket mirroring) go away when the license lapses; everything else continues working.
Machine moves
A single Core license activates on up to 3 machines. Pro activates on up to 5. If you replace a laptop, lose a machine, or otherwise need to move:
- On the new machine, paste your license key into Settings → Account → License key and click Activate.
- If activation fails with “Activation limit reached,” go to the LemonSqueezy customer portal and deactivate the old machine from your subscription’s machine list.
- Try the new activation again.
There’s no per-machine charge. Activation slots are about preventing license-key sharing, not about gating multi-device use for one paying user.
Refunds
We refund recent purchases. Email from the Contact page within 30 days of purchase. We don’t make you justify it.
For ongoing subscriptions, cancellation stops future charges but doesn’t refund past ones. The license remains valid through the period you paid for.
What we keep
For accounting and tax-compliance reasons, we keep a record of who paid us, when, and how much. This is standard for any SaaS-style business and is required by basically every payment processor.
What we don’t keep: your scans, your source, your project data. Those live on your machine, the same way they always do. The license relationship is a separate thing from the SiteCMD usage data, and they don’t mix.
When things go wrong
“My license suddenly stopped working.” First, check Settings → Account for the specific error. Most common causes: payment method expired, subscription canceled, network can’t reach the license server. The error message will say which.
“I lost my license key.” It’s in the email LemonSqueezy sent at purchase. If you can’t find that email, sign in to the LemonSqueezy customer portal with the email you bought with; your license keys are listed there.
“I bought Core but want Pro.” Upgrade from the LemonSqueezy customer portal. The new tier activates immediately on your existing machines; no re-purchase needed.
“I’m in the offline grace period and need premium features now.” Get the machine online for long enough for one validation request to complete. That’s typically a few seconds. Premium features resume immediately on a successful validation.
“The app says I’m on Free but I bought Core.” Try Settings → Account → Refresh license. If that doesn’t work, check that the license key in Settings is the one you bought (not a previous trial key or a different store’s key).