[Go to site: main page, start]

Skip to main content
@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:
The simplest setup is a postbuild script, so it runs on every build:
package.json
That single command does three things:
  • derives the release from your commit (the same release id the SDK uses, so the two line up),
  • uploads every .js.map it finds in the directory, and
  • confirms the release so the collector accepts its telemetry and de-minifies stack traces.
Commit SHA, branch, and run details are detected automatically on GitHub Actions, CircleCI, GitLab CI, and Buildkite. The one thing you must provide is INTERFERE_API_KEY.

Environment variables

In CI

On a supported runner, set the API key and the rest is automatic:
GitHub Actions
On pull_request events GitHub sets GITHUB_SHA to a temporary merge commit that exists on no branch, so a release uploaded from a PR build won’t match your real commit. Upload from your push or deploy workflow, or pass the head commit explicitly with --commit-sha.
CircleCI, GitLab CI, and Buildkite are detected the same way. Outside a supported CI system the CLI falls back to 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.

Building in Docker

A container build has no git history, so pass the commit in at build time and the CLI will use it for the release: