NG

nishit-g/tokovo

Code review
78 stars Quality 66 Trend 22MIT

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.

Watch the demo clip

What Tokovo Does

Tokovo turns a phone-native story into a repeatable production pipeline:

  1. Generate or write a script, characters, tone, and episode arc.
  2. Place the action inside one or many simulated devices: chats, feeds, DMs, notifications, calls, lockscreens, and screen recordings.
  3. Direct pacing, camera moves, captions, keyboard input, sound, voice, and cliffhangers.
  4. Preview the episode in browser.
  5. 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

  1. Create a *.episode.ts file in packages/episodes/src.
  2. Define metadata with defineEpisode.
  3. Build the timeline with the code-first episode builder.
  4. Register the episode in the release or showcase catalog.
  5. Validate with pnpm validate.
  6. Preview in video-runner.
  7. 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.md is the canonical engineering-documentation index.
  • docs/ENGINEERING_HANDBOOK.md is the complete current architecture and product handbook.
  • docs/CAMERA.md, docs/WHATSAPP.md, docs/X.md, and docs/PLATFORM_VISUALS.md are the specialist architecture references.
  • docs/RENDERING.md, docs/STUDIO.md, and docs/OPERATIONS.md own rendering, product scope, and operations.
  • apps/docs/app/page.mdx is the documentation home.
  • llms.txt, AGENTS.md, CLAUDE.md, and .skills/tokovo-authoring/SKILL.md provide LLM and coding-agent context.
  • apps/docs/app/showcase/page.mdx lists the current showcase surface.
  • apps/docs/app/getting-started/quickstart/page.mdx is the fastest render path.
  • apps/docs/app/getting-started/first-episode/page.mdx explains the authoring shape.
  • apps/docs/app/guides/object-storage-assets/page.mdx explains local and object-storage assets.
  • ASSET_LICENSES.md records 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.

View the full README on GitHub

Recommended Tools

Try a different keyword or remove a filter.

Install

npx skillfish add nishit-g/tokovo
New to MCP? Start with the mcpskill.org guide →