
session-story
An agent makes an animated film of an average session with its own user, beginning to end, told with that user's real messages: whatever their routine is (code, writing, data, design, video). The agent sits at a desk in a room decorated from what it knows about the user, and the monitor shows their kind of work. Requests glide in as paper planes and unfold. Corrections are a 3D cartoon mallet that bonks, then turns to show the words on its face. Praise is a butterfly towing the words on a ribbon. The agent types each reply onto a sheet, folds it and throws it back. The film opens with the agent asleep until the monitor boots: "Initiating session with ". The agent composes its own orchestral score, cued to every action. p5.brush watercolour, rendered in HyperFrames. Trigger on: "a video of our session", "animate a session with me", "session story", "show what working with me is like", "make a film about me and my agent".
- Installs
- 408
- Last 24h
- +20
- Trending rank
- #5755
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/heygen-com/hyperframes-community-skills --skill session-story- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads session-story automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
Session story
The agent reads its own history with its user, finds their routine, and turns one typical session into a 40 to 70 s film, in the order it happened:
- Story: the user's verbatim words arriving as objects, and the agent's own replies going back. The window and the wall clock follow the session's real time.
- Room: decorated from what the agent knows about its user.
- Score: composed by the agent against the film's own timeline.
Write story.json and the engine does the choreography. Nothing on screen is invented: every line is a quote, and
the user approves every line before a frame is rendered.
When to use / when not
- Use when a user asks their agent for a film of their work together, and the agent has real history with that user: local transcripts, or messages the user pastes in.
- Do not use for someone else's history, a team's shared logs, marketing with made-up quotes, or anything the user won't review. With no history at all, ask the user for a session's messages. Never invent quotes.
Requirements and side effects (complete list)
- Tools: Node 22+, Python 3.9+ (standard library only),
ffmpegon PATH, and the HyperFrames CLI pinned tonpx --yes hyperframes@0.8.71(downloaded from the npm registry on first use). - Setup (once, manually):
sh scripts/setup.shrunsnpm cifrom the committed lockfile: p5 2.3.3 (LGPL-2.1), p5.brush 2.2.3 (MIT), @fontsource/permanent-marker 5.3.0 (Apache-2.0). Read-only downloads from npm. - Score renderer: on macOS,
swift(Xcode Command Line Tools) plays the score through Apple's built-in General MIDI bank. Elsewhere,fluidsynthwith a General MIDI soundfont you set asSOUNDFONT. Neither downloads anything. - Reads (local only, after the user says yes): the agent's own transcripts,
~/.claude/projects/<project>/*.jsonl(Claude Code) and~/.codex/sessions(Codex), for the current project unless the user allows--all-projects. Also the agent's memory and instruction files for the room. Nothing is uploaded. - Writes:
session-story-candidates.json(harvest) and everything inside the project folder you create. Both hold the user's words: never commit or share them. - Network at build time: none. Pass
--describe falseto everysnapshot, as shown below: withGEMINI_API_KEYset,snapshototherwise sends frames (the user's words) to Gemini. Render locally: the page paints with WebGL. - No credentials, no paid calls.
Workflow
- Setup:
sh scripts/setup.sh(once). - Ask first. Tell the user you'll read your local history with them to find the session, and wait for a yes.
- Harvest:
python3 scripts/harvest.py --project <their project folder> --out <scratch>/candidates.jsonprints the routine and lists sessions, most typical first.--session <id>(with the same--project) prints one in order, with local times and your replies. Per references/sources.md. - Scaffold:
node scripts/new-project.mjs <dir>. Everything you write from here lives in<dir>. - Story: take a typical session and write
<dir>/story.jsonbeat by beat, in the order it happened, with each beat's real time, per references/story.md. The user's lines are verbatim spans; your replies are your own words from that session. Setscreento what their work looks like, and pick the ending their sessions have.node scripts/schedule.mjs <dir>checks it: run it after every edit. - Room: fill the slots from what you know about the user, per references/room.md. Draw a
custom prop in
<dir>/scenes/props-custom.jswhen the library has nothing true to them. If you are not Claude, draw yourself: references/cast.md. - Privacy gate: show the user one table of every on-screen line (hook, nameplate, each quote, each reply, each
prop and why), each with its source. Take their edits, get an explicit yes, then set
"approved": true. Until then every frame carries a DRAFT stamp. - Design pass: run the
snapshotcommandschedule.mjsprints. Look at every frame: quotes legible, props where they belong, nothing covering a message. Show the user the contact sheet. - Score: write
<dir>/score/score.pywith your own theme, key and palette, per references/score.md. Thensh <dir>/score/build.sh. It fails on dead air. - Render: from
<dir>:npx --yes hyperframes@0.8.71 check, thennpx --yes hyperframes@0.8.71 render --fps 24 --crf 12 -o renders/session-story.mp4. - Check the render: its length must match
schedule.mjs. Pull a frame at each key moment (ffmpeg -ss <t> -i renders/session-story.mp4 -frames:v 1 renders/check-<t>.png) and look at them. Then hand it to the user to watch with sound.
The example (node scripts/new-project.mjs <dir> --example, then schedule.mjs <dir> --example) is the reference
film: a real session between Claude and the skill's author, who makes videos. It shows the format, not the shape of
your film. schedule.mjs refuses it without --example, so it can't stand in for your user's story.
Verify success
schedule.mjsexits 0 and prints no warnings.hyperframes checkpasses. p5.brush logs WebGLuniformwarnings, which are harmless.- The design-pass frames show every quote legible, and match the beat table.
score/build.shends withok: no dead air, and the score's length matches the film's.- The render is the length
schedule.mjsprinted, has an audio track, and its frames at the key moments match the design pass. - Failure path to test: a story that opens on a reply, or has a quote over the limit, makes
schedule.mjsexit 1 and name the beat.
What the engine owns
The motion is physical and already tuned: glide paths, the fold, the throw, the swing, the bonk and the wingbeats.
Change the story, the room, the cast and the score. Leave the choreography in scenes/director.js and
scenes/compile.js alone unless you are fixing a bug. The motion rules are in
references/motion.md.
FAQ
What does the session-story skill do?
An agent makes an animated film of an average session with its own user, beginning to end, told with that user's real messages: whatever their routine is (code, writing, data, design, video). The agent sits at a desk in a room decorated from what it knows about the user, and the monitor shows their kind of work. Requests glide in as paper planes and unfold. Corrections are a 3D cartoon mallet that bonks, then turns to show the words on its face. Praise is a butterfly towing the words on a ribbon. The agent types each reply onto a sheet, folds it and throws it back. The film opens with the agent asleep until the monitor boots: "Initiating session with ". The agent composes its own orchestral score, cued to every action. p5.brush watercolour, rendered in HyperFrames. Trigger on: "a video of our session", "animate a session with me", "session story", "show what working with me is like", "make a film about me and my agent".
How do I install session-story?
Run npx skills add https://github.com/heygen-com/hyperframes-community-skills --skill session-story in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/session-story/ (personal) or .claude/skills/session-story/ (project).
Which AI agents can use session-story?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is session-story safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains session-story?
It is published by heygen-com in heygen-com/hyperframes-community-skills. It has 408 recorded installs.
More from heygen-com/hyperframes-community-skills
vox-explainer
heygen-com/hyperframes-community-skills
Create a 60–90 second, collage-style HyperFrames explainer from a hiding-in-plain-sight topic or supplied documents and links. Use for requests such as 'make a plain-sight explainer', 'Vox-style history of X', 'why is X everywhere?', or 'turn this document into an explainer'. Covers topic or source routing, research, script, static design approval, voiceover timing, motion continuity, build, and numeric quality gates.
p5-paint-animation
heygen-com/hyperframes-community-skills
Open the skill to read its SKILL.md instructions.
camera-3d-captions
heygen-com/hyperframes-community-skills
Captions living in 3D space around a talking head: a camera flies between the speaker and the words (whip-in, parallax truck, push), caption groups sit at different depths so camera moves pull them apart, hero words hide BEHIND the speaker through an alpha matte, a ring of words wraps round the speaker and turns in front of them, focus racks between depths, and text steps at 15 fps with ghost motion blur. Works in any type style (editorial serif, bold sans) or hand-drawn (p5.brush write-on). Trigger on: "3D text", "3D camera captions", "text around / behind the speaker", "camera moves through the text", "depth captions on my avatar video". Covers prep (portion, padded plate, matte, word clock, font metrics), the shot grammar, depth rules, QC, and limits.
x-posting-license
heygen-com/hyperframes-community-skills
Open the skill to read its SKILL.md instructions.
duo
heygen-com/hyperframes-community-skills
Composite any two HTML screens into a locked photo plate of hands holding an open foldable phone — a 1448×1086 still with two blank 495×849 / 498×849 screen slots (left and right) — to make side-by-side meme and comparison videos: TikTok vs Reels, ChatGPT vs Claude, "me vs my friend", before/after, two apps racing. Trigger on: "foldable phone meme", "put X on the left screen and Y on the right", "two-screen comparison video", "the dual-screen phone meme", or any request that names two apps/feeds/chats to show at once. The plate, geometry, and camera are finished — the agent only authors what plays INSIDE the two screens and renders.
day-in-my-life
heygen-com/hyperframes-community-skills
Open the skill to read its SKILL.md instructions.
Popular media & creative skills
hyperframes
heygen-com/hyperframes
Read first to make, edit, animate or render any video with HyperFrames (HTML rendered to video), including launch films, explainers, music videos, charts, maps, vertical clips, title cards, captions and overlays. Holds the render contract, the work loop and what each kind of video needs.
media-use
heygen-com/hyperframes
Get or make any media for a HyperFrames video - music, sound effects, images, icons, logos, voiceover, avatar and generated video, transcripts, cutouts, colour grades and looks - with HeyGen or free local tools, and mix placed audio. Also for footage that looks dark, flat or dull, or should be stylized or hidden.
hyperframes-registry
heygen-com/hyperframes
About 450 ready-made HyperFrames blocks and components installed as editable source - transitions, overlays, titles, kinetic type, captions, charts, map overlays, 3D, camera moves. Use it before hand-building any named visual (CRT scanlines, glitch, film grain, a chart); also for hyperframes add and catalog.
hyperframes-creative
heygen-com/hyperframes
Non-animation creative direction for HyperFrames videos. Use for design spec (frame.md / design.md) handling, palettes, typography, narration, beat planning, audio-reactive visuals, composition patterns, and brand / style decisions. For atomic motion patterns and scene blueprints, use hyperframes-animation.
ai-video-generation
101-skills/superpowers
Generate AI videos with Google Veo, Seedance 2.0, HappyHorse, Wan, Grok and 40+ models via inference.sh CLI. Models: Veo 3.1, Veo 3, Seedance 2.0, HappyHorse 1.0, Wan 2.5, Grok Imagine Video, OmniHuman, Fabric, HunyuanVideo. Capabilities: text-to-video, image-to-video, reference-to-video, video editing, lipsync, avatar animation, video upscaling, foley sound. Use for: social media videos, marketing content, explainer videos, product demos, AI avatars. Triggers: video generation, ai video, text to video, image to video, veo, animate image, video from image, ai animation, video generator, generate video, t2v, i2v, ai video maker, create video with ai, runway alternative, pika alternative, sora alternative, kling alternative, seedance, happyhorse
ai-image-generation
101-skills/superpowers
Generate AI images with GPT-Image-2, FLUX, Gemini, Grok, Seedream, Reve and 50+ models via inference.sh CLI. Models: GPT-Image-2, FLUX Dev LoRA, FLUX.2 Klein LoRA, Gemini 3 Pro Image, Grok Imagine, Seedream 4.5, Reve, ImagineArt. Capabilities: text-to-image, image-to-image, inpainting, LoRA, image editing, upscaling, text rendering. Use for: AI art, product mockups, concept art, social media graphics, marketing visuals, illustrations. Triggers: flux, image generation, ai image, text to image, stable diffusion, generate image, ai art, midjourney alternative, dall-e alternative, text2img, t2i, image generator, ai picture, create image with ai, generative ai, ai illustration, grok image, gemini image, gpt image, openai image, chatgpt image