npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

seedance-prompt-forge

v0.1.1

Published

Build clean, structured, consistent video prompts for Seedance (and similar text-to-video models) from simple inputs. Stop hand-formatting prompts.

Readme

seedance-prompt-forge

npm version npm downloads license node

Build clean, structured, consistent video prompts for Seedance and other text-to-video models (Kling, Runway, Veo) from simple inputs — instead of hand-formatting every prompt by hand.

forge turns a few simple flags into a properly ordered, model-friendly prompt. You stop re-typing the same phrasing, stop forgetting the camera/lighting/style structure, and stop getting inconsistent results because every prompt was written slightly differently.

forge --subject "lone samurai" --setting "rain-soaked neon alley" \
      --shot low-angle --movement slow-push --lighting neon \
      --mood tense --style dark-anime --pacing slow-motion --aspect 21:9

Lone samurai, in rain-soaked neon alley. Dark moody anime aesthetic, muted palette, dramatic shadows. Low angle shot looking up at the subject, heroic and imposing. Slow dolly push-in toward the subject. Saturated neon lighting, magenta and cyan glow. Tense, suspenseful atmosphere. Dramatic slow motion. 21:9 ultra-wide cinematic aspect ratio.


Why this exists

Text-to-video models reward prompts that are structured and ordered — subject first, then style, camera, lighting, mood, pacing, technical specs. Writing that by hand every time is tedious and error-prone, and small wording differences produce inconsistent results across a project.

forge encodes that structure once. You provide the intent (samurai, tense, low angle); it handles the phrasing and ordering that models respond to. Same inputs always give the same clean output — which matters when you are generating dozens of shots for one project and need them to feel consistent.

Install

npm install -g seedance-prompt-forge

Or use it as a library in your own project:

npm install seedance-prompt-forge

Requires Node.js 18+.

Usage

Command line

forge --subject "a wooden cabin" --setting "misty pine forest at dawn" \
      --shot extreme-wide --movement crane --lighting blue-hour \
      --mood serene --style cinematic --aspect 16:9

See every available preset key:

forge options

Full help:

forge --help

As a library

import { buildPrompt } from "seedance-prompt-forge";

const prompt = buildPrompt({
  subject: "a street vendor",
  setting: "a busy night market",
  shot: "medium",
  lighting: "neon",
  style: "documentary",
});

Flags

| Flag | What it controls | Example values | |------|------------------|----------------| | --subject (required) | Who / what is in the shot | "lone samurai" | | --action | What the subject is doing | slow-walk, turn, fight | | --setting | Location / environment | "neon alley" | | --shot | Camera shot / framing | wide, close-up, low-angle | | --movement | Camera movement | slow-push, orbit, tracking | | --lens | Lens character | anamorphic, macro, telephoto | | --lighting | Lighting setup | neon, golden-hour, low-key | | --mood | Emotional atmosphere | tense, epic, eerie | | --style | Visual style | cinematic, dark-anime, cyberpunk | | --pacing | Shot pacing | slow, fast, slow-motion | | --aspect | Aspect ratio | 16:9, 9:16, 21:9 | | --extra | Any extra free-text detail | "volumetric fog" |

Every flag accepts a preset key OR free text. Unknown values pass straight through, so you are never boxed in by the presets.

How it works

The prompt is assembled in the order text-to-video models weight most heavily:

  1. Subject + action + setting (leads, because early tokens carry the most weight)
  2. Visual style
  3. Camera language — shot, movement, lens
  4. Lighting + mood
  5. Pacing
  6. Extra detail
  7. Aspect ratio (technical, goes last)

The vocabulary lives in small, readable modules under src/modules/ — camera, lighting, style, motion. Editing or extending the presets is just editing a plain object.

More examples

See examples/EXAMPLES.md.

Contributing

The preset vocabularies are intentionally simple to extend. Open a PR to add shot types, lighting setups, styles, or motion presets — each lives in its own module file. Issues and suggestions welcome.

License

MIT — see LICENSE.