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 🙏

© 2025 – Pkg Stats / Ryan Hefner

@sendbird/chat-ai-widget

v1.9.7

Published

Sendbird Chat AI Widget, Detailed documentation can be found at https://github.com/sendbird/chat-ai-widget#readme

Readme

What is this for?

This is a Sendbird Chat AI Widget implemented on top of React UiKit.

NOTE: Proper utilization through code build is available starting from the "AI Chatbot Pro" plan or higher of the Sendbird AI Chatbot pricing plan.

Demo

How to use

  1. Prepare Sendbird Application ID and Bot ID. Here's how you can get them:

    • Application ID: If you don't have an account, sign up on the Sendbird Dashboard and create a new application.

    • Bot ID: If you don't have a bot, create one on the Sendbird Dashboard under AI Chatbot > Manage Bots > Create Bot.

    • You can also find your application ID and bot ID in the Sendbird Dashboard under AI Chatbot > Manage Bots > Bot Settings > Add to My Website.

  2. Install the library:

    # With npm
    npm install @sendbird/chat-ai-widget
    # Or if you're using yarn
    yarn add @sendbird/chat-ai-widget
  3. Add the import statement and component to your code:

     import { ChatAiWidget } from "@sendbird/chat-ai-widget";
     import "@sendbird/chat-ai-widget/dist/style.css";
    
     const App = () => {
       return (
         <ChatAiWidget
           applicationId="AE8F7EEA-4555-4F86-AD8B-5E0BD86BFE67" // Your Sendbird Application ID
           botId="khan-academy-bot" // Your Bot ID
         />
       );
     };
    
     export default App;

    Not using React in your environment? You can also load this Chat AI Widget component from an HTML file on your website. Please refer to js-example.html for an example.

Run locally

yarn install:deps
yarn dev
  • If you want to change applicationId and botId when running locally, modify the following variables in .env:
    # Vite prefix is required for Vite to load the env variables
    # Plz modify below two env variables on your needs
    VITE_CHAT_WIDGET_APP_ID=AE8F7EEA-4555-4F86-AD8B-5E0BD86BFE67
    VITE_CHAT_WIDGET_BOT_ID=khan-academy-bot

Customization

You can customize the UI of the ChatBot by using the ChatAiWidget component. The following are the props that can be used to customize the UI.

import { ChatAiWidget } from "@sendbird/chat-ai-widget";
import '@sendbird/chat-ai-widget/dist/style.css';

const App = () => {
  return (
    <ChatAiWidget
      applicationId="Your Sendbird application ID"
      botId="Your Sendbird bot ID"
      // more available props can be found in the next section
    />
  );
};

export default App;

Available props

| Prop Name | Type | Required | Default Value | Description | |-------------------------|---------------------------------------|----------|------------|----------------------------------------------------------------------------------------------------------------| | applicationId | string | Yes | N/A | Your Sendbird application ID | | botId | string | Yes | N/A | Your Sendbird bot ID | | | userNickName | string | No | N/A | The nickname of the user | | | enableEmojiFeedback | boolean | No | true | Enables emoji feedback functionality. | | enableMention | boolean | No | true | Enables mention functionality. | | deviceType | 'desktop' \| 'mobile' | No | N/A | Device type to be used in the widget | | stringSet | { [key: string]: string } | No | N/A | Customizable string set. Available string sets can be found here. | | customRefreshComponent | { icon: string, style: React.CSSProperties, width: string, height: string, onClick: () => void } | No | N/A | Customizable refresh component. You can set properties such as icon, style, width, height, and onClick. | | userId | string | No | N/A | User ID to be used in the widget connect. Must be used with sessionToken and configureSession. The example usage can be found here. | | sessionToken | string | No | N/A | Session token to be used in the widget connect. Must be used with userId and configureSession. The example usage can be found here. | | configureSession | () => SessionHandler | No | N/A | Session configuration function. Must be used with userId and sessionToken. The example usage can be found here. | | autoOpen | boolean | No | N/A | Determines whether the chatbot widget automatically opens when the browser window is opened. This property is being ignored in mobile view. | | enableResetHistoryOnConnect | boolean | No | false | Determines whether the chatbot widget history is reset when the user connects. | | messageInputControls.blockWhileBotResponding | boolean \| number | No | N/A | Allows to control enabled/disabled state of the message input for waiting for the bot's reply mesage. If number value is given, a timer will be set to force unblock the message input. | | dateLocale | Locale | No | enUS | Locale value to be applied to string values of message timestamp and date separator. Locale values must be imported from date-fns. | | enableHideWidgetForDeactivatedUser | boolean | No | false | Determines whether the chatbot widget is hidden when the user is deactivated. | | enableWidgetExpandButton | boolean | No | false | Determines whether the expand button is displayed in the chatbot widget. | | messageStackDirection | 'top' \| 'bottom' | No | 'bottom' | Determines direction at which message stack starts in the message list. |

For internal contributors