Sendbird Client Plugins: Customize and Debug Chat and Calls

An in-app conversation needs to fit the product around it. A buyer expects Message seller to open the correct thread. The chat screen should follow the app's visual design, and SDK connections and event handlers need to behave consistently as users navigate, reconnect, and sign out. Adding a voice or video call introduces another set of interactions, from device permissions to incoming-call handling.
Working on these requirements with an AI coding agent calls for both product context and Sendbird SDK knowledge. The agent needs to understand the intended behavior alongside the SDK version, UI framework, and integration code already in the project. A change to a screen can also affect navigation, connection handling, or the way a conversation is selected.
Sendbird Client plugins bring Sendbird-specific skills and SDK guidance into Claude Code or Codex. Your agent can use that guidance while customizing Chat UIKit, investigating Chat SDK behavior, or adding 1-to-1 calling with the Calls SDK. You describe the result you want, review the proposed code changes, and check the behavior in your app.
Your app can already connect to Sendbird and send a message. The next request is more specific: reopen the right conversation, match the chat UI to your product, investigate a slow screen, or add a call from an existing conversation.
The workflow below uses an illustrative marketplace app with working Chat. It focuses on changes to an existing integration. For installation and initial setup, follow the Client plugin guide.
How Sendbird Client Plugin Skills Work
The Client Plugin makes Sendbird-specific Skills available to your coding agent. Each skill provides task-specific instructions and guidance that the agent can use to inspect, explain, or change SDK integration code.
You can start in plain language, such as asking for a different UIKit theme or describing a channel problem. The workflow connects your request to the code already in your project:
- Describe the task. Explain the behavior you want or the problem you can reproduce.
- Provide project context. Let the agent inspect relevant SDK, framework, and integration details.
- Use the relevant skill. Your agent can apply its guidance, or you can invoke the skill directly.
- Review the result. Check the findings or changed files, complete any remaining setup, and test the intended behavior.
For example, these requests map to different skills:
| Your task | Related skill |
|---|---|
| Change Chat UIKit colors and message bubbles | ui-customize |
| Investigate a channel that keeps being created | diagnose-channel |
| Review repeated connections or listener cleanup | performance-audit |
| Add incoming-call client handling | calls-incoming |
You can also name a skill directly. In Claude Code, use /sendbird-client:ui-customize; in Codex, use $sendbird-client:ui-customize. The examples below show how these skills fit into specific engineering tasks.
For the current task list and command formats, see the official skill reference. Incoming-call skills cover client integration; push credentials and Dashboard configuration remain separate setup tasks.
Start with the code your app already uses
Before requesting a feature, give the agent the behavior you want to preserve and the part of the application you want to change.
The plugin detects project details such as the platform, framework, and package manager. Your request adds the product context: where the action belongs, which user it targets, and how it should interact with the existing code.
Ask for a summary of the files and behavior it proposes to change. Review that plan before moving into implementation.
Make a conversation entry point behave correctly
A Message seller button needs to resolve the intended conversation and open the correct screen. Repeated taps should follow your product's conversation rules.
The start-chat skill supports a 1-to-1 conversation entry point. If the app creates another channel every time, diagnose-channel helps investigate the existing channel flow.
Review the channel lookup or creation code, the target user's identity, and navigation. Test opening the action twice. Also check your business rule: a conversation per user pair and a conversation per order can require different channel identities. Your service still owns channel access and membership policy.
Adapt Chat UIKit to the rest of your product
Once navigation works, focus the next request on presentation. The ui-customize skill covers Chat UIKit themes and components, including colors, fonts, headers, and message bubbles.
Review which theme values or components changed. Then inspect incoming and outgoing messages, long names, attachments, and both themes in the app. This makes the design request concrete and gives you a focused way to review the result.
For the available tasks and their scope, see the Client plugin skill reference.
Investigate a symptom before changing the integration
A useful debugging request includes what happened, when it happens, and the relevant code or sanitized error output.
Choose the task that matches the symptom:
- A channel is missing or repeatedly created: use
diagnose-channelto investigate channel behavior. - The chat screen slows down over time: use
performance-auditto review issues such as repeated connections, listener cleanup, or excessive loading. - A build fails in a Sendbird package: use
fix-buildwith the relevant error output.
Ask the agent to separate confirmed findings from hypotheses and list anything it could not verify. After a change, repeat the original navigation or build steps. A suggested fix needs to be checked against the symptom that prompted it.
Extend the existing conversation with 1-to-1 Calls
For an app that already has Chat, the next step might be a call action inside a conversation. Define how that action should fit into the existing experience.
Calls uses a separate SDK and sign-in flow. Check that Calls is enabled for the Sendbird app and that your plugin version supports it. For incoming calls on mobile, complete the platform-specific push configuration; the calls-incoming skill helps with the client integration, while credentials and Dashboard settings remain separate work.
Review the call entry point, participant selection, listeners, and controls. Then test outgoing calls, incoming calls, accept, decline, and end behavior between two users on the target devices or browsers. A working Chat session does not establish that Calls works.
Use the Calls integration guide for platform requirements and testing instructions.
Review each change against its intended behavior
Use verify-integration to inspect supported setup details such as SDK versions, initialization, permissions, and handler cleanup. Then check the specific experience you changed:
- Conversation action: opens the intended channel and follows the reuse rule.
- UI customization: fits the product in both themes and handles real content.
- Lifecycle fix: addresses the observed behavior after repeated navigation or sign-out.
- Calls extension: works between two users, including incoming calls and device permissions.
Production token issuance remains a server responsibility. Your agent can use the plugin’s guidance to write client code that calls your endpoint; review it alongside the server implementation. If you use the optional automated Chat runtime check, check its test-app requirements and limits separately.
Bring the next change to your coding agent
Start with one feature request or one reproducible problem in your existing integration. Describe the expected behavior, review the proposed code changes, and check the result in the app.
Explore the Sendbird Client plugin skills for your next SDK task.
Supported platforms and coding tools
Use Sendbird Client plugins with Claude Code or Codex to work on SDK integrations for:
- iOS: Apps built with UIKit or SwiftUI
- Android: Apps built with Views or Jetpack Compose
- React: Web applications
- React Native: Mobile applications
Check the supported products and platforms and the platform-specific guides for feature availability and setup requirements.












