Superpowers Plugin Telemetry Opt-Out Pattern: Disabling Analytics in OpenAI Plugins
The Superpowers plugin implements an environment variable-based opt-out pattern that disables version-reporting telemetry when SUPERPOWERS_DISABLE_TELEMETRY is set to a truthy value, also respecting Claude Code's DISABLE_TELEMETRY and CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC flags.
The openai/plugins repository demonstrates a privacy-first approach to analytics through the Superpowers plugin. This implementation collects only the plugin version number—never user prompts, code, or behavioral data—and provides multiple standardized mechanisms for complete telemetry opt-out via environment variables.
How the Telemetry Opt-Out Mechanism Works
The Superpowers plugin follows an opt-out-by-environment-variable design pattern. Telemetry is active by default but completely suppressible through specific flags checked at runtime. According to plugins/superpowers/README.md, when an opt-out variable is detected, the plugin skips loading the telemetry script entirely, preventing any version-reporting requests from reaching the Superpowers server.
Primary Opt-Out Variable
Set SUPERPOWERS_DISABLE_TELEMETRY to any truthy value (such as 1, true, or "yes"). When present, this variable signals the plugin initialization logic to bypass the telemetry loader, ensuring zero network requests to the analytics endpoint.
Claude Code Compatibility Variables
The plugin respects generic telemetry-opt-out conventions established by Claude Code. If either of the following environment variables is defined, the Superpowers plugin suppresses telemetry automatically:
DISABLE_TELEMETRYCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC
This cross-compatibility ensures users managing multiple OpenAI plugins do not need redundant configuration.
Configuration Examples
You can disable Superpowers telemetry through shell exports, environment files, or programmatic configuration before plugin initialization.
Disabling via .env File
Create or modify a .env file in your project root:
# .env
SUPERPOWERS_DISABLE_TELEMETRY=1
When the plugin process reads the environment (e.g., via dotenv), telemetry will be turned off.
Programmatic Configuration (Node.js)
Set the environment variable before requiring the plugin module:
process.env.SUPERPOWERS_DISABLE_TELEMETRY = 'true';
// Initialize the Superpowers plugin after setting the flag
const { initSuperpowers } = require('superpowers');
initSuperpowers();
This approach is useful for testing environments or wrapper applications that manage plugin lifecycles.
Using Claude Code Global Variables
For users already opting out of Claude Code telemetry:
export DISABLE_TELEMETRY=1 # or CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC=1
superpowers-runner # launch the plugin as usual
All three approaches achieve the same result—no version-reporting request is sent.
Source Code Implementation Details
The telemetry opt-out pattern is implemented across specific files in the openai/plugins repository:
plugins/superpowers/README.md: Contains the primary documentation of the opt-out mechanism in the telemetry section, explicitly stating the variable names and truthy value requirements.plugins/superpowers/.codex-plugin/plugin.json: The plugin manifest defining client-side entry points where telemetry checks occur before script loading.plugins/superpowers/assets/superpowers-small.svg: The visual asset fetched from the Superpowers server when telemetry is enabled, serving as the actual version-check mechanism endpoint.
Summary
- The Superpowers plugin uses opt-out telemetry that exclusively reports version numbers, never user data or prompts.
- Set
SUPERPOWERS_DISABLE_TELEMETRYto any truthy value to disable analytics immediately. - The plugin honors
DISABLE_TELEMETRYandCLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFICfor seamless integration with Claude Code configurations. - Implementation files include
plugins/superpowers/README.mdfor documentation andplugins/superpowers/.codex-plugin/plugin.jsonfor the execution logic. - When opted out, the plugin skips loading the telemetry script entirely, ensuring zero network activity to analytics endpoints.
Frequently Asked Questions
What specific data does the Superpowers plugin telemetry collect?
The telemetry mechanism is strictly limited to reporting the plugin version number back to the Superpowers server. According to the source documentation in plugins/superpowers/README.md, it does not collect user-specific data such as prompts, code snippets, or click events.
Can I use Claude Code opt-out variables for the Superpowers plugin?
Yes. The Superpowers plugin respects both DISABLE_TELEMETRY and CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC environment variables. If either is set in the environment, the plugin will suppress telemetry without requiring the specific SUPERPOWERS_DISABLE_TELEMETRY flag.
Is telemetry disabled by default in the Superpowers plugin?
No, the telemetry system is opt-out only, meaning it is enabled by default. However, disabling it requires only setting a single environment variable, and the plugin skips loading the telemetry script entirely when any recognized opt-out flag is detected.
Where is the opt-out behavior documented in the source repository?
The opt-out pattern is documented in plugins/superpowers/README.md in the telemetry section, while the actual invocation logic resides in plugins/superpowers/.codex-plugin/plugin.json, which defines the client-side entry points where environment variable checks occur before telemetry script execution.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →