Tokovo is an AI-native studio for multi-device shows that happen inside phones.
Create cinematic chat dramas, social-feed stories, screen-recorded episodes, and short-form series without rebuilding phone screens in After Effects. Tokovo gives AI and creators a full phone-native production stage: one or many simulated devices, app worlds, OS surfaces, camera direction, sound, voice, backgrounds, overlays, and deterministic rendering.
Tokovo turns a phone-native story into a repeatable production pipeline:
- Generate or write a script, characters, tone, and episode arc.
- Place the action inside one or many simulated devices: chats, feeds, DMs, notifications, calls, lockscreens, and screen recordings.
- Direct pacing, camera moves, captions, keyboard input, sound, voice, and cliffhangers.
- Preview the episode in browser.
- Render a vertical MP4 for Shorts, Reels, TikTok, and serialized story formats.
The public repo exposes the engine behind that studio: TypeScript episode definitions, app simulators, device systems, render orchestration, validation, and showcase assets.
Phone-native stories are already a format. People watch drama, comedy, product narratives, and social arcs through chats, feeds, DMs, screenshots, and recordings. Production is still too manual: screen recording, editing layers, recreating messages, nudging timelines, and fixing every variant by hand.
AI can now generate scripts, branches, edits, translations, captions, and variations. Tokovo gives that AI a controlled studio instead of a blank video canvas:
- generate one episode concept and render many platform-ready cuts
- stage one phone, split-screen phones, or multi-device narrative beats in the same episode
- direct the phone OS, app state, camera, sound, voice, and timing as structured data
- keep every story beat and render artifact reviewable
- ship repeatable series instead of one-off timeline projects
- avoid manual After Effects work for phone-screen stories
Tokovo's v1 target surface covers:
| Surface | Package | What it covers |
|---|---|---|
| Device and OS | @tokovo/devices, @tokovo/device-* |
iPhone-style frames, multi-device scenes, status UI, keyboard, notifications, camera anchors |
| Messaging | @tokovo/apps-whatsapp, @tokovo/apps-imessage |
chats, group threads, typing, read states, media-style cards |
| Social apps | @tokovo/apps-instagram, @tokovo/apps-x, @tokovo/apps-snapchat |
feeds, stories, profiles, DMs, notifications |
| Work apps | @tokovo/apps-linkedin, @tokovo/apps-teams |
message threads, channels, profiles, activity surfaces |
| Storytelling tools | @tokovo/overlay, @tokovo/background, @tokovo/voice |
captions, backgrounds, procedural sound, music/audio cues, voice tracks |
| Rendering | video-runner, @tokovo/render-service |
local preview, MP4 export, render-service primitives |
Start with the creator-series showcase:
EPISODE_ID=v2-creator-series-showcase pnpm --filter video-runner render:fastThe render writes an MP4 and manifest under apps/video-runner/out/.
Then try app-specific showcases:
EPISODE_ID=whatsapp-flagship-v2 pnpm --filter video-runner render:fast
EPISODE_ID=instagram-flagship-v2 pnpm --filter video-runner render:fast
EPISODE_ID=x-flagship-v2 pnpm --filter video-runner render:fast
EPISODE_ID=typewriter-flagship-v2 pnpm --filter video-runner render:fastpnpm install
pnpm validate
EPISODE_ID=v2-creator-series-showcase pnpm --filter video-runner render:fastFor interactive preview:
pnpm --filter video-runner devRequirements:
- Node.js 22 or 24
- pnpm 10.28.2
Install dependencies:
pnpm installOpen the main development surfaces:
pnpm devPreview only the renderer:
pnpm --filter video-runner devThese are good first renders when checking the v1 target surface:
| Episode ID | Shows |
|---|---|
v2-creator-series-showcase |
lockscreen, notifications, app switching, typed keyboard, camera direction |
multi-device-exhaustive |
parallel phones, split pacing, screen recording, cross-app continuity |
whatsapp-flagship-v2 |
chat list, group thread, updates, calls, typed replies |
instagram-flagship-v2 |
story, DM, profile, creator-facing pacing |
x-flagship-v2 |
timeline, post detail, replies, notifications |
typewriter-flagship-v2 |
typewriter app, procedural sound effects, text timing |
screen-recording-exhaustive |
OS chrome and screen-recording realism |
The full showcase matrix is documented in apps/docs/app/showcase/page.mdx.
| Path | Purpose |
|---|---|
packages/episodes |
canonical episode definitions, release/studio catalogs, validation |
packages/dsl |
timeline builder primitives for devices, camera, OS, audio, overlays |
packages/compiler |
lowers episode definitions into renderable IR |
packages/core |
deterministic runtime, registries, logging, validation |
packages/renderer |
React render surface and camera-aware layout |
packages/apps-* |
app simulators for phone-native stories |
packages/device-* |
OS-owned interactions: camera, keyboard, notifications |
apps/video-runner |
preview/render app |
apps/docs |
public documentation site |
apps/web |
marketing site |
apps/render-service |
render-service CLI and render orchestration primitives |
- Create a
*.episode.tsfile inpackages/episodes/src. - Define metadata with
defineEpisode. - Build the timeline with the code-first episode builder.
- Register the episode in the release or studio catalog.
- Validate with
pnpm validate. - Preview in
video-runner. - Render with
pnpm --filter video-runner render:fast.
The canonical release gate is:
pnpm verify:releaseFor focused local work, these are the checks most contributors will use:
pnpm lint:ox
pnpm lint:release
pnpm -s typecheck:solution
pnpm validate
pnpm --filter @tokovo/episodes test
pnpm --filter video-runner typecheck
pnpm --filter docs buildapps/docs/app/page.mdxis the documentation home.llms.txt,AGENTS.md,CLAUDE.md, and.skills/tokovo-authoring/SKILL.mdprovide LLM and coding-agent context.apps/docs/app/showcase/page.mdxlists the current v1 showcase surface.apps/docs/app/getting-started/quickstart/page.mdxis the fastest render path.apps/docs/app/getting-started/first-episode/page.mdxexplains the authoring shape.apps/docs/app/guides/object-storage-assets/page.mdxexplains local and object-storage assets.docs/ARCHITECTURE.mddescribes runtime boundaries.docs/V1_STABILITY.mddefines the v1 readiness bar.docs/operations/release.mddocuments the release gate.docs/operations/public-release.mdtracks public-release readiness.ASSET_LICENSES.mdrecords bundled asset provenance.
Run the docs site locally:
pnpm --filter docs devThe public v1 bar is intentionally strict:
- app simulators must own their reducers, views, anchors, and DSL helpers
- episodes must validate before they are rendered
- multi-device episodes should author device focus intentionally
- camera targets should resolve to semantic anchors instead of fallback boxes
- audio cues, generated sounds, voice tracks, and backgrounds should be declared as episode data
- docs assets must be intentional, licensed, and listed in
ASSET_LICENSES.md - generated renders stay out of git unless they are part of the docs showcase
Start with CONTRIBUTING.md, keep changes scoped, and run the relevant checks before opening a pull request.
For security issues, follow SECURITY.md instead of opening a public issue.
Tokovo is released under the MIT License. See LICENSE.
