StreamPulse Pro

StreamPulse Pro unlocks Stream Pulse-operated remote services, currently the managed Kick webhook gateway and YouTube, for both inbound events and outgoing actions. It is not a paywall on every Kick integration or every Internet connection: your own Kick companion, self-hosted gateways, tunnels, Smee and user-provided relays remain free. Twitch and local connections remain free. YouTube sign-in, channel lookup, source polling, destination tests and actions require Pro.

Open Settings > Pro License for the unlock panel, purchase information and the current table of features unlocked with Pro. Until checkout is configured, the page displays a clearly marked coming-soon message rather than a purchase link. Pricing and the Pro feature list may change before release. Existing account, source, destination and rule settings are preserved when Pro is unavailable. Managed sign-in, connection tests, events and actions require a verified subscription; a local configuration flag cannot unlock the gateway.

Overwolf

Sign in to Overwolf and select Refresh Pro status. Use Get StreamPulse Pro to open the Overwolf/Tebex checkout, then refresh after purchase. An active subscription, including one pending cancellation until the paid period ends, unlocks managed connections.

As checked on October 30, 2026, Overwolf’s subscription policy explicitly disallows third-party monetization for apps with monetization plans. The supported subscription integration is Subscriptions by Tebex. Accordingly, the Overwolf build has no Lemon Squeezy checkout or license entry. Standalone Lemon Squeezy licenses do not unlock the Overwolf build. Obtain written approval from Overwolf before changing this separation; these implementation choices are not a guarantee of app approval or legal advice.

Independent standalone app

Purchase through the configured Lemon Squeezy checkout, then enter the license key from your receipt and select Activate Pro. No separate Stream Pulse login is needed. The key and activation instance are stored separately from portable configuration on that device and are never exported.

Deactivate this device releases the Lemon Squeezy activation slot. Forget local license only removes the local credentials, for example when an expired license cannot be deactivated. It does not release the activation slot. Neither operation cancels billing. Manage subscriptions through your provider or purchase receipt.

Lemon Squeezy products must be subscriptions with Generate License Keys enabled. Their license lifecycle follows the subscription, so the gateway validates the license and instance with Lemon Squeezy rather than trusting a key’s format or a checkout redirect.

Verification and availability

The managed gateway verifies the payment provider and issues a signed, origin-scoped Pro grant valid for at most five minutes (shorter if the provider reports an earlier expiry). Each paid device operation requires this grant in addition to the gateway device session. Connection approval is bound to the subscription identity that started it.

Streams close when their verified grant expires and must reconnect with a fresh grant. Provider outages, invalid credentials and expired subscriptions fail closed for managed services. Refunds, disabled licenses and other provider state changes can take up to the five-minute grant lifetime to remove existing access. There is no offline Pro grace period. Disconnect and subscription cleanup remain available without Pro.

Operator setup

The code is ready for provider configuration; it does not create stores, products, prices or live subscriptions.

Managed gateway environment

Variable Purpose
GATEWAY_MANAGED Defaults to true. Enforces Pro on this deployment. Set false only on a user-operated gateway, never on the Stream Pulse managed service.
PRO_OVERWOLF_STORE_ID Tebex store public token used by Overwolf’s Subscriptions API.
PRO_OVERWOLF_EXTENSION_ID Overwolf app/extension ID configured with Overwolf DevRel.
PRO_OVERWOLF_PACKAGE_IDS Comma-separated numeric Pro package IDs. The first is offered at checkout; all listed packages qualify.
PRO_LEMON_STORE_ID Numeric Lemon Squeezy store ID.
PRO_LEMON_PRODUCT_ID Numeric standalone Pro subscription product ID.
PRO_LEMON_VARIANT_IDS Comma-separated numeric subscription variant IDs, such as monthly and yearly. Do not include one-time products or test variants in production.
PRO_LEMON_CHECKOUT_URL HTTPS standalone checkout link. Never returned to the Overwolf build.

Unconfigured providers cannot grant Pro. The default development gateway from pnpm dev:gateway is not managed for Kick; YouTube still requires Pro. Use the explicit local-development bypass below until development licenses exist. Set GATEWAY_MANAGED=true to exercise enforcement with configured providers. Deployment environments, including Container Apps, must supply the variables above themselves; the checked-in infrastructure template does not configure billing products.

Configure the Overwolf/Tebex store and webhooks exactly as required by Overwolf’s setup guide, including DevRel onboarding. The gateway verifies Overwolf session tokens against Overwolf, then checks the signed-in user’s allowed packages through the Overwolf Subscriptions API. Store private keys and webhook signing secrets belong in the provider onboarding flow, never in the browser bundle.

The standalone integration uses Lemon Squeezy’s License API for activation, validation and deactivation. It needs no Lemon Squeezy API secret in the app or gateway and no custom billing webhook receiver. Only licenses matching the configured store, product and variant qualify. Configure activation limits in Lemon Squeezy. Use a separate test environment/store or variants to test purchases; don’t allow those variant IDs on production.

App build environment

Set STREAM_PULSE_GATEWAY_URL to the default Kick gateway origin. Production builds treat it as the managed origin by default. Override STREAM_PULSE_MANAGED_GATEWAY_URL to set the exact paid service origin if different. For a build whose default gateway is user-operated, set STREAM_PULSE_MANAGED_GATEWAY_URL to an empty string explicitly. Development builds default to the loopback managed origin http://127.0.0.1:5190. YouTube always uses the managed origin, not a per-account gateway override.

Pro credentials and grants are sent only to that exact managed origin, never to a user-entered gateway. Changing the account URL cannot bypass enforcement on the managed server. Self-hosted gateways must opt out on their own server with GATEWAY_MANAGED=false; that setting has no effect on the managed service.

Keep the gateway encryption key stable: it also signs Pro grants using a separate purpose prefix. Rotating it invalidates grants and existing encrypted gateway state. Upgrading an existing managed gateway requires signing in to Kick again so device sessions can be bound to the Pro subscription.

Explicit local-development bypass

In both the app and gateway development terminals, set:

$env:STREAM_PULSE_DEV_PRO_BYPASS = '1'

Then run pnpm dev in one terminal and pnpm dev:gateway in the other. Restart both after changing the flag. Settings > Pro License displays Pro development bypass, not an activated paid license. Real Google OAuth still requires the operator’s YOUTUBE_CLIENT_ID / YOUTUBE_CLIENT_SECRET on the gateway; this switch does not simulate Google accounts.

Both sides must explicitly opt in. The dev gateway must bind to loopback and use a loopback public URL. A remote/tunneled URL is rejected with the switch enabled. Production browser builds compile the bypass off, and the production gateway entry point does not read this environment flag. This is a local development exception, never an entitlement accepted by the managed service.