Skill
Give your AI assistant direct access to real-time HK/US stock data and trading capabilities with Longbridge Skill
翻译准备中
AI video director for Claude Code: pick one of three complete films and Claude designs, animates and renders it. Launch films, explainers, reels from your footage, motion graphics. Built on HyperFrames. Formerly Rasa Director.
翻译准备中
取自仓库 README
正在加载完整 README。 以下为已保存的摘录。
Pick the film. Claude makes it. RasanAI is an AI video director for Claude Code, built on HyperFrames: launch films, explainers, PR videos, brand films, music videos, reels cut from a folder of your own footage, captioned talking heads, and short motion graphics.查看完整 README ↗Pick the film. Claude makes it. RasanAI is an AI video director for Claude Code, built on HyperFrames: launch films, explainers, PR videos, brand films, music videos, reels cut from a folder of your own footage, captioned talking heads, and short motion graphics.
Rasa (रस) is the feeling a work leaves in its audience; rasanai (ரசனை) is the Tamil word for the taste to choose it. When thirty people make an AI video, they get thirty videos with different content and the same film: the obvious story, a default look, everything fading up on one ease, a 30-second music loop under a 45-second film, a whoosh on every cut and glowing text. RasanAI is a Claude Code skill that replaces every one of those defaults with a decision, and checks the build against it.
Download RasanAI Studio for Mac (0.2.0 beta 1, Apple Silicon, macOS 14+). A free community beta; the agent skill below works without it.
Website: https://sibhimanyu.github.io/rasanai/
You say /rasanai make a 45s launch film for tally.app. A Director's Console opens in your browser: a dark review room that shows what Claude is doing, live, and stops you only five times. The story and the look are separate calls: a script is judged as words and timing first, then the look is chosen to make that story strongest.
| You see | You do | |
|---|---|---|
| 1 · Brief | one sentence you can edit: "A 45-second launch film for Tally, 16:9 for the website, with voiceover, in Tally's own colours and type", and what Claude captured | fix a word, press Start, or Just make it |
| 2 · Story | three scripts (Sure · Bold · Wild) written by a dedicated script pass from your product's truth: a title, a logline and every beat with what's on screen, what's said and what we see | pick one, or tell Claude what to change in a line |
| 3 · Look | three design systems a design desk built for that story, each drawn as a real frame on its own first line and moving on hover | pick one, ask for new blends near it, or turn the energy up or down |
| 4 · Animatic | the whole film rough: a key frame for every scene at its real length, with the real music edit and the voice | play it, click any moment to leave a note, swap the music or voice, then Looks right, build it. You watch it build, scene by scene |
| 5 · Final | the rendered film with scene markers, versions and what changed | click a moment to note it, apply notes, render, download |
Claude decides the craft, the way a senior motion designer would, from a quantified playbook: the story device, the scenes and their timing, the motion language, transitions, the music edit, every sound effect, lighting and grade. Every call is in the Decisions drawer with its reason, and you can change any of it by telling Claude (⌘K).
slop.mjs checks the copy ("seamless", "unlock", "not X, it's Y", em dashes), the look (neon glow text, purple-blue gradients, particle filler, corner timecodes, Inter everywhere), the motion (idle loops, everything entering the same way), the timing (unreadable text, uniform shot lengths, no end hold) and the sound (looping beds, whoosh per cut, loudness, dead air).motion.md, and obey.mjs loads every built scene in headless Chrome and checks each tween against it.Optional, and none of it changes the five calls. Each of these exists as code with a behaviour test, is used only when the brief calls for it, and is written up in its own guide:
SKILL.md is a small entrypoint; the phase, route and operation guides load as needed (references/workflows/, scripts/skill-map.mjs).events.mjs derives motion/events.json from the score (the authored truth), hash-stamped, for picture, sound and QA (film-events). Timed reads say what the viewer must notice, in what order (reads).character-cartoon route, 2d-character) and a code-built 3D actor with an on-model canon (3d).reference-motion.mjs), a motion kit of 32 catalogued mechanics of which 12 are implemented (), element ids with a derived element index, edits as an append-only transaction (), six Rasan3D recipes and a renderer-adapters doctor. Loaded only when a run has a reference, kit moves, an edit request or element ids (, ).What to expect. A full RasanAI film is still an agentic production: a crew of model passes (research, story, look, score, build, critics, fix rounds) that takes real time and tokens. The quick preview is a prototype of a simple film, not a shortcut to the same quality: on a synthetic 30 s fixture it reached a first draft in 46 s of machine time after a ~3k-token brief, but it is a template film, and it never replaces the crew by default. The optional pieces above are tested on synthetic fixtures; none has yet been verified on a full creative-agent production.
Footage reels add Footage (every clip with a contact sheet and a word-level transcript) and Cut (the edit as an editable list: clips with in and out points, cards between them, overlays, captions). Claude drafts the cut and designs every card itself.
Presenter films put a person who talks to camera on a green or blue screen into worlds made for what they say. RasanAI keys them out, cuts the speech into beats, and three visual writers each stage it differently (the layout of the person, a generated picture and a camera move behind them for each beat, motion graphics that land on the right word). The pictures are made through the Codex CLI on your ChatGPT plan, with no API key: each is one Codex run of about a minute and a half, and the count is shown before they start. Without Codex the backdrops are drawn by Claude instead. This is new and has been checked with synthetic footage and fake-Codex tests; the end-to-end result on real footage is not yet recorded here, the key is only as good as the lighting of the clip, and the clip plays whole (no trimming yet). Studio's taste questions (what the pictures are like, whether the speaker moves, how much text, captions, marks to keep, how it ends) are obeyed and checked by presenter.mjs check --prefs. See presenter films and generated images.
Bring your DESIGN.md. RasanAI reads the common shapes (design.md spec frontmatter with oklch colors, impeccable, gstack, Stitch-style prose, CSS custom properties, token tables), assigns every color a role, maps platform fonts to shipped equivalents and draws all three films in your brand. An example.
Requirements: Claude Code, Node.js ≥ 20 (if you don't have it, RasanAI finds or fetches a private copy on first run), the HyperFrames skills (npx hyperframes skills update), and FFmpeg for footage reels. Chrome for previews and checks comes from npx hyperframes browser ensure. Voice samples and music use HyperFrames' media tools (the heygen CLI, signed in); without them the workflow's default voice is used and you can bring your own track or none.
Claude Code plugin (recommended)
/plugin marketplace add Sibhimanyu/rasanai
/plugin install rasanai@rasanai
skills CLI
npx skills add Sibhimanyu/rasanai --skill rasanai
One-line installer (links ~/.claude/skills/rasanai to a checkout in ~/.rasanai/src; run again to update, --uninstall to remove)
curl -fsSL https://raw.githubusercontent.com/Sibhimanyu/rasanai/master/install.sh | bash
By hand
git clone https://github.com/Sibhimanyu/rasanai.git
ln -s "$PWD/rasanai/skills/rasanai" ~/.claude/skills/rasanai
RasanAI was called Rasa Director up to 1.0. You don't need to do anything: the next time it loads, it installs RasanAI the way you installed Rasa Director, moves your history to ~/.rasanai and hands over. Use /rasanai from then on (with the plugin, restart Claude Code once to see it).
From 0.6.1, RasanAI updates itself: every time the skill loads it checks for a new release (2 seconds at most, silently offline), installs it the way you installed RasanAI, and carries on with the new version in the same run, telling you in one line what's new. Set RASANAI_AUTO_UPDATE=0 to be told instead, or RASANAI_NO_UPDATE_CHECK=1 to turn the check off. A git checkout only updates itself on master. By hand:
| Installed with | Update |
|---|---|
| Claude Code plugin | /plugin marketplace update rasanai, then /plugin update rasanai@rasanai; restart Claude Code |
| skills CLI | npx skills add Sibhimanyu/rasanai --skill rasanai again |
| one-line installer | run the installer again |
| by hand | git pull in the checkout |
Or run node <skill dir>/scripts/update.mjs apply, which works out which of these applies. Versions before 0.6.1 don't update themselves (0.4.2–0.6.0 only tell you); update them once by hand and they stay current from then on.
Check the install: node ~/.claude/skills/rasanai/scripts/selftest.mjs (186 checks, a few minutes, no network needed). With the plugin install the skill lives under ~/.claude/plugins/cache/rasanai/; run the same script from there.
With the plugin install Claude Code namespaces the skill: invoke it as /rasanai:rasanai (or just describe the video you want; it triggers on video requests).
/rasanai make a 45s launch film for https://tally.app
/rasanai a 60s explainer on how DNS works, vertical, no voiceover. Just make it.
/rasanai turn PR #482 into a 30s changelog video
/rasanai a lyric video for song.mp3, you decide the rest
/rasanai cut ~/Footage/lisbon-trip into a 30s reel: best moments, a title card, captions
/rasanai add bold captions to interview.mp4 for Reels
/rasanai a 6s title sting for "Ship it in an afternoon", neo-brutalist, springy
/rasanai a product film for our app using our DESIGN.md, like these references: ref1.png ref2.png
/rasanai revise videos/tally-launch: calmer motion, swap the music
/rasanai export the Swiss grid style as a DESIGN.md
A SwiftUI studio is available as an Apple Silicon community beta: a native app with a sidebar (Home, Brands, your films, Settings), a one-page New film (⌘N), Brands kept as DESIGN.md folders, a seven-step rail (Describe, Setup, Brief, Story, Look, Preview, Final) for every film, a fully native working screen (the live crew stage plus the latest preview) that follows the director through every stage, with a finished-video player, Settings as a page (⌘,), local Claude Code/OpenAI Codex setup, and update checks every 5 hours. Build 11 is a full redesign. Requires macOS 14+. The DMG is ad-hoc signed and not Apple-notarized; first installation is subject to Gatekeeper approval. Provider-free tests and relocated-app startup checks pass; real-agent generation and complete workflow parity remain unverified. See the Mac guide, community installation notes, and the CHANGELOG.
skills/rasanai/
SKILL.md small entrypoint of the flow: Brief · Story · Look · Animatic · Final; the phase, route and operation guides are in references/workflows/
agents/ the crew's role briefs: researchers (product, brand, screens, precedent, local scout),
research lead, design researcher, design-system designer, script writer, script editor,
Motion Director, frame designer, scene animator, treatment writer, critic;
the Moves pass (move inventor, move juror, move sketcher);
_models/ holds the per-model addenda (Claude Opus, Sonnet, Haiku, GPT)
library/ the design desk's internal library: 108 design systems, 49 motion styles, an index,
README.md and EDITING.md (what is verified and what is not);
moves/ is the Moves pass's data: 20 generators, a library of known moves, stimuli,
choreography constraints and the banned clichés
console/index.html the Director's Console; the Look draws each system's own specimen
taxonomy/ the vocabulary: 32 dimensions (dimensions/*.json), 66 story devices (devices.json),
403 style presets in 20 families (presets/*.json, raw material for the desk), type pairings; schemas
scripts/
crew.mjs the crew: plan who works on a film, write each member's prompt, check its work,
the score into STORYBOARD.md, motion strips to look at
research.mjs find the product on this computer, inventory an approved folder, measure a film
story.mjs truth sheet, three distinct story devices, the pitch rubric
moves.mjs the Moves pass: pack, check, check-verdict, rough, check-rough, payload, choose, record
library.mjs the design desk's library: index, search, show
design.mjs key frames, and the desk's gate: check-system, check-systems, look-payload, choose-system
presets.mjs the 403 style presets (raw material): validate, list, suggest, gallery, pick, stills, site
design-system.mjs any style as a complete DESIGN.md (export, export-all)
sound.mjs, music.mjs track analysis (beats, bars, sections, endings), the edit to picture, SFX plan,
mix check; music candidates long enough for the film
slop.mjs the anti-slop gate: copy, look, motion, timing, sound, the rendered video
obey.mjs checks built compositions obey motion.md; waive
stage3d.mjs 3D scenes: install the runtime, scaffold a scene, stills, the 3D gate
lyrics.mjs lyric videos: word timings (align), the music's beats, downbeats, sections and onsets (audio)
treatment.mjs a song's treatment: skeleton, the gate (check), the plates as scenes
finish.mjs the delivery finish: film-wide motion blur and one grade
console.mjs the console server + push / wait / ask / reply / activity / resolve / record
skill-map.mjs the modular skill: list / route / check the guides
events.mjs, reads.mjs the derived film-event timeline; the timed reads and their review sheets
stage2d.mjs, canon.mjs Rasan2D (painted 2D actor), the 3D actor's on-model canon
custom-style.mjs user-owned film styles with revisions and brand locks
original-score.mjs the optional offline original score and its check
evidence.mjs evidence manifests, scene data and provenance checks
quick-film.mjs the opt-in quick-preview prototype
regression.mjs, benchmark.mjs seeded render regression; the technique catalogue and A/B report
taxonomy.mjs, direction.mjs, brand.mjs, motion-md.mjs, scenes.mjs, voice.mjs,
reel.mjs, video.mjs, handoff.mjs, tasting.mjs, transition-menu.mjs, board.mjs, pick.mjs,
memory.mjs, update.mjs, setup.sh, selftest.mjs
lib/ audio analysis, the DESIGN.md adapter, the system gate (system.mjs), model profiles
(models.mjs), PNG reading, looks, direction, fonts, engine, common
vendor/gsap.min.js GSAP 3.14.2
stage3d/ Rasan3D (rasan3d.js), glsl.js (the GLSL library), rasan-music.js (RasanMusic: words and
beats as functions of time), three.js r181 with all its addons (addons/), the scene templates
references/ crew (the agents), craft (the playbook), vocabulary (film terms → code), 3d (real space), script (the writer's brief), story, sound, direction,
brand, design-desk, models, moves (the Moves pass), video, reel, console, motion.md contract, board, handoff, personalities
references/vocabulary.md turning each film term (a rack focus, a bleach-bypass grade, a J-cut) into an HTML/CSS/GSAP recipe with numbers.obey.mjs) loads each composition in headless Chrome with GSAP, walks every tween, samples its real start and end values, and flags off-scale durations, eases outside the set, implicit default eases, banned patterns (fade-up-slide in all its forms, bounce, overshoot, blur-in, scale-pop…), non-GSAP motion and short holds. "Could not run" is never reported as clean.Details: SKILL.md · crew · craft · 3D · design desk · models · library · lyric videos · lyrics & music runtime · finish · vocabulary · story · sound · style presets · direction & taxonomy · DESIGN.md · · · · · · · · · · ·
skills/, .claude-plugin/ and install.sh are pushed to master.docs/ via .github/workflows/site.yml (Pages source: GitHub Actions); every push to docs/ redeploys, and it can be run by hand from Actions → site..github/workflows/ci.yml) runs the self-test on every push.--lean): same files and checks, slower and with less room per task. Reference films need yt-dlp; without it the precedent researcher works from stills and descriptions and says so.-s danger-full-access because the workspace sandbox blocks headless Chrome on macOS.IMAGEGEN=ready in setup); each picture uses a share of your Codex allowance. A poor key (uneven green, a person at the edge of the frame) shows as a halo; key-check.png is there to catch it.stage3d.mjs from the eases on its keys and from rendered frames.MIT. skills/rasanai/scripts/vendor/gsap.min.js is GSAP 3.14.2 under the GSAP Standard License.
Third-party. The precedent library (skills/rasanai/third_party/motionmaxxing/, and the code adapted from it) comes from motionmaxxing by Tejas Makwana, licensed Apache-2.0 and modified by RasanAI; its LICENSE and NOTICE are kept in that folder.
RasanAI (ரசனை) is made by Sibhimanyu. Built on HyperFrames and Claude Code.
stage3d.mjs checkk.pass at scene or post stage, with depth compositing, k.target, k.view), deterministic simulation on the CPU or GPU (k.simulate, k.gpuSimulate), real DOM pinned in 3D (k.pinDom), keyable focus, f-stop and aperture, lens shift, all of three.js r181's addons (274 modules, about 5.6 MB) and a GLSL library (stage3d/glsl.js: noise, signed-distance shapes, ray marching, engraving, stipple and hatching shading, colour, post; tube and instanced-field helpers). The design system is the only bound on the look.crew.mjs plan|brief --model, models): Opus gets the explicit show-off ask, Sonnet numbered steps and a worked example, small models only gathering roles. Under ChatGPT or Codex, members run as parallel codex exec processes from the same prompt files and the same checks; GPT's scene prompts carry a reel-quality worked example and a self-critique pass.lyrics.mjs times every word to the voice (whisper.cpp, no Python) and reads the music's tempo, downbeats, sections and kick onsets. Three treatment writers each pitch one concept: a style bible with one owned accent, a signal that runs through every plate, and a plate per lyric section in its own idiom, where every line becomes a pun or a transformation instead of a picture of the sentence. treatment.mjs refuses a treatment that misses a line, repeats an idiom a third time, adds a second hue, cuts off the beat grid or never goes deep. Scenes then sync every word to its sung start with RasanMusic (rasan-music.js).finish.mjs (finish) gives the delivery render real motion blur on every scene, DOM and GSAP included, by rendering sub-frames and averaging a shutter window (up to 32 samples through phase-shifted passes), then one grade across the film: grain, halation, vignette and an optional LUT, so cuts do not change the texture. Flat brand colours at the centre of the frame stay put. A scene made on twos or threes can opt out of the blur (data-finish-blur="off") so its steps stay hard.product-launch-video, faceless-explainer, pr-to-video, general-video, music-to-video, talking-head-recut, embedded-captions, motion-graphics).motion-kit.mjsdata-eleditor-patch.mjsregression.mjs is a deterministic render check for CI.align lists the low-confidence words). That is under two frames at 24 fps at the median, not frame-exact for every word. demucs is optional and makes it only a little tighter (and takes minutes on a CPU); without it the tool works on the mix. Snare onsets are the weakest signal (about half right); use kicks and beats for anything exact. English is the tested language.