MIT-licensed core · self-hostable studio
The machinery stays open to inspection.
Storyloom is a TypeScript monorepo with a factorable engine, provider adapters, a copilot package, local stitching, and an MCP server. Run the studio keyless, then connect only what you need.

A factorable core
One creative engine, several callers.
The boundaries are code, not a platform diagram. Follow each part from the public package into the action path it supports.
Typed engine
Validated Actions, a provider-neutral media contract, and a job runtime for submit, poll, retry, and logging.
Inspect the sourceAgent copilot
A framework-agnostic plan → execute → judge → summarize loop that calls the same actions as the interface.
Inspect the sourceProvider adapters
fal.ai, ElevenLabs, and registry importers normalized behind replaceable adapter boundaries.
Inspect the sourceMCP server
The shared action registry projected as Model Context Protocol tools for an external agent.
Inspect the sourceVisible security model
Browser-held keys, a documented server proxy path, credential scrubbing, and clear trust boundaries.
Inspect the sourceOne action surface
Direct it from the canvas, the copilot, or your agent.
Every caller reaches the same typed engine before Storyloom hands work to a provider or the local stitcher.
Keyless by default
Clone it, run it, and exercise the complete loop.
With no provider or model keys, Storyloom uses deterministic placeholder media. The board, copilot plan, action calls, placement, and exports remain testable.
git clone https://github.com/VedanthB/storyloom.git
cd storyloom
pnpm install
pnpm dev
# http://localhost:3000
# no account, database, or provider key requiredCreator-owned infrastructure
Bring keys with the trust boundary understood.
A key connected in the browser is sent to your Storyloom deployment and then to the chosen provider. There is no credential database, but the deployment is still part of the path.
- 01
Browser storage
Connector values are stored in localStorage on the Storyloom origin.
- 02
Your deployment
The request proxy validates inputs, resolves the key, and executes the selected action.
- 03
Your provider
The provider processes the generation on the account associated with that key.
License reality
Open source does not erase dependency terms.
Storyloom’s own code is MIT. tldraw, optional Remotion paths, FFmpeg builds, and model outputs each carry separate terms that self-hosters should review.
Read it before you trust it
The shortest path to understanding Storyloom is through the source.
Run it locally without keys, inspect the action path, and connect only the providers your workflow needs.