CLI e SDK

Il client TypeScript @sketchie/sdk e la riga di comando sketchie sono wrapper sottili e tipizzati sulla stessa API HTTP. Entrambi leggono la tua chiave da SKETCHIE_API_KEY e puntano di default a https://sketchie.ai/api.

L’SDK e la CLI arrivano come parte del toolkit di Sketchie. Se il tuo registry non risolve ancora il pacchetto, puoi eseguirli dal repository di Sketchie con bun. L’API HTTP grezza funziona da qualsiasi linguaggio oggi.

SDK TypeScript

Crea un client, genera un esplicativo con i campi comodi e aspetta il render.

sketchie.ts
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

Il ciclo di modifica e ri-render

Il cuneo della modificabilità: un esplicativo finito restituisce il suo sceneGraph. Confermalo con editExplainerGraph per aggiungere una versione senza consumare un altro slot di creazione video gratis, o invia un’istruzione in linguaggio naturale. Il primo ri-render di ogni video è gratis. I successivi usano i minuti del piano a pagamento.

edit.ts
// 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);

Elencare le voci

voices.ts
const voices = await client.listVoices();
// [{ id: 'sketchie:sulafat', name: 'Nora', isDefault: true, preview_url, ... }]

Altri metodi: getExplainer, listExplainers, revertExplainer, duplicateExplainer e deleteExplainer.

Riga di comando

Terminal
# 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

Flag e ambiente

FlagSignificato
--length <M:SS|sec> Durata target, es. 0:30, 1:00 o secondi. Un multiplo positivo di 30. Ometti per auto.
--aspect <ratio> 16:9 (predefinito), 9:16 o 1:1.
--voice <ref> Un ref voce (vedi sketchie voices). Opzionale; predefinito Nora.
--limit <n> Righe massime per list, 1 a 100 (predefinito 50).
--wait Interroga finché il render finisce o fallisce.
--json Output leggibile dalla macchina su stdout.
--api-url <url> URL base dell’API incluso il prefisso /api. Env: SKETCHIE_API_URL.
--api-key <key> La tua chiave API. Env: SKETCHIE_API_KEY. Mai stampata nell’output.