Skip to content

DirectorySkills

Ink storyboards: sheet, made in this run
Run 1Ink storyboards“Storyboard this script”
Runs in
  • Claude Code
  • Codex
  • Cursor
  • Gemini CLI
  • GitHub Copilot
  • OpenCode
Generates with
Your agent's modelFLUX.2 [dev]falFLUX.2 klein 9BCloudflare Workers AI
Tested with
Claude Code 2.1.322Claude Sonnet 5.51 real run, 10 Nov
Needs
Node 20+ChromeA fal or Cloudflare Workers AI key
Licence
Recaply licence

Ink Storyboards

Rough ink-and-marker storyboard panels, numbered, with action and camera notes set in type.

$9.99once, yours to keep

Makes rough ink storyboards: loose black ink with grey marker tones on white, clear staging and angles. Panels are numbered with the action and camera note under each. Drawn by a picture model with any words set in real type afterwards, so spelling is exact. Needs a FAL_KEY or a Cloudflare Workers AI key; about $0.01 to $0.02 a picture. Use when someone wants a storyboard, panels for a script or ad, a shot-by-shot board or a rough visual plan for a video.

By RecaplyUpdated 11 Nov

Install Ink Storyboards

After the download, ask your agent to add it, or run the line yourself.

Read https://recaply.co/skills/ink-storyboard/install.md and follow it to install the ink-storyboard skill from ink-storyboard.zip.

Paste it into your agent. It reads our install steps, finds the ZIP you downloaded and adds the skill for you.

New to skills? How to install a skill

Similar skills

All 735 skills

Who Ink Storyboards is for

What you get

  • 6 to 12 panels, drawn as one matching set
  • Panels are numbered with the action and camera note under each
  • Every word set in real type, so spelling is exact

Good fit

  • Films
  • Ads
  • Animation

Not for

  • Pictures of real people, or photos of your real product
  • Copying a living artist's or a brand's style

About this skill

You say

Storyboard this script

It said back

I've made an 8-panel storyboard of the script, but it still has continuity problems that I stopped short of fixing.

Each panel is one beat: the kite flying, snagging, the boy's dismay, the ladder, the climb, the handover, his grin, then flying it together. Captions are the action and notes are the camera and sound, set in real type, so the spelling is exact. The grey tones are consistent and the green tint on panel 5 is gone.

Show more

What it did in run 1

  1. ls -la
  2. ./script.md
  3. ink-storyboard
  4. node .claude/skills/ink-storyboard/scripts/check.mjs
  5. mkdir -p storyboard && cat > storyboard/plan.json <<'EOF' { "style": "ink-storyboard", "bible": "A young boy about 8 with messy hair, shorts and a t-shirt; his grandmother, small and stout with short curly grey hair, round glasses, a cardigan and long skirt. A diamond kite with a long tail of bows. A big leafy oak tree in a garden, a grassy hill beyond.", "sameSeed": true, "items": [ {"name":"p1","subject":"wide shot of a boy on a grassy hill flying a diamond kite with a bow tail, wind blowing, big oak tree nearby","caption":"A boy flies his kite.","note":"WIDE, static. Wind, laughter."}, {"name":"p2","subject":"the kite caught in the branches of the big oak tree, tail dangling, seen from low angle","caption":"The kite snags in the tree.","note":"LOW ANGLE. Rustle, a snap."}, {"name":"p3","subject":"medium shot of the boy looking up at the tree, hands on his head in dismay","caption":"He can't reach it.","note":"MS, slow push in. Sad sigh."}, {"name":"p4","subject":"the grandmother with glasses setting up a wooden ladder against the oak tree, boy holding the ladder","caption":"Grandmother brings a ladder.","note":"MS. Wooden clunk."}, {"name":"p5","subject":"grandmother climbing the ladder, seen from below, reaching toward the kite in the branches","caption":"She climbs.","note":"LOW ANGLE, tilt up. Creaking rungs."}, {"name":"p6","subject":"close-up of grandmother's hands lowering the kite down to the boy's reaching hands","caption":"She hands it down.","note":"CU, over the shoulder. Quiet."}, {"name":"p7","subject":"close-up of the boy's beaming face looking up at his grandmother","caption":"He grins.","note":"CU. Warm music begins."}, {"name":"p8","subject":"wide shot of grandmother and boy together on the hill holding the kite string, kite high in the sky","caption":"They fly it together.","note":"WIDE, crane up. Music swells."} ], "sheet":{"layout":"storyboard","cols":4,"title":"The Kite"} } EOF cd storyboard && node ../.claude/skills/ink-storyboard/scripts/picture.mjs plan.json 2>&1 | tail -15; cat costs.json | tail -5
  6. ./storyboard/plan.json
  7. cd storyboard && node ../.claude/skills/ink-storyboard/scripts/picture.mjs plan.json 2>&1 | tail -15; tail -8 costs.json; ls pictures
  8. ./storyboard/sheet.png
  9. python3 -I - <<'EOF' import json p=json.load(open('plan.json')) s={ "p1":("wide shot of a lone boy on a grassy hill flying a diamond kite on a string high in the sky, no other people, oak tree at the side",11), "p2":("one single kite stuck in the high branches of the oak tree, string and bow tail dangling down, a small boy far below looking up, no one else, only one kite",12), "p3":("medium shot of a lone boy looking up at the tree, hands on his head in dismay, a single kite caught in the branches above him, no other people",13), "p5":("grandmother in cardigan and skirt standing on a ladder against the oak tree, reaching up to a single kite stuck in the branches, boy below holding the ladder, black and white grey tones only",15), } for i in p['items']: if i['name'] in s: i['subject'],i['seed']=s[i['name']] json.dump(p,open('plan.json','w'),indent=2) EOF for n in 1 2 3 5; do rm pictures/p$n.png; done node ../.claude/skills/ink-storyboard/scripts/picture.mjs plan.json 2>&1 | tail -7
  10. ./storyboard/plan.json
  11. ./storyboard/plan.json
  12. ./storyboard/plan.json
  13. ./storyboard/plan.json
  14. rm pictures/p1.png pictures/p2.png pictures/p3.png pictures/p5.png && node ../.claude/skills/ink-storyboard/scripts/picture.mjs plan.json 2>&1 | tail -7
  15. ./storyboard/sheet.png
  16. Done

10 Nov 2026 · Claude Code 2.1.322 with Claude Sonnet 5.5 · 3 min 1 s · $0.17 of API use

Questions

Is Ink Storyboards free?

No. Ink Storyboards costs $9.99 once and stays in your Recaply account, or it comes with the Recaply plan ($19.99 a month), which opens every premium skill and prompt.

Which agents can use Ink Storyboards?

Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode.

What do I get when I buy Ink Storyboards?

A ZIP of the whole skill folder (20 KB): the SKILL.md your agent follows and its 4 other files, the references, templates and scripts it uses. You download it from this page whenever you need it, and install it in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot and OpenCode. The Recaply plan opens it too, with every other premium skill and prompt.

How do I install Ink Storyboards?

Buy it, then download the ZIP from this page. For Claude Code, unzip it into .claude/skills/ in your project. For Codex, Cursor and Gemini CLI, unzip it and run npx skills add ./ink-storyboard with your agent's flag.

What do I get from Ink Storyboards?

6 to 12 panels, drawn as one matching set. Panels are numbered with the action and camera note under each. Every word set in real type, so spelling is exact.

What does Ink Storyboards need?

Node 20+, Chrome and a fal or Cloudflare Workers AI key (it reads FAL_KEY). Each use costs about $0.01 to $0.02 a picture.

How big is Ink Storyboards?

5 files, about 12,279 tokens in all. The SKILL.md is about 2,096 tokens, and your agent reads it only when the job fits.

What does a run cost?

Our 1 runs took 3 min 1 s to 3 min 1 s and $0.17 to $0.17 of API use each, in Claude Code with claude-sonnet-5-5. On a Claude plan, a run counts toward your usage instead.

Do I have to name Ink Storyboards to use it?

Type /ink-storyboard first to make sure it loads. Without it, Claude Code may judge a small job simple enough to do without the skill.