npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@livekit/agents-plugin-krisp

v1.9.0

Published

Krisp Audio plugin for LiveKit Node Agents

Readme

Krisp VIVA plugin for LiveKit Agents

Real-time noise reduction for LiveKit voice agents using Krisp's VIVA SDK, exposed as a LiveKit FrameProcessor.

See https://docs.livekit.io/agents/integrations/ for more information.

Installation

pnpm add @livekit/agents-plugin-krisp

The default backend is bundled with the plugin and authenticates through LiveKit Cloud using the room's credentials — no separate SDK download, license key, or model file is required.

Using your own Krisp license instead? That path has additional prerequisites — see below.

Quick start

krisp.voiceIsolation() resolves its backend from the environment: if both KRISP_VIVA_SDK_LICENSE_KEY and KRISP_VIVA_FILTER_MODEL_PATH are set, it uses the Krisp license path (you are responsible for installing @krisp/viva-node-sdk); otherwise it uses LiveKit Cloud authentication — the bundled backend ships the voice isolation model and authenticates against LiveKit Cloud using the room JWT the agent framework hands to the FrameProcessor automatically. Pass authProvider to pin a backend explicitly.

For telephony audio, use krisp.voiceIsolationTelephony() instead — it takes the same options and behaves identically, but selects a noise-reduction model tuned for telephony.

Pass the processor as noiseCancellation in the session's input options:

import { type JobContext, voice } from '@livekit/agents';
import * as krisp from '@livekit/agents-plugin-krisp';
import * as openai from '@livekit/agents-plugin-openai';
import * as silero from '@livekit/agents-plugin-silero';

export default async function entry(ctx: JobContext) {
  // Default: LiveKit Cloud auth + bundled model. No keys or model files.
  const noiseCancellation = krisp.voiceIsolation({
    noiseSuppressionLevel: 100, // 0-100
  });

  const session = new voice.AgentSession({
    vad: await silero.VAD.load(),
    stt: new openai.STT(),
    llm: new openai.LLM({ model: 'gpt-4o-mini' }),
    tts: new openai.TTS(),
  });

  await session.start({
    agent: new voice.Agent({ instructions: 'You are a helpful assistant.' }),
    room: ctx.room,
    inputOptions: {
      // Pass the FrameProcessor directly.
      noiseCancellation,
    },
  });
}

Audio pipeline: Room → RoomIO (with voiceIsolation) → VAD → STT → LLM

Configuration

KrispVivaFilterOptions

| Option | Type | Default | Description | | ----------------------- | -------------- | -------------------------- | ---------------------------------------------------------------------------------------------------------- | | authProvider | AuthProvider | LiveKitCloudAuthProvider | Authentication backend. Defaults to LiveKit Cloud. See the alternative. | | noiseSuppressionLevel | number | 75 | Noise reduction intensity (0-100). |

Input frames of any size and sample rate are buffered and adapted automatically.

Runtime control

noiseCancellation.setEnabled(false); // pass audio through unmodified
noiseCancellation.setNoiseSuppressionLevel(50); // adjust 0-100 on the fly
noiseCancellation.close(); // free resources when done

Alternative: Krisp license auth

Most users should use the default LiveKit Cloud path above. This alternative is for running the proprietary Krisp SDK directly with your own Krisp license — for example, when using the LiveKit OSS server.

This path uses the proprietary @krisp/viva-node-sdk together with a Krisp license key and a .kef model file that you obtain from Krisp.

Prerequisites

  1. Krisp Node SDK — proprietary, not bundled with this plugin. Obtain and install it separately from Krisp:
    pnpm add @krisp/viva-node-sdk
  2. License key:
    export KRISP_VIVA_SDK_LICENSE_KEY=your-license-key-here
  3. Noise-reduction model — a .kef model file from Krisp:
    export KRISP_VIVA_FILTER_MODEL_PATH=/path/to/noise_model.kef

Usage

Select the license backend by passing authProvider. Both the model path and the license key come from the environment variables above (read by the native SDK), so krispLicense() takes no arguments:

import * as krisp from '@livekit/agents-plugin-krisp';

const noiseCancellation = krisp.voiceIsolation({
  authProvider: krisp.auth.krispLicense(),
  noiseSuppressionLevel: 100,
});

Troubleshooting

@livekit/plugins-krisp-viva-internal is missing

The default (LiveKit Cloud) backend is bundled as a dependency. If it reports as missing, the install is likely broken — reinstall the plugin, or fall back to the Krisp license auth path.

"@krisp/viva-node-sdk is not installed" (license auth only)

Install the proprietary Krisp Node SDK (pnpm add @krisp/viva-node-sdk), or use the default auth.livekitCloud() provider.

"Krisp model path is required" / "Krisp model file not found" (license auth only)

export KRISP_VIVA_FILTER_MODEL_PATH=/path/to/model.kef

"Unsupported sample rate"

Supported: 8000, 16000, 24000, 32000, 44100, 48000 Hz.

License

The source code in this package (@livekit/agents-plugin-krisp) is licensed under the Apache-2.0 license.

The default backend is a separate, closed-source package (@livekit/plugins-krisp-viva-internal) installed automatically as a dependency. It is proprietary and distributed under the LiveKit Terms of Service. That package bundles the Krisp VIVA SDK along with its third-party open-source components.

The Krisp license alternative (KrispLicenseAuthProvider) instead needs a manual install of the proprietary @krisp/viva-node-sdk together with your own Krisp license key and model file, governed by your agreement with Krisp.