@support_kit/core
v0.1.1
Published
Framework-agnostic SupportKit chat client
Readme
@support_kit/core
Framework-agnostic SupportKit chat client. Use this package directly when building a custom UI, or as the foundation for the framework-specific SDKs.
Requirements
- Node.js 18+
- A SupportKit API key (
sk_live_...) from Dashboard → API keys
Install
Published on npm:
npm install @support_kit/coreQuick start
import {
createSupportKitClient,
createLocalStorageSession,
} from "@support_kit/core";
const client = createSupportKitClient({
apiKey: "sk_live_...",
baseUrl: "https://api.yourdomain.com",
sessionStorage: createLocalStorageSession(),
});
const settings = await client.getWidgetSettings();
const { answer, conversationId } = await client.sendMessage({
message: "How do I reset my password?",
conversationId: null,
});API overview
| Method | Description |
|--------|-------------|
| sendMessage | Send a chat message (creates or continues a conversation) |
| getMessages | Paginated messages for a conversation |
| listConversations | Paginated conversation list for the session |
| uploadAttachment | Upload a file before sending |
| getWidgetSettings | Suggested questions and widget metadata |
The client emits session:change and settings:change events via client.events.
Session storage
| Helper | Use case |
|--------|----------|
| createLocalStorageSession() | Browser (default for web widgets) |
| createLocalStorageSessionWithKey(key) | Browser with a custom storage key |
| createMemorySession() | Tests or ephemeral sessions |
Widget utilities
@support_kit/core also exports shared widget logic (pagination, media validation, composer helpers, default tab content) used by the drop-in widgets. Import @support_kit/core/widget.css when rendering the stock widget styles.
Configuration
createSupportKitClient({
baseUrl: "https://api.yourdomain.com", // required
apiKey: "sk_live_...", // required
packageName: "com.example.app", // mobile security allowlists
sessionToken: "...", // optional initial session
sessionStorage: createLocalStorageSession(),
headers: { sessionToken: "X-Session-Token" },
fetch: customFetch, // React Native / tests
});OpenAPI
API contract: ../../openapi/public-api.yaml
