CLI och SDK

TypeScript-klienten @sketchie/sdk och kommandoraden sketchie är tunna, typade wrappers över samma HTTP-API. Båda läser din nyckel från SKETCHIE_API_KEY och går som standard till https://sketchie.ai/api.

SDK:n och CLI:n levereras som en del av Sketchie-verktygslådan. Om ditt register ännu inte löser paketet kan du köra dem från Sketchie-repot med bun. Det råa HTTP-API:et fungerar idag från vilket språk som helst.

TypeScript SDK

Skapa en klient, generera en förklaring med de vänliga fälten, och vänta på rendret.

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

Redigerings- och omrendreringsloopen

Redigerbarhetskilen: en färdig förklaring returnerar sin sceneGraph. Committa den med editExplainerGraph för att lägga till en version utan att förbruka ytterligare en gratis videoskapandeplats, eller skicka en instruktion på vanligt språk. Den första omrendreringen av varje video är gratis. Senare omrendreringar använder betalplansminuter.

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);

Lista röster

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

Andra metoder: getExplainer, listExplainers, revertExplainer, duplicateExplainer, och deleteExplainer.

Kommandorad

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

Flaggor och miljö

FlaggaBetydelse
--length <M:SS|sec> Mållängd, t.ex. 0:30, 1:00, eller sekunder. En positiv multipel av 30. Utelämna för auto.
--aspect <ratio> 16:9 (standard), 9:16, eller 1:1.
--voice <ref> En röstreferens (se sketchie voices). Valfritt; standard Nora.
--limit <n> Max rader för list, 1 till 100 (standard 50).
--wait Pollrar tills rendret slutförs eller misslyckas.
--json Maskinläsbar utdata på stdout.
--api-url <url> API-bas-URL inklusive /api-prefixet. Env: SKETCHIE_API_URL.
--api-key <key> Din API-nyckel. Env: SKETCHIE_API_KEY. Skrivs aldrig ut i utdata.