CLI та SDK

Клієнт TypeScript @sketchie/sdk та командний рядок sketchie — це тонкі, типізовані обгортки над одним і тим же HTTP API. Обидва читають ваш ключ з SKETCHIE_API_KEY і за замовчуванням звертаються до https://sketchie.ai/api.

SDK та CLI постачаються як частина набору інструментів Sketchie. Якщо ваш реєстр ще не розпізнає пакет, ви можете запустити їх з репозиторію Sketchie за допомогою bun. Необроблений HTTP API сьогодні працює з будь-якої мови.

TypeScript SDK

Створіть клієнт, згенеруйте пояснення за допомогою дружніх полів і зачекайте на рендер.

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

Цикл редагування та повторного рендера

Клин редагованості: завершене пояснення повертає свій sceneGraph. Зафіксуйте його за допомогою editExplainerGraph, щоб додати версію без витрачання ще одного слоту безкоштовного створення відео, або надішліть інструкцію простою мовою. Перший повторний рендер кожного відео безкоштовний. Наступні використовують хвилини платного плану.

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

Перелік голосів

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

Інші методи: getExplainer, listExplainers, revertExplainer, duplicateExplainer, та deleteExplainer.

Командний рядок

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

Прапорці та середовище

ПрапорецьЗначення
--length <M:SS|sec> Цільова довжина, напр. 0:30, 1:00, або секунди. Додатне кратне 30. Пропустіть для авто.
--aspect <ratio> 16:9 (за замовчуванням), 9:16, або 1:1.
--voice <ref> Посилання на голос (див. sketchie voices). Необов’язково; за замовчуванням Nora.
--limit <n> Максимум рядків для list, від 1 до 100 (за замовчуванням 50).
--wait Опитує, поки рендер не завершиться або не зазнає невдачі.
--json Машинозчитуваний вивід у stdout.
--api-url <url> Базовий URL API, включаючи префікс /api. Env: SKETCHIE_API_URL.
--api-key <key> Ваш ключ API. Env: SKETCHIE_API_KEY. Ніколи не виводиться.