api checking…
▣ STORYBOARD · A HERMES AGENT SKILL · POWERED BY KIMI K2.5 LIVE
Hermes · Creative skill

Type a scene. Watch Hermes draw it.

Prose becomes a six-frame film storyboard, stroke by stroke, in your browser. Kimi K2.5 reviews the board for film grammar, and Hermes learns how you direct — so the next scene already follows your rules.

6
frames per scene
~9s
end-to-end render
3
Kimi K2.5 roles
PRODstoryboard DIRHermes DPKimi K2.5
SCENE01 TAKE01 ROLLA STAGEPARSING…
auto-demo · scroll down to make your own

Generate your own scene

Live API · free for the first scene · runs locally if API is asleep.

Up to 2000 characters. Kimi K2.5 parses, enriches, critiques, and extracts memory. The local SVG renderer draws.

ready hermes-agent · idle

Your storyboard will appear here.

~10 seconds end-to-end · six frames stagger in

Storyboards are the bridge between writing and seeing. Hermes makes that bridge live.
storyboard manifesto · v0.1
Kimi K2.5 · three roles in one skill
  1. 01 parse prose Scene JSON six shots, lens/movement/eye-line, strict enum schema
  2. 02 critique rendered PNG patch list multimodal vision, seven whitelisted fields, old_value matched
  3. 03 extract director memory reusable rule style-only, plot-leak filter, persisted to director_memory.json

Every role is its own callable skill. Provider-agnostic via OpenRouter. Kimi is not a label here — it is load-bearing in parse, critique, and memory extraction. How it stays grounded →

Kimi reasons. Renderer draws. Hermes remembers.

Why Hermes · not just a web app

Storyboard is a reusable, inspectable creative workflow — not a one-shot toy.

  • 01 Kimi K2.5 in three roles — scene parser, multimodal critic, memory extractor. Each role is its own reusable skill, callable from any Hermes workflow.
  • 02 Persistent artifacts on diskdirector_memory.json, character_bible.json — survive between sessions and ship as plain JSON. No black box.
  • 03 Future scenes inherit your direction. One revision in scene 1 changes how scene 2 renders. That's the Hermes self-improving pattern, applied to film grammar.
  • 04 Installable as a Hermes skill. git clone into ~/.hermes/skills/creative/storyboard and describe a scene to Hermes — the skill loads automatically from chat, with your own API key, on your own machine.
Grounded by design
  • Strict Scene JSON schema with enums
  • Whitelisted SVG grammar — no script, no href
  • Patch-only critique — one of seven allowed fields
  • Shot labels cross-checked — no hallucinated frames
  • Director memory cannot add plot facts
  • Every inferred detail tagged by source

Kimi proposes. Storyboard verifies. Hermes remembers only what is safe to reuse. See README →

Exports
  • Editable SVG
  • PNG render
  • Animated GIF
  • Scene JSON
  • Character bible
  • Director memory
  • Shotlist CSV
  • Camera notes
  • Dialogue sheet
  • Continuity sheet
bundle.zip
├── board.svg
├── board.png
├── board.gif
├── scene.json           # the parsed shot grammar
├── revisions.json       # Kimi K2.5 critique
├── character_bible.json # silhouette continuity
├── director_memory.json # learned direction rules
└── packet/              # DP-ready handoff
    ├── shotlist.csv
    ├── camera_notes.md
    ├── dialogue.md
    └── continuity.md

Hermes learns how you direct

Director memory is the difference between draws-on-demand and grows-with-you.

Most AI tools treat each prompt as independent. Storyboard persists your stylistic choices: revise one frame with a free-text note, and Hermes extracts a generalised rule via Kimi K2.5 and applies it to every future scene that matches.

  1. 1

    You revise one frame

    Click any shot, write a free-text note — "more Hitchcock", "darker shadow", "silhouette only".

  2. 2

    Hermes saves a rule

    Kimi K2.5 generalises the note into a tagged preference. Persisted to director_memory.json — survives sessions.

  3. 3

    Next scene applies it

    Future scenes that match the tags (suspense, stairwell, pursuit…) are rendered with the rule, automatically. No re-prompting.

Same prompt, two scenes — cold without memory vs. directed after a Hitchcock revision rule
Same scene-2 prompt, two outputs. Top: no memory active — eye-level angles, plain killer figure. Bottom: after a single user revision in scene 1 with the note "more Hitchcock — low angle, harder shadow, killer as silhouette". Four low-angle shots out of six, killer rendered as silhouette with a "THREAT" focus marker, torchlight cones on suspense beats. Detective Mara consistent across both scenes via the character bible.
director_memory.json  ·  extracted by Kimi K2.5
{
  "preference": "For suspense, danger, and reveal moments, prefer
                 low-angle framing with stronger cast shadows. When
                 showing a threat or unseen antagonist, render them as
                 a partial silhouette rather than a fully-lit figure.",
  "applies_to": ["suspense", "reveal", "danger", "stairwell",
                 "killer entrance", "pursuit"],
  "source_revision": {
    "scene": "01",
    "frame": "1F",
    "note": "more Hitchcock — low angle, harder shadow, killer as silhouette"
  }
}

This site is a showcase

The skill itself runs locally inside Hermes Agent on your machine.

hermes-story.art is a witness, not a service. The real skill is a small Python package plus a SKILL.md manifest that drops into ~/.hermes/skills/creative/storyboard and is triggered naturally from Hermes chat — describe a scene and Hermes loads the skill automatically. Three steps:

01

Install the skill

One git clone, one env var. The skill lives in the standard Hermes skills directory.

git clone \
  https://github.com/Zhekinmaksim/storyboard \
  ~/.hermes/skills/creative/storyboard

export OPENROUTER_API_KEY=sk-or-...
02

Trigger from Hermes chat

Hermes auto-loads the skill at startup. Use it via natural chat — no command memorisation.

you draft a storyboard for a noir
    alley discovery scene

hermes [activates /storyboard]
       [streams six frames live]
       [Kimi K2.5 reviews]
       [exports production packet]
03

Or run standalone

Pure CLI works too. Same pipeline, viewer at localhost:7777.

storyboard full --stream \
  "A detective enters…"

storyboard memory --show
storyboard packet scene.json