License
Activate, deactivate, and inspect your LocalCan license from the terminal. LocalCan also runs unlicensed (.local only).
Unlicensed vs activated
LocalCan starts without a key. Unlicensed, it serves .local domains over the HTTP/HTTPS proxy with full traffic inspection. Activating a license unlocks Public URLs and localcan tcp.
To try out all features, sign up for a 14-day trial on the LocalCan dashboard↗. No credit card required.
First-run consent
The first time you run LocalCan, it asks you to accept the Terms of Service↗. Review the Terms↗ and Privacy Policy↗, then answer y. Acceptance is recorded and you are not asked again until the Terms change.
Without a license the app never asks about usage data, it stays off until you opt in.
On a headless host or in a script (no terminal on stdin) the command exits with an error instead of prompting. Accept the Terms ahead of time:
localcan accept-terms
You can also pass --accept-terms to any engine command to accept non-interactively:
localcan start --accept-terms
Activate
localcan license activate localcan_xxxxxxxxxxxxx
The first activation runs an interactive flow: you'll be asked to accept the Terms of Service and to opt in or out of anonymous usage data. To skip both prompts, for CI, headless servers, or scripts, pass the answers as flags:
localcan license activate localcan_xxxxxxxxxxxxx \
--accept-terms \
--no-usage-data
If the key is already activated on a different machine and you want to move it, add --reassign:
localcan license activate localcan_xxxxxxxxxxxxx --accept-terms --reassign
When --json is set, all prompts are suppressed and --accept-terms becomes mandatory.
Deactivate
localcan license deactivate
Frees the seat so you can activate the key on another machine. The daemon keeps running and drops to unlicensed, so .local and the HTTP/HTTPS proxy keep serving. Only Public URLs and TCP tunnels pause until a new key is activated. Run localcan stop if you want the daemon down too.
If your key stops working
If LocalCan stops accepting your key, for example because it was replaced in your team or your subscription ended, Public URLs pause. Your .local domains, the proxy and the inspector keep working, and the key stays in your config.
Run localcan license status to see the reason and what to do next. After fixing it, check again with localcan license status --refresh, or activate a new key with localcan license activate <key>.
Moving the license to this machine
A license runs Public URLs on one machine at a time. If localcan license status says the license is in use on another device, move it here with the key already configured on this machine:
localcan license activate --reassign
On a new machine or after a fresh install there is no key here yet, so pass it as well:
localcan license activate localcan_xxxxxxxxxxxxx --reassign
Usage data
Telemetry is opt-in and off by default. Turn anonymous usage data on or off at any time, with or without a license:
localcan license set-usage-data yes
localcan license set-usage-data no
Status
localcan license status
Reports the current mode (unlicensed or licensed), the license state, when LocalCan last checked the key, the masked key, device ID and name, platform, CLI and desktop versions, and your update window:
Mode licensed
State valid
Last checked Oct 8, 14:02
License key localcan_xxxxxxxxxxxx****
Device ID c5b1...
Device name my-laptop
Platform darwin/arm64
CLI version 1.0.0
Terms accepted 2026-05-20
Desktop version 3.0.0
Updates allowed until Jan 1, 2027
Updates expired no
The state is valid, unverified or blocked. A blocked key also shows the reason and the next step. Add --refresh to check with LocalCan first.
If Updates expired is yes, the line below tells you how many CLI releases you're behind and points to the dashboard to renew. Your existing license keeps working, only access to newer releases is gated.
Pass --json to consume the same data as a structured object.
© 2026 LocalCan™. All rights reserved.