Versioned beside your code and hashed into every result. WardenKit never decides what you allow.
Deterministic evidence
Identical inputs produce byte-identical JSON, with the policy hash and SPDX reference version recorded.
Nothing leaves your process
No hosted evaluator, no upload and no telemetry. Free evaluation needs no account or licence key.
SPDX-native
Expressions are validated and normalized against a pinned SPDX License List, and deprecated identifiers are flagged.
Pricing
Plans and commercial rights
Paid plans differ by commercial scope, not product features. WardenKit does not meter repositories or usage.
Production: 1 organization · up to 10 repositories
Platform / Agency: up to 5 client organizations · 50 repositories total
A 30-calendar-day initial-purchase refund guarantee applies once, from an organization's first paid transaction for this product; renewals outside that window are handled under the payment provider's refund policy and statutory rights. Cancel renewal anytime; access continues through the paid period. By subscribing, you accept the Terms and Refund Policy.
Keep this tab open after payment. Activation then opens in a new tab.
No WardenKit account required. Manage billing, invoices and cancellation anytime from WardenKit using your purchase email.
Developer / Evaluation
$0
Evaluate locally with the full SDK and CLI. No account, licence key or network call required.
What's included
Full local SDK and CLI evaluation against the bundled SPDX evaluation reference snapshot.
Non-production evaluation and integration rights, including local trials and integration spikes.
No account, sign-up, email address or licence key is required to install and evaluate.
No production or production-CI use rights.
No continuing maintained Reference Pack refresh.
No production support or service-level commitment.
Free evaluation needs no checkout, account or licence key: install the package and run the CLI locally.
Production
$49 / month
Production and CI rights for one organization, up to 10 repositories, with maintained signed Reference Pack updates.
What's included
Production and CI use rights for one customer organization.
Up to 10 repositories.
Maintained signed WardenKit Licence Reference Pack refresh as new pinned SPDX License List releases are adopted.
Managed Production authorization: a signed 72-hour technical authorization refreshed on evaluate activity by createManagedProductionEvaluator, with no daemon and no background traffic.
Compatibility and security releases, and a documented support boundary.
Production use on behalf of client organizations is covered by Platform / Agency, not by this tier.
How it works Subscribe → Generate Activation Code → Activate locally → Verify
Platform / Agency
$149 / month
Production use for up to 5 client organizations and 50 repositories in aggregate.
What's included
Production and CI use rights for up to 5 client organizations.
Up to 50 repositories in aggregate.
Production use on behalf of clients, including agency, consultancy, platform and multi-tenant delivery.
The same maintained material and update rights as Production.
Aggregate repository and client limits are commercial licence rights, not metered technical quotas.
How it works Subscribe → Generate Activation Code → Activate locally → Verify
Secure checkout powered by Paddle.
Payment successful
Next, activate Open-source licence policy. Activation opens in a new tab; this checkout tab stays open.
Your browser blocked the new tab. Your payment is safe. Press “Open activation in a new tab” again, or allow pop-ups for this site.
Paid tiers differ in commercial scope only. Repository and client-organization limits are commercial licence rights recorded in entitlement metadata and customer terms; the SDK does not meter, count or report repositories, dependencies or usage, and transmits no telemetry. There are no seat, transaction, revenue or API quota limits, and no other quota dimension exists.
Production vs Platform / Agency. Production covers one entitled customer organization using the SDK and CLI for its own repositories and CI, up to 10 repositories. Platform / Agency adds production use on behalf of client organizations — agency and consultancy delivery, platform and multi-tenant use, and embedding within a broader customer-facing product or service — for up to 5 client organizations and up to 50 repositories in aggregate. Perfect technical enforcement of these limits is not claimed.
Quickstart
Run your first licence check
Install the package, write a policy and evaluate your component records locally. Free evaluation needs no account.
Use it inside any project, including projects hosted on GitHub.
GitHub Actions can run the licence-policy check on every push and pull request. GitHub does not host or activate the SDK.
FAQ
Questions buyers ask
Is free evaluation really free?
Yes. Install the package and evaluate locally with the full SDK and CLI: no account, licence key, payment or network call. Production and CI use need a paid plan.
What do I need to provide WardenKit?
Your licence policy (a JSON file) and your component records, each with one SPDX licence expression. WardenKit does not discover dependencies, detect licences or scan source code.
Does WardenKit upload my source code?
No. Evaluation runs in your own process. Component records, policies, SPDX expressions and results are never transmitted, and there is no telemetry. Production use adds only a bounded authorization refresh with the WardenKit service.
What happens after I subscribe?
Keep the tab open. WardenKit takes you straight to an activation page: generate your one-time Activation Code, run one terminal command in your project, paste the code when it asks, then verify with the status command.
What is an Activation Code?
A one-time code that activates Production in your project. It is shown once on the activation page, typed into the CLI's protected prompt rather than the command line, and never emailed or stored by this site.
How do I manage or cancel my subscription?
Open Billing & subscription in the site footer and enter your purchase email to receive a secure sign-in link. You can view invoices, update payment details and cancel there. Cancelling stops renewal; paid access continues to the end of the paid period, and nothing installed is remotely deleted.
Lost your Activation Code?
If you've generated an Activation Code but haven't used it, you can securely request a replacement using the same browser where you originally generated your code.
Already activated? You normally don't need your original Activation Code again. Use the SDK's status command to check your installation.
Who decides which licences are acceptable?
You do. WardenKit enforces the licence policy you write; it does not judge which licences your organization may use.
Which SPDX version is supported?
Expressions are validated against SPDX License List 3.28.0 through the signed WardenKit Reference Pack. Paid plans receive maintained Reference Pack updates as newer SPDX releases are adopted.
Is the SDK open source?
No. It is source-available under the WardenKit source-available commercial licence. Evaluation is free; production use needs a paid plan.
Technical detailsCapabilities, output, activation, licence, maintenance and scope
Family
Security and Assurance
Topology
Local Node.js SDK and CLI, no hosted evaluator
Input
JSON component records and a JSON policy you author
Output
Machine-readable JSON with a CI-consumable aggregate outcome
SPDX baseline
License List 3.28.0, Specification 3.0.1 Annex B grammar
Network at evaluation
None for createEvaluator and the CLI evaluate command. Managed Production: bounded authorization refresh only. Telemetry: none
What you get that a hand-maintained rule set does not
Your policy, as code, in your repository. The policy is a JSON document you author and own, versioned beside your code and hashed into every result. WardenKit never decides which licences you allow, deny or send to review.
Deterministic, reproducible evidence. Identical component records, identical policy, identical product version and identical reference version produce byte-identical machine-readable output, with the policy hash and reference version recorded in the provenance block of every result.
Runs where your code runs. Evaluation, expression validation, the SPDX reference command and status make no network call. The managed Production evaluator adds only a bounded authorization refresh on evaluate activity; the evaluation itself still runs locally, and component records, policies, SPDX expressions, dependency names and results never leave your process.
Built for CI, not for a dashboard. One CLI command returns JSON on stdout and a deterministic exit code, so a release pipeline can fail closed on a denied or unsupported licence expression without a hosted service in the path.
A maintained SPDX technical reference. Expression validation and normalization are pinned to a published SPDX License List release, and paid tiers receive the maintained signed Reference Pack as new published releases are adopted.
Technical results, not legal opinions. Results are named policy-allowed, policy-denied, review-required and invalid-unsupported, describing the outcome of your configured policy — never a legal permission, prohibition or compatibility opinion.
What the SDK does
Validates SPDX licence expressions against the SPDX Specification 3.0.1 Annex B grammar, including AND, OR, WITH, the + operator and parentheses.
Normalizes valid expressions to a canonical form: canonical SPDX identifier case, canonical operand ordering for the commutative AND and OR operators, and canonically re-emitted parentheses.
Resolves identifiers and exception identifiers against a pinned SPDX License List 3.28.0 baseline and flags deprecated identifiers with a deterministic diagnostic instead of substituting a successor.
Supports LicenseRef- custom licence identities and AdditionRef- custom additions as opaque customer-defined references, with no legal meaning assigned.
Validates the customer-authored policy document under a strict schema, rejects unknown fields, and reports a stable policy hash.
Evaluates the policy over each component record and derives an aggregate outcome from the policy's own configured thresholds.
Fails closed on malformed input, unknown identifiers and schema violations unless the policy explicitly tolerates that diagnostic code.
Prints the pinned SPDX reference metadata and the local entitlement state as machine-readable JSON.
Structured output
Per-component category: policy-allowed, policy-denied, review-required or invalid-unsupported.
Normalized SPDX expression and expression shape for each component record.
Coded diagnostics with stable machine-readable codes, for example EXPR_UNKNOWN_ID and EXPR_DEPRECATED_ID.
Aggregate outcome plus an explicit CI-blocking flag, mirrored by the CLI exit code.
Provenance block: product version, SPDX License List version, reference snapshot version and policy hash.
How production activation works
Production use is authorized by a signed, time-bounded local entitlement, paired with a signed and versioned production pack.
Verification happens locally in your process. The evaluator itself makes no network call.
Each signed production authorization lasts at most 72 hours from issue (earlier if the paid period or a scheduled cancellation ends sooner); there is no additional grace period after the signed deadline.
Refresh is automatic and activity-driven: createManagedProductionEvaluator().evaluate() refreshes the signed authorization on Production activity once 24 hours have passed since it was issued. No routine daily manual refresh is required.
There is no timer, daemon or background keepalive: a dormant process makes no requests, and a dormant installation revalidates automatically on its next managed Production use (fail-closed until that revalidation succeeds).
The CLI refresh command is an explicit recovery and diagnostic action, not a routine requirement.
Cancellation and expiry are non-destructive: nothing installed is remotely deleted or disabled, and evaluation use continues. Production use stops when the signed authorization expires, not instantly on cancellation.
Activation is explicit and out of band through the CLI wardenkit-licence-policy; the managed Production evaluator and that CLI are the only writers of the local artefact cache in ~/.wardenkit/open-source-licence-policy/.
Activation CLI
npx wardenkit-licence-policy status --json
npx wardenkit-licence-policy activate # asks for the Activation Code; nothing secret goes on the command line
npx wardenkit-licence-policy refresh --json # recovery/diagnostic; the managed evaluator refreshes on activity, authorization lasts at most 72 hours
Availability. Production activation runs against the WardenKit Live activation service. An activation credential is issued only after Paddle's verified webhook confirms the subscription; the credential is shown once and never stored by this site. Evaluation, policy validation, the SPDX reference command and status run locally and need no service.
Source-available, production-entitled
WardenKit source-available commercial licence, distributed as LICENSE.md inside the package.
Source-available: the published package contents may be read, audited and inspected.
Evaluation and integration use is permitted at no cost; production use requires a paid entitlement.
Not an OSI-approved open source licence and not an SPDX-listed identifier.
The licence covers the WardenKit product only. Your policies, component records and results remain yours.
What subscribers keep receiving
The maintained signed WardenKit Licence Reference Pack binds a published SPDX License List release, with WardenKit normalization and deprecation-diagnostics metadata, pack version, provenance and signature envelope.
New published SPDX License List releases are tracked, and a new maintained pack is produced when a release is adopted.
Node.js support windows and the package's minimal dependency set are monitored for compatibility and security releases.
Paid tiers receive maintained Reference Pack refreshes, compatibility releases and security releases while the subscription is current.
Cancellation keeps paid access through the end of the paid period with no automatic prorated refund; an approved refund of the current paid period, a confirmed chargeback or terminal cancellation stops further issuance and refresh immediately, while a refund that is only requested or pending does not. Installed files and cached evidence are never remotely deleted or disabled, and evaluation-rights use may continue.
Each signed production authorization lasts at most 72 hours. The managed Production evaluator refreshes it on evaluate activity once 24 hours have passed (no daemon, no background timer, no traffic while dormant), and the CLI refresh command is a recovery and diagnostic action; every refresh re-verifies the subscription with the payment provider and there is no extra grace. Transient service failures follow a bounded retry ladder; an authorization that expires while the service is unreachable reports REVALIDATION_REQUIRED after two bounded recovery attempts (a technical state, not a revocation; the next evaluate on the same evaluator begins a fresh bounded recovery, so no routine daily manual refresh is required), and a subscription in provider-confirmed payment recovery (past due) keeps refreshing under PAYMENT_RECOVERY until the provider reports a rights-changing event.
A 30-calendar-day initial-purchase refund guarantee applies once, from an organization's first paid transaction for this product; renewals outside that window are handled under the payment provider's refund policy and statutory rights. See the Refund Policy.
Technical scope and boundaries
No source-code licence detection or licence-text classification.
No dependency discovery: you supply the component records.
No vulnerability, malware or general SCA scanning.
No SBOM generation, and no SPDX-document or CycloneDX adapters in this version.
No lockfile, manifest, registry or dependency-graph readers.
No legal advice, legal permission or obligation determination.
No licence compatibility opinion.
No compliance certification, endorsement or binding decision.
No copyright analysis, obligation generation or attribution-sufficiency assessment.
No hosted evaluation API, dashboard, portal or remediation workflow.
No telemetry and no transmission of customer operational data.
No SPDX or Linux Foundation affiliation or endorsement.
Where the product is distributed
npm package
@wardenkit/open-source-licence-policy
Published to the public npm registry under the @wardenkit scope.
Public examples repository
github.com/wardenkit/open-source-licence-policy
Public curated repository carrying the README, licence, changelog, security policy and the runnable SDK, CLI, policy, GitHub Actions and generic CI examples.
Distribution. Installs the published package from the npm registry. Free local evaluation needs no account, licence key or network call.