CLI dan SDK

Klien TypeScript @sketchie/sdk dan baris perintah sketchie adalah pembungkus tipis dan bertipe di atas API HTTP yang sama. Keduanya membaca kunci Anda dari SKETCHIE_API_KEY dan default ke https://sketchie.ai/api.

SDK dan CLI hadir sebagai bagian dari toolkit Sketchie. Jika registry Anda belum me-resolve paketnya, Anda bisa menjalankannya dari repositori Sketchie dengan bun. API HTTP mentah bekerja dari bahasa apa pun hari ini.

SDK TypeScript

Buat sebuah klien, buat penjelas dengan field ramah, dan tunggu 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

Loop edit dan render ulang

Baji editabilitas: penjelas yang jadi mengembalikan sceneGraph-nya. Commit dengan editExplainerGraph untuk menambah versi tanpa memakai slot pembuatan video gratis lagi, atau kirim instruksi berbahasa sehari-hari. Render ulang pertama setiap video gratis. Yang berikutnya memakai menit paket berbayar.

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

Mendaftar suara

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

Metode lain: getExplainer, listExplainers, revertExplainer, duplicateExplainer, dan deleteExplainer.

Baris perintah

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 dan lingkungan

FlagArti
--length <M:SS|sec> Durasi target, mis. 0:30, 1:00, atau detik. Kelipatan positif 30. Hilangkan untuk otomatis.
--aspect <ratio> 16:9 (bawaan), 9:16, atau 1:1.
--voice <ref> Sebuah ref suara (lihat sketchie voices). Opsional; bawaan Nora.
--limit <n> Baris maksimum untuk list, 1 sampai 100 (bawaan 50).
--wait Memantau sampai render selesai atau gagal.
--json Keluaran yang bisa dibaca mesin di stdout.
--api-url <url> URL dasar API termasuk awalan /api. Env: SKETCHIE_API_URL.
--api-key <key> Kunci API Anda. Env: SKETCHIE_API_KEY. Tidak pernah dicetak di keluaran.