Docs

Install the plugin. Run /voltaire. Everything else is automatic.

Claude Code plugin

Install once. Voltaire connects your Stripe, reads your codebase, tracks behavioral data, and surfaces targeted fixes inside Claude Code. No config, no API key to copy.

bash
curl -fsSL https://mcp.hivoltaire.com/install | bash

A browser window opens to connect your account. Then run from any project:

Claude Code
/voltaire

Commands

CommandWhat it does
/voltaire Full session: connect Stripe, analyze codebase, apply a fix
/voltaire-status Quick pulse check: conversion rate, revenue, trend

You can also say it naturally, like "fix my paywall", "how is my conversion rate", "undo that last change", and Claude picks it up automatically.

First run

When you run /voltaire for the first time, Voltaire runs this sequence without stopping:

  1. Asks for your Stripe key, imports your full revenue history
  2. Benchmarks your conversion rate against your SaaS category
  3. Reads your codebase to locate the paywall
  4. Installs voltaire-sdk and adds the 7 tracking events
  5. Proposes a targeted fix, waits for your confirmation before touching anything
  6. Logs what was changed so future sessions build on it

Every run after

Once Stripe and the SDK are connected, each /voltaire session leads with data. On Lumière Intelligence, three agents run in parallel:

  • Timing: when your paywall fires vs the optimal moment, with confidence rating based on data volume
  • Cohort: what separates converters from bouncers, the one feature that predicts conversion
  • Churn: MRR health, monthly churn rate, median days before cancel, top cancellation reasons from Stripe
  • Builds on past fixes. Knows what was tried and what moved the needle

In the background (free)

  • Hourly anomaly detection: email alert if conversion drops significantly
  • Daily digest with conversion delta, anomalies, and session patterns
  • Weekly recommendation ranked by revenue impact, every Monday

Requires Claude Code. Free plan includes SDK install, data tracking, paywall analysis, daily digest, anomaly alerts, and weekly recommendations. Lumière Intelligence ($49/mo) adds the three on-demand agents (Timing, Cohort, Churn) that run on every /voltaire.

Events reference

Voltaire tracks 6 behavioral events. /voltaire installs them automatically — session_started fires on Voltaire.init() with no manual call needed. This section is for reference or manual instrumentation.

EventWhen to fire
session_started Fired automatically by Voltaire.init() — no manual call needed. Proves the SDK is live in production.
feature_used When the user hits the key feature that leads to the paywall, identifies your value moment
feature_gate_hit User tried to use a premium feature and got blocked. Strongest upgrade intent signal
upgrade_clicked User clicked an upgrade or pricing CTA but didn't complete payment
paywall_shown When the paywall UI becomes visible
paywall_dismissed When the user closes the paywall without purchasing. Include dismiss_seconds
paywall_converted After a successful purchase or subscription

JavaScript / TypeScript

Install the SDK manually if you want to control instrumentation yourself. Works with React, Vue, Angular, Next.js, Svelte, and vanilla JS.

bash
npm install voltaire-sdk
typescript
import Voltaire from 'voltaire-sdk'

// Initialise once at app startup
Voltaire.init({ apiKey: process.env.VOLTAIRE_SDK_TOKEN, category: 'your_category' })

// Optional: auto-fire paywall_shown after N uses of a feature
Voltaire.setPaywallTrigger({ feature: 'export_pdf', threshold: 3 })

// session_started fires automatically on init — no manual call needed

// 1. Key feature used
Voltaire.track('feature_used', { feature: 'export_pdf' })

// 3. User hits a premium gate (strongest intent signal)
Voltaire.track('feature_gate_hit', { feature: 'export_pdf' })

// 4. Paywall appears: save the timestamp
const paywallShownAt = Date.now()
Voltaire.track('paywall_shown')

// 5a. User clicks upgrade but doesn't complete
Voltaire.track('upgrade_clicked')

// 5b. User closes without buying
Voltaire.track('paywall_dismissed', { dismiss_seconds: (Date.now() - paywallShownAt) / 1000 })

// 5c. User subscribes
Voltaire.track('paywall_converted')

All calls are fire-and-forget: they never throw, never block your UI.

Request format

All events go to the same endpoint via HTTP POST.

http
POST https://mcp.hivoltaire.com/api/events
X-Api-Key: volt_YOUR_API_KEY
Content-Type: application/json

{
  "event_type": "paywall_shown",   // required: one of the 6 events above
  "user_session_id": "user_abc"    // required: your user or device ID
}

Returns {"ok": true, "event_id": "..."} on success. Fire-and-forget, do not block your UI on it.

Optional properties

Extra data goes inside the properties object:

json
{
  "event_type": "paywall_dismissed",
  "user_session_id": "user_abc",
  "properties": {
    "dismiss_seconds": 4.2
  }
}
PropertyTypeWhen to use
dismiss_seconds number On paywall_dismissed: time user spent on the paywall
feature string On feature_used / feature_gate_hit: name of the feature (e.g. "export_pdf")