Idea to Short
Kalki is an open-source studio where five AI agents write, illustrate, voice, animate and cut a vertical video from one line of text. Self-hosted, with your own keys.
A finished 9:16 video, labelled as AI-generated, with title, description and tags ready for review.
One studio, a Hinglish channel
A channel carries its audience, language, hooks and a recurring cast with written soul documents. These three ship as seed data. Pick one.
Aryan, 22
Moved from Jaipur to Delhi for college, surviving on a tight monthly allowance while trying to look like he belongs to a richer crowd.
- financially anxious but outwardly chill
- self-deprecating
- aspirational
Priya, 21
Grew up in a middle-class Mumbai family who wanted an engineer, and quietly built a 40K Instagram following while pretending to study.
- sarcastic but loveable
- bold and direct
- hyper-aware of aesthetics
Five agents, one hand-off
A LangGraph director passes one state object down the line. Each bar is sized by what that stage makes.
Inside the studio
Real screens from a local install, seeded with the three demo channels. Point at a row to see it.
Built to run unattended

→ Kling

One file, every feed
Each reel is a 9:16 MP4 that every short-video platform takes as is. The Library writes a caption sized for each one and tells you where its AI label lives.
- YouTube Shorts100-character title, 5,000-character caption, 3 hashtags
- TikTok2,200-character caption, 5 hashtags
- Instagram Reels2,200-character caption, 5 hashtags
- Facebook Reels2,200-character caption, 5 hashtags
- Snapchat Spotlight160-character caption, 3 hashtags
- Pinterest100-character title, 500-character caption, 5 hashtags
- X280-character caption, 2 hashtags
- LinkedIn3,000-character caption, 3 hashtags
Labelled, never laundered
Kalki makes synthetic media and says so. These are design rules, and the test suite checks them.
Every file is tagged
The Producer writes an AI-generated note into the video container. Kalki never strips provenance signals and never fakes camera or device metadata.
Your keys, their terms
Kalki only calls providers with keys you supply. It does not create accounts, solve CAPTCHAs or rotate proxies.
You disclose, you publish
Uploading stays manual. Turn on your platform's altered or synthetic content setting, such as YouTube's, when you post.
No shell over chat
The WhatsApp webhook fails closed, checks a secret in constant time and can only start reels or read status.
Built on open parts
MIT licensed. Read it, fork it, swap any provider.Run it on your machine
You need Bun, Docker, FFmpeg and a Gemini key. Image, voice and video keys are per provider.
git clone https://github.com/harshitwandhare/kalki && cd kalki
cp .env.example .env.local # add AUTH_SECRET and your API keys
bun install
export POSTGRES_PASSWORD=change-me
bun run db:up
bunx prisma migrate deploy
SEED_OWNER_EMAIL=you@example.com SEED_OWNER_PASSWORD='a-long-password' bun run db:seed
bun run dev




