kapture-sdk
v1.0.0
Published
SDK for Kapture Cloud — Slack Huddle transcription as a service by fikar.ai
Maintainers
Readme
kapture-sdk
Official SDK for Kapture Cloud — Slack Huddle transcription as a service by fikar.ai.
Zero dependencies. Works in any Node.js app.
Install
npm install kapture-sdkQuick start
const { KaptureClient } = require('kapture-sdk');
const kapture = new KaptureClient({ apiKey: 'kap_your_api_key_here' });
// Register your Slack workspace
await kapture.connectWorkspace('T0A7SPP18MC', 'My Company');
// Tell Kapture which channel to monitor for huddles
await kapture.monitorChannel('T0A7SPP18MC', 'C0A87NLSQ57', 'general');
// Register a webhook to receive results automatically
await kapture.setWebhook('https://yourapp.com/kapture-results');
// Or poll for a transcript after a huddle
const transcript = await kapture.getTranscript('R0AL5QZ49CY');
console.log(transcript.transcript); // full text
const participants = await kapture.getParticipants('R0AL5QZ49CY');
console.log(participants.participants); // [{user_id, name, email}]
const status = await kapture.getStatus('R0AL5QZ49CY');
console.log(status.status); // 'recording' | 'done' | 'not_found'API Reference
new KaptureClient({ apiKey, baseUrl? })
| Option | Required | Description |
|---|---|---|
| apiKey | ✅ | Your Kapture API key (kap_...) |
| baseUrl | ❌ | Override server URL. Default: https://kapture.duckdns.org |
.connectWorkspace(workspaceId, workspaceName, botToken?)
Register a Slack workspace with Kapture.
await kapture.connectWorkspace('T0A7SPP18MC', 'Acme Corp');.listWorkspaces()
List all workspaces registered to your API key.
const workspaces = await kapture.listWorkspaces();.monitorChannel(workspaceId, channelId, channelName?)
Tell Kapture to watch a specific channel for huddles.
await kapture.monitorChannel('T0A7SPP18MC', 'C0A87NLSQ57', 'general');.getTranscript(huddleId)
Get the full transcript for a completed huddle.
const result = await kapture.getTranscript('R0AL5QZ49CY');
// result.transcript — full text
// result.duration — seconds
// result.start_time / end_time
// result.workspace / channel.getParticipants(huddleId)
Get participants who were in the huddle.
const result = await kapture.getParticipants('R0AL5QZ49CY');
// result.participants — [{user_id, name?, email?}].getStatus(huddleId)
Check if a huddle is still recording, done, or not found.
const result = await kapture.getStatus('R0AL5QZ49CY');
// result.status — 'recording' | 'done' | 'not_found'.setWebhook(webhookUrl, workspaceId?)
Register a webhook. Kapture will POST to this URL when a transcript is ready.
await kapture.setWebhook('https://yourapp.com/kapture-results');Webhook payload (POST to your URL):
{
"transcription_id": 42
}Use getTranscript with the huddle ID to fetch full details.
Getting an API key
- Visit
https://kapture.duckdns.org/oauth/install - Connect your Slack workspace
- Your API key is shown on screen — save it immediately
How it works
- Your Slack workspace sends huddle events to Kapture Cloud
- Kapture's bot joins the huddle as a headless Chrome instance
- Audio is captured via PipeWire and transcribed via OpenAI Whisper
- Results are saved to the database and delivered via webhook
- You fetch them via this SDK
fikar.ai • kapture.duckdns.org
