A JavaScript SDK for Decart's models.
npm install @decartai/sdk
# or
pnpm add @decartai/sdk
# or
yarn add @decartai/sdkFor complete documentation, guides, and examples, visit: https://docs.platform.decart.ai/sdks/javascript
import { createDecartClient, models } from "@decartai/sdk";
const model = models.realtime("mirage_v2");
// Get user's camera stream
const stream = await navigator.mediaDevices.getUserMedia({
audio: true,
video: {
frameRate: model.fps,
width: model.width,
height: model.height,
}
});
// Create a client
const client = createDecartClient({
apiKey: "your-api-key-here"
});
// Connect and transform the video stream
const realtimeClient = await client.realtime.connect(stream, {
model,
onRemoteStream: (transformedStream) => {
videoElement.srcObject = transformedStream;
},
initialState: {
prompt: {
text: "Anime",
enhance: true
}
}
});
// Change the style on the fly
realtimeClient.setPrompt("Cyberpunk city");
// Disconnect when done
realtimeClient.disconnect();For video generation jobs, use the queue API to submit jobs and poll for results:
import { createDecartClient, models } from "@decartai/sdk";
const client = createDecartClient({
apiKey: "your-api-key-here"
});
// Submit and poll automatically
const result = await client.queue.submitAndPoll({
model: models.video("lucy-pro-t2v"),
prompt: "A cat playing piano",
onStatusChange: (job) => {
console.log(`Status: ${job.status}`);
}
});
if (result.status === "completed") {
videoElement.src = URL.createObjectURL(result.data);
} else {
console.error("Job failed:", result.error);
}Or manage the polling manually:
// Submit the job
const job = await client.queue.submit({
model: models.video("lucy-pro-t2v"),
prompt: "A cat playing piano"
});
console.log(`Job ID: ${job.job_id}`);
// Poll for status
const status = await client.queue.status(job.job_id);
console.log(`Status: ${status.status}`);
// Get result when completed
if (status.status === "completed") {
const blob = await client.queue.result(job.job_id);
videoElement.src = URL.createObjectURL(blob);
}pnpm installpnpm build- Build the projectpnpm dev:example- Run Vite dev server for examplespnpm test- Run unit testspnpm test:e2e- Run end-to-end testspnpm typecheck- Type check with TypeScriptpnpm format- Format code with Biomepnpm lint- Lint code with Biome
- Version bump: Run
pnpm releaseto bump the version (this usesbumppto create a new version tag) and push it to GitHub - Automated publish: The GitHub Actions workflow will:
- Build the project
- Publish to npm
- Create a GitHub release with changelog
The package is published to npm as @decartai/sdk.
MIT