Skip to content

Licensing ​

CritterWatch is part of the JasperFx ecosystem and is distributed under the Business Source License. While the distribution is done through Nuget, CritterWatch requires a commercial site license to "light up" the management features and the features related to AI assisted development.

CritterWatch is free to use in read-only monitoring mode — you can connect any number of services and watch nodes, agents, message routing, projections, and the dead-letter queue without a license key. A commercial license is required for:

  • Any administrative / state-changing action — DLQ replay/discard, listener pause/restart, projection pause/rebuild/rewind, agent pinning, node eject, tenant management, ChaosMonkey, and so on.
  • The entire MCP server — every CritterWatch MCP tool is license-gated, including the read/diagnostic tools. There is no free MCP tier.

See CritterWatch plans for pricing.

License Configuration ​

Once you have a license key, configure it on both the CritterWatch server and every monitored service where operators will run state-changing actions. The state-changing handlers (DLQ replay/discard, listener pause/restart, projection operations, scheduled-message operations, ChaosMonkey, tenant operations) execute on the monitored service, and each service checks the license locally — a key that is only on the CritterWatch server leaves every one of those actions failing with a "license required" error from the service that was asked to perform it.

In appsettings.json (same shape on the server and on monitored services):

json
{
  "JasperFx": {
    "LicenseKey": "YOUR-LICENSE-KEY-HERE"
  }
}

Or via environment variable:

bash
JASPERFX__LICENSEKEY=YOUR-LICENSE-KEY-HERE

The license key is validated at startup. If the key is invalid or missing for a Professional feature, those features will be disabled with a warning in the logs.

License Tiers ​

The plan, service limit, and feature set are carried inside the signed license key itself (they are not configured separately). The tiers are:

CapabilityFree (unlicensed)ProfessionalEnterpriseTrial
Read-only monitoring✅✅✅✅
Max monitored servicesUnlimited25UnlimitedUnlimited
State-changing operations¹❌✅✅✅
MCP server (all tools)²❌✅✅✅
Alerts❌✅✅✅
Audit log❌✅✅✅
Multi-tenancy management❌✅✅✅
Custom thresholds❌✅✅✅
Expiryn/a (perpetual)dateddatedshort-lived (default 15 days)

¹ State-changing operations include DLQ replay/discard, listener pause/restart, projection pause/rebuild/rewind, agent pinning, node eject, tenant management, and ChaosMonkey. Read-only monitoring is always available, on every tier.

² The MCP server is entirely commercial — every MCP tool is license-gated, including read/diagnostic tools. Unlicensed callers receive a "license missing" response from every tool.

A Trial is functionally identical to Enterprise (unlimited services, all features) but is issued with a short expiry so it lapses automatically.

Service cap ​

A license with a Max monitored services limit is enforced against the whole fleet, not only against newly connecting services. When more services are registered than the license permits, for example after running unlicensed and then adding a Professional key, or after moving to a smaller tier:

  • The console keeps monitoring as many services as the license permits. Services you have chosen to Keep monitored (on the service's page) take the slots first, then the services that registered earliest.
  • The rest are parked. A parked service keeps every piece of data already collected and stays visible, marked Not monitored — license limit. New telemetry from it is not applied, and commands and live queries to it are refused with Over the licensed service cap.
  • A banner across the console reads Monitoring N of M services — license limit for as long as any service is parked.

Nothing is deleted and nothing is evicted automatically. To bring a parked service back, keep it monitored in place of another, evict a service you no longer need, or move to a license with a higher limit. A brand-new service that connects while the fleet is already at the limit is not registered at all.

The console re-evaluates the cap every 30 seconds, and immediately after a service is kept monitored, released, or evicted.

Expiry behavior ​

Every paid license carries an expiry date (Free is perpetual). When a license expires, the server falls back to Free-tier functionality — read-only monitoring of unlimited services, with all state-changing operations and the MCP server disabled — while still surfacing the organization name and expiry date in the UI so the lapse is visible. Renew the license to restore full functionality.

The license is read when the console starts

Both an expiry and a renewal take effect the next time the console starts: the limits and features are fixed when the license is loaded, so a license that expires while the console is running keeps its paid features until a restart, and a renewed key needs one too. The same applies to the service cap: restart with a new key to apply its limit.

Open Source ​

The Wolverine.CritterWatch observer library (the NuGet package installed in monitored services) is MIT-licensed, and read-only monitoring needs no license key on the service — any number of services can be monitored regardless of the CritterWatch server license tier. The license key is only required on a monitored service to unlock the state-changing operations that execute there (see License Configuration above).

For more information, visit the JasperFx licensing page.

Free for read-only monitoring. A commercial license is required for administrative actions and the MCP server.