Skip to main content
Glama
README.md
# ClipKit

**The video infra for agents.** ClipKit turns a JSON timeline — the open
**ClipKit Protocol** — into rendered video on the GPU. Describe a video as
structured data; get an MP4. Built for AI agents and the developers shipping them.

[clipkit.dev](https://clipkit.dev) · [Docs](https://clipkit.dev/docs) · [Protocol](https://clipkit.dev/docs/protocol) · [Agent quickstarts](https://clipkit.dev/docs/mcp)

https://github.com/user-attachments/assets/ff4b7e9b-2e0a-40f4-a6a1-042e981fc65f

<p align="center"><sub><b>↑ Made with ClipKit.</b> Every frame of this promo was rendered from a ClipKit Protocol document — no editor, no timeline UI, just structured data. <a href="https://api.clipkit.dev/storage/v1/object/public/remote-assets/clipkit-promo.mp4">▶&nbsp;Play</a> if it doesn't load inline.</sub></p>

## Quick start

```bash
npm install -g @clipkit/cli

clipkit new my-video.json                 # scaffold a Source
clipkit render my-video.json -o out.mp4   # render locally (headless Chrome)
```

…or from code:

```ts
import { render } from '@clipkit/renderer';
import { writeFile } from 'node:fs/promises';

const { buffer } = await render({ source });   // source = a ClipKit Protocol document
await writeFile('out.mp4', buffer);
```

Local rendering uses your installed Google Chrome (for WebCodecs). For GPU-accelerated
and pro-format (ProRes / AV1 / transparent) output, render on the hosted service with
`clipkit render --cloud`.

## What's here

A monorepo; each package publishes to npm under the `@clipkit` scope.

| Package | What it is |
|---|---|
| [`@clipkit/protocol`](packages/protocol) | the ClipKit Protocol — schema, types, validation |
| [`@clipkit/runtime`](packages/runtime) | the engine — WebGPU/WebGL2 compositor + WebCodecs encoder |
| [`@clipkit/renderer`](packages/renderer) | render a Source to MP4 locally (headless Chrome) |
| [`@clipkit/editor`](packages/editor) | a configurable, embeddable editor over the schema |
| [`@clipkit/editor-core`](packages/editor-core) | the editor's UI-free data layer |
| [`@clipkit/playback`](packages/playback) | browser playback engine |
| [`@clipkit/patterns`](packages/patterns) | composable motion-graphics units |
| [`@clipkit/sfx`](packages/sfx) | procedural sound-effects synthesis |
| [`@clipkit/music-analysis`](packages/music-analysis) | beat / tempo analysis for authoring |
| [`@clipkit/speech-to-text`](packages/speech-to-text) | transcription → captions |
| [`@clipkit/lint`](packages/lint) | protocol-aware validation + plain-language summaries |
| [`@clipkit/mcp-server`](packages/mcp-server) | an MCP server so agents can author + render video |
| [`@clipkit/cli`](packages/cli) | the local-first CLI |

## For AI agents

ClipKit ships an MCP server — point your agent at it and it can build, validate,
preview, and render ClipKit videos:

```bash
npx -y @clipkit/cli mcp        # stdio MCP server
```

See the [agent quickstarts](https://clipkit.dev/docs/mcp) for Claude, Cursor, and more.

## License

Apache-2.0 — **except [`@clipkit/runtime`](packages/runtime)**, which is under the
[Business Source License 1.1](LICENSING.md) and converts to Apache-2.0 four years after
each release. In plain terms: use it, embed it, build your own product on it, and render
for your own customers — all free. The one thing you can't do is offer a competing
*hosted* ClipKit-rendering service. See [LICENSING.md](LICENSING.md) and
[TRADEMARK.md](TRADEMARK.md).

TDQS

A4.4/5.0

Scored across 16 tools

Disambiguation5/5

Each tool targets a distinct action and object: project CRUD, element tweaks, validation, preview, transcription, promo assembly, editor sharing, and rendering. The descriptions explicitly contrast overlapping tools (set_project vs create_project, get_project vs describe_project), so an agent should never confuse them.

Naming Consistency5/5

All 16 tools follow a strict verb_noun pattern with snake_case (create_project, edit_element, render_video). There are no mixed conventions or vague verb-only names, and the verb consistently reflects the operation (get, set, add, edit, delete, validate, preview, render, open, load, transcribe, create).

Tool Count4/5

At 16 tools, this is just one over the typical 3-15 sweet spot, but the server's scope is a full video authoring and rendering pipeline, and every tool serves a distinct stage of that pipeline. It feels appropriately scoped rather than bloated.

Completeness5/5

The tool surface covers the full lifecycle: project creation and replacement, element CRUD, validation with render warnings, still preview, caption transcription, template-based assembly, editor round-tripping, and paid rendering. There are no obvious dead ends—any operation an agent needs is present.

Maintenance

ActivitySlowing
ResponsivenessNo issues