Tokovo is an AI-native studio for multi-device shows that happen inside phones.
Overview
Tokovo is an AI-native studio for multi-device shows that happen inside phones.
README
Tokovo
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.
Current product priority: create and publish excellent episodes through checked-in TypeScript and LLM-assisted code authoring. The visual-editor experiment and its Studio-specific packages were deleted. See
docs/STUDIO.md.
What Tokovo Does
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.
Why It Exists
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
What You Can Make
Tokovo is a production engine for stories where the phone is the stage:
| Format | Example |
|---|---|
| Serialized phone-native drama | A recurring manager, family, friendship, or relationship story told through chats, calls, and notifications |
| Topical original fiction | A fictional cast reacts to a match, launch, cultural moment, or public event across several phones |
| Mystery and investigation | Deleted messages, unknown callers, location drops, and conflicting digital evidence drive a reveal |
| Comedy and satire | Office absurdity, family-group rituals, autocorrect chaos, creator culture, and internet behavior |
| Story-native promotion | A product link, booking, order, or recommendation changes the plot instead of interrupting it |
| Commentary and reconstruction | A narrator shows how a rumor, launch, outage, or controversy moved through private and public surfaces |
| Education and public-interest story | Scam awareness, finance, cybersecurity, training, history, or language taught through consequences |
| Multi-perspective anthology | One event appears differently on an employee’s, manager’s, journalist’s, and family member’s phone |
| Alternate and regional editions | Reuse the story structure with another language, culture, cast, platform, sponsor, camera plan, or ending |
See What Tokovo Can Make for the complete format catalog and examples.
Multilingual production
Tokovo can adapt story copy, RTL direction, keyboard script, typography, app/system chrome, voice, timing, and camera framing for regional editions. Current implementation depth is package-specific: device system surfaces cover English, Hindi, Arabic, and Japanese; X covers English, Arabic RTL, and Hindi; WhatsApp covers English and Arabic RTL. Every advertised language/app combination still requires visual review.
Production surface
Tokovo’s current release surface covers:
| Surface | Package | What it covers |
|---|---|---|
| Device and OS | @tokovo/devices, @tokovo/device-* |
iPhone-style frames, multi-device scenes, status UI, keyboard, notifications, cinematic subjects |
| 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 |
Render The Showcase
Start with the multi-device social showcase:
EPISODE_ID=social-launch-multi-device pnpm --filter video-runner render:fast
The render writes an MP4 and manifest under apps/video-runner/out/.
render:fast builds its workspace dependencies first so the MP4 cannot silently
use stale package output. Set TOKOVO_SKIP_WORKSPACE_BUILD=1 only when those
dependencies were already built from the current source tree.
Then try app-specific showcases:
EPISODE_ID=whatsapp-interaction-matrix-v3 pnpm --filter video-runner render:fast
EPISODE_ID=instagram-flagship-v2 pnpm --filter video-runner render:fast
EPISODE_ID=x-cinematic-flagship pnpm --filter video-runner render:fast
EPISODE_ID=typewriter-flagship-v2 pnpm --filter video-runner render:fast
First 10 Minutes
mise install
mise exec -- pnpm install
mise exec -- pnpm validate
EPISODE_ID=v2-creator-series-showcase mise exec -- pnpm --filter video-runner render:fast
For interactive preview:
pnpm --filter video-runner dev
Local Development
Requirements:
- mise
- the exact Node.js and pnpm versions pinned in
.mise.toml
Install the toolchain and dependencies:
mise install
mise exec -- pnpm install
Activate mise in your interactive shell to use the shorter pnpm ... commands below. In CI and
other non-interactive shells, keep the explicit mise exec -- prefix.
Open the main development surfaces:
pnpm dev
Preview only the renderer:
pnpm --filter video-runner dev
Showcase Episodes
These are good first renders when checking the current release 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-interaction-matrix-v3 |
two devices, RTL, message/media lifecycle, gestures, Status, calls, communities, settings |
instagram-flagship-v2 |
story, DM, profile, creator-facing pacing |
x-cinematic-flagship |
entity-directed X cinema, keyboard, notifications, DMs, polls, video, and profiles |
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.
Repo Map
| Path | Purpose |
|---|---|
packages/episodes |
canonical episode definitions, release/showcase catalogs, validation |
packages/dsl |
timeline and cinematic-program builders |
packages/compiler |
lowers episode definitions into renderable IR |
packages/core |
deterministic runtime, registries, logging, validation |
packages/camera |
headless camera preparation, evaluation, and diagnostics |
packages/renderer |
React render surface and camera-aware layout |
packages/apps-* |
app simulators for phone-native stories |
packages/device-* |
OS-owned interactions: keyboard and 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 |
Authoring Flow
- 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 showcase catalog.
- Validate with
pnpm validate. - Preview in
video-runner. - Render with
pnpm --filter video-runner render:fast.
Release Gate
The canonical release gate is:
pnpm verify:release
For 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 build
Documentation
docs/README.mdis the canonical engineering-documentation index.docs/ENGINEERING_HANDBOOK.mdis the complete current architecture and product handbook.docs/CAMERA.md,docs/WHATSAPP.md,docs/X.md, anddocs/PLATFORM_VISUALS.mdare the specialist architecture references.docs/RENDERING.md,docs/STUDIO.md, anddocs/OPERATIONS.mdown rendering, product scope, and operations.apps/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 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.ASSET_LICENSES.mdrecords bundled asset provenance.
Run the docs site locally:
pnpm --filter docs dev
Release Standard
The public release bar is intentionally strict:
- app simulators must own their reducers, views, subjects, and DSL helpers
- episodes must validate before they are rendered
- multi-device episodes should author device focus intentionally
- camera targets should resolve to semantic subjects 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
Contributing
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.
License
Tokovo is released under the MIT License. See LICENSE.
Recommended Tools
Try a different keyword or remove a filter.
Install
npx skillfish add nishit-g/tokovo