@interfere/cli uploads your source maps and registers each deploy as a release, so production stack traces point back to your real code instead of minified output. You run it as a step in your build or CI.
You only need it when you’re not already using a bundler plugin. The Next.js and Vite plugins do this automatically during the build. Reach for the CLI when there is no plugin for your setup: a Node or NestJS backend, a bundler we do not have a plugin for, or any deploy that is not on Vercel or Cloudflare, such as AWS, Fly, Render, or your own servers.
The CLI uses your Interfere API key (
INTERFERE_API_KEY, the interfere_secret_<region>_… build credential) from Surfaces. It’s a server-side secret, so keep it in CI and never in client code.Install
Add it as a dev dependency:Usage
Run it after your build, pointing at the directory that holds your compiled output and.js.map files:
postbuild script, so it runs on every build:
package.json
- derives the release from your commit (the same release id the SDK uses, so the two line up),
- uploads every
.js.mapit finds in the directory, and - confirms the release so the collector accepts its telemetry and de-minifies stack traces.
INTERFERE_API_KEY.
Environment variables
In CI
On a supported runner, set the API key and the rest is automatic:GitHub Actions
git rev-parse HEAD.
Options
Most runs need none of these. Reach for them when auto-detection can’t see what it needs (containers, unusual CI) or you want to label the release.
Run
interfere --help for the full list.