CLI y SDK
El cliente de TypeScript @sketchie/sdk y la línea de comandos sketchie son envoltorios finos y tipados sobre la misma API HTTP. Ambos leen tu clave de SKETCHIE_API_KEY y usan https://sketchie.ai/api por defecto.
El SDK y la CLI vienen como parte del toolkit de Sketchie. Si tu registro aún no resuelve el paquete, puedes ejecutarlos desde el repositorio de Sketchie con bun. La API HTTP en crudo funciona desde cualquier lenguaje hoy.
SDK de TypeScript
Crea un cliente, genera un explicativo con los campos amigables y espera al render.
import { SketchieClient } from '@sketchie/sdk';
const client = new SketchieClient({
apiKey: process.env.SKETCHIE_API_KEY, // Bearer sk_...
// baseUrl defaults to https://sketchie.ai/api
});
// Friendly fields: input (the topic) and length ("M:SS", a multiple of 30).
const created = await client.createExplainer({
input: 'Explain how DNS resolves a domain name',
length: '0:30',
aspect: '16:9',
});
// Poll until the render finishes (or fails).
const done = await client.waitForExplainer(created.id, {
onUpdate: (e) => console.log(e.status),
});
console.log(done.videoUrl); // the rendered MP4
console.log(done.sceneGraph); // the editable scene graph El bucle de edición y re-render
La cuña de editabilidad: un explicativo terminado te devuelve su sceneGraph. Confírmalo con editExplainerGraph para agregar una versión sin consumir otra creación de video gratis, o envía una instrucción en lenguaje natural. El primer re-render de cada video es gratis. Los siguientes usan minutos de plan de pago.
// After a video is ready you get back its editable sceneGraph.
// Edit it, then append a new version to the existing explainer.
const edited = editScenes(done.sceneGraph!); // your UI edits the graph
const rerender = await client.editExplainerGraph(done.id, edited);
await client.waitForVersion(done.id, rerender.id);
// Or apply a plain-language instruction (a targeted re-render):
const version = await client.editExplainer(done.id, 'make scene 2 shorter');
await client.waitForVersion(done.id, version.id); Listar voces
const voices = await client.listVoices();
// [{ id: 'sketchie:sulafat', name: 'Nora', isDefault: true, preview_url, ... }] Otros métodos: getExplainer, listExplainers, revertExplainer, duplicateExplainer y deleteExplainer.
Línea de comandos
# Discover voices
sketchie voices
# Generate (returns the queued record immediately)
sketchie generate "Explain how DNS resolves a domain name" --length 0:30 --aspect 16:9
# Generate and wait for the finished render
sketchie generate "Explain how DNS resolves" --length 1:00 --wait
# Status of an existing explainer
sketchie status <id>
# Conversational edit (a targeted re-render)
sketchie edit <id> "make the title scene shorter" --wait
# List your explainers
sketchie list --limit 20 Flags y entorno
| Flag | Significado |
|---|---|
--length <M:SS|sec> | Duración objetivo, p. ej. 0:30, 1:00 o segundos. Un múltiplo positivo de 30. Omite para automático. |
--aspect <ratio> | 16:9 (por defecto), 9:16 o 1:1. |
--voice <ref> | Un ref de voz (ver sketchie voices). Opcional; por defecto Nora. |
--limit <n> | Filas máximas para list, 1 a 100 (por defecto 50). |
--wait | Sondea hasta que el render termine o falle. |
--json | Salida legible por máquina en stdout. |
--api-url <url> | URL base de la API incluido el prefijo /api. Env: SKETCHIE_API_URL. |
--api-key <key> | Tu clave de API. Env: SKETCHIE_API_KEY. Nunca se imprime en la salida. |