MoneyPrinterTurbo Video Generator
harry0703/MoneyPrinterTurbo
Installs and runs MoneyPrinterTurbo to turn a topic or script into a finished short video with voice-over, subtitles, stock footage and music.
A skill your agent uses when writing or editing Pixi'VN story content — defining labels (scenes) with newLabel, writing dialogue steps, adding player choices with…
$ npx skills add DRincs-Productions/pixi-vn --skill pixi-vn-narration -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install DRincs-Productions/pixi-vn pixi-vn-narration --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/DRincs-Productions/pixi-vn.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/narration .claude/skills/pixi-vn-narration && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "pixi-vn-narration" agent skill from https://github.com/DRincs-Productions/pixi-vn/tree/main/skills/narration into .claude/skills/pixi-vn-narration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pixi-vn-narration", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/DRincs-Productions/pixi-vn/tree/main/skills/narrationType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add DRincs-Productions/pixi-vn --skill pixi-vn-narration -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install DRincs-Productions/pixi-vn pixi-vn-narration --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/DRincs-Productions/pixi-vn.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/narration .agents/skills/pixi-vn-narration && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "pixi-vn-narration" agent skill from https://github.com/DRincs-Productions/pixi-vn/tree/main/skills/narration into .agents/skills/pixi-vn-narration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pixi-vn-narration", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add DRincs-Productions/pixi-vn --skill pixi-vn-narration -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install DRincs-Productions/pixi-vn pixi-vn-narration --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/DRincs-Productions/pixi-vn.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/narration .cursor/skills/pixi-vn-narration && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "pixi-vn-narration" agent skill from https://github.com/DRincs-Productions/pixi-vn/tree/main/skills/narration into .cursor/skills/pixi-vn-narration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pixi-vn-narration", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/DRincs-Productions/pixi-vn.git --path skills/narration--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add DRincs-Productions/pixi-vn --skill pixi-vn-narration -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install DRincs-Productions/pixi-vn pixi-vn-narration --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/DRincs-Productions/pixi-vn.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/narration .gemini/skills/pixi-vn-narration && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "pixi-vn-narration" agent skill from https://github.com/DRincs-Productions/pixi-vn/tree/main/skills/narration into .gemini/skills/pixi-vn-narration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pixi-vn-narration", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install DRincs-Productions/pixi-vn pixi-vn-narrationInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add DRincs-Productions/pixi-vn --skill pixi-vn-narration -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/DRincs-Productions/pixi-vn.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/narration .github/skills/pixi-vn-narration && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "pixi-vn-narration" agent skill from https://github.com/DRincs-Productions/pixi-vn/tree/main/skills/narration into .github/skills/pixi-vn-narration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pixi-vn-narration", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add DRincs-Productions/pixi-vn --skill pixi-vn-narration -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install DRincs-Productions/pixi-vn pixi-vn-narration --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/DRincs-Productions/pixi-vn.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/narration .opencode/skills/pixi-vn-narration && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "pixi-vn-narration" agent skill from https://github.com/DRincs-Productions/pixi-vn/tree/main/skills/narration into .opencode/skills/pixi-vn-narration/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "pixi-vn-narration", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
pixi-vn-narrationA skill your agent uses when writing or editing Pixi'VN story content — defining labels (scenes) with newLabel, writing dialogue steps, adding player choices with…
Pixi Vn Narration is an agent skill from DRincs-Productions/pixi-vn. Use when writing or editing Pixi'VN story content — defining labels (scenes) with newLabel, writing dialogue steps, adding player choices with newChoiceOption/newCloseChoiceOption, conditional/branching labels, or wiring up narration.call/jump/continue and Game.start to progress the story.
Its SKILL.md is about 4.9k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Media & Creative, covering Text to speech and voice. The repository describes itself as: Create visual novels with a modern 2D rendering engine and your favorite JavaScript framework.
9 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 01c19cb. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
npmFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
pixi-vn.comgithub.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Pixi Vn Narration loads about 4.9k tokens when it runs. Until then it costs about 77 tokens; SKILL.md has 1,955 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from DRincs-Productions/pixi-vn at commit 01c19cb, republished under its LGPL-2.1 licence (© DRincs-Productions). 1,955 words, ~4,874 tokens.
.claude/skills/pixi-vn-narration/SKILL.md (or your agent's skills folder).Use this skill whenever the task is about the story itself: creating a new scene/label, writing a line of dialogue, adding a menu of player choices, branching a label's content based on game state, or driving story progression (starting the game, moving to the next step, calling/jumping between labels). This is the core engine of Pixi'VN — almost every "write a scene" or "add a choice" request touches this module.
Do not use this skill for: character definitions/appearance (see pixi-vn-characters), undo/go-back
mechanics (see pixi-vn-history), save files (see pixi-vn-saves), or persistent game variables
(see pixi-vn-storage).
Official docs for this module: https://pixi-vn.com/start/narration (overview), https://pixi-vn.com/start/labels and https://pixi-vn.com/start/labels-flow (labels/steps/flow), https://pixi-vn.com/start/labels-advanced (hooks, dynamic steps), https://pixi-vn.com/start/dialogue, https://pixi-vn.com/start/choices, https://pixi-vn.com/start/input.
@drincs/pixi-vn-aiFor dialogue or images generated during play, install the separate @drincs/pixi-vn-ai
package and its required peers; import its ai singleton from that package. This API is
experimental: check the installed types before implementing provider-specific options.
Await ai.init(...) once during startup. Without options it downloads a local WebLLM text
model in the browser; image generation still needs an external provider. Configure
textProvider and/or imageProvider for AI SDK models, or use ComfyUIImageModel from
@drincs/pixi-vn-ai/comfyui with a ComfyUI API-format workflow for images.
In an async label step, generate the text and assign it to the usual dialogue state:
import { narration } from "@drincs/pixi-vn";
import { ai } from "@drincs/pixi-vn-ai";
// Inside an async step, after startup has awaited ai.init(...):
narration.dialogue = await ai.text.generateDialog(
"Describe the empty station as the last train leaves.",
{ scene: "A rural station at dusk", language: "English", history: true },
);ai.image.generateBackground and ai.image.generateElement generate scene imagery;
the library builds prompts from the request and structured context. Consult the
AI guide and
plugin README for dependencies,
provider configuration, image results, and display helpers before wiring images into canvas.
A label is the Pixi'VN equivalent of a Ren'Py "bookmark"/landmark in the story (the same concept
is called a knot in the ink language): a container for an ordered list of steps (plain
functions), each one run when the player advances the story. Labels are created with newLabel and
are automatically registered so they can be referenced by id anywhere (choices, narration.call,
narration.jump, Game.start).
import { narration, newLabel } from "@drincs/pixi-vn";
const startLabel = newLabel("start", [
() => {
narration.dialogue = "Welcome to the game!";
},
() => {
narration.dialogue = { character: "liam", text: "Hi, I'm Liam." };
},
]);Key points:
newLabel(id, steps, props?) — id must be unique across the whole game; steps is an array of
StepLabelType functions, executed in order as the player continues; props is optional
(onStepStart, onStepEnd, onLoadingLabel hooks — rarely needed for basic authoring).(props, { labelId }) => StepLabelResultType | Promise<StepLabelResultType>. Steps
can be async when they need to await something (e.g. calling another label, loading assets).
Return value is optional — most steps return nothing (void); returning a string/object is only
needed by code that consumes StepLabelResultType explicitly.newLabel(...) at module scope so the label registers itself simply
by being imported. Make sure the module gets imported somewhere reachable at startup.steps can also be a function that returns the array, e.g. () => [...], which lets step
content change dynamically based on game state — see "Conditional branching" below.Set narration.dialogue inside a step to display a line. It accepts either a plain string/array of
strings, or a DialogueInterface-shaped object with text and an optional character:
// Narrator line (no character)
narration.dialogue = "He thrusts out his hand.";
// A line with a speaker — character can be a registered character's string id...
narration.dialogue = {
character: "james",
text: `You're my roommate's replacement, huh?`,
};
// ...or the character object itself, e.g. imported from your characters module
narration.dialogue = { character: liam, text: "Hi, I'm Liam." };Which form to prefer depends on the project's setup — see pixi-vn-characters for the full
rationale, but in short: prefer the instance unless the @drincs/pixi-vn/vite plugin's
typeFilePath generation (narrowing CharacterIdType to known ids, see pixi-vn-getting-started)
is set up, in which case prefer the string-id form — it's just as typo-safe then, without
needing to import the character module in every label file.
narration.dialogue is a getter too: reading it returns { text, character } (with character
resolved to the full CharacterInterface when a registered id was used, or undefined/the raw
string otherwise).
Gluing dialogue across steps: set narration.dialogGlue = true before assigning
narration.dialogue in a step to have that line's text appended to the current dialogue text
instead of replacing it. This lets a paragraph be split across several steps (each free to change a
character's pose/sprite in between) while it reads to the player as one continuous block of text,
with no waiting/empty-box flash in between. From the official React template
(src/content/labels/second.label.ts):
async () => {
await showImageContainer("steph", ["fm02-body", "fm02-eyes-joy", "fm02-mouth-smile00"]);
narration.dialogue = `She enters my room before I'VE even had a chance to.`;
},
async () => {
await showImageContainer("steph", ["fm02-body", "fm02-eyes-joy", "fm02-mouth-smile00"]);
narration.dialogGlue = true;
narration.dialogue = `\n\n...I could've just come back and gotten the platter later...`;
},The player still advances one step at a time as usual (dialogGlue only affects how the text
accumulates, not whether continue()/player input is needed); it resets automatically once a
non-glued narration.dialogue assignment is made.
Character objects (CharacterBaseModel and registration via RegisteredCharacters) are covered by
the pixi-vn-characters skill — this module only needs a character's id (or the object) to attach
it to a line.
Docs: https://pixi-vn.com/start/dialogue
Docs: pixi-vn.com/start/markup, markup-markdown, markup-tailwindcss.
Pixi'VN isn't tied to any markup language for narration.dialogue text, but Markdown is the
recommended one, and Markdown can be freely mixed with raw HTML for anything Markdown itself can't
express. Every official template already renders dialogue this way — in the React template
specifically, via react-markdown with the remark-gfm (GFM tables/strikethrough/etc.) and
rehype-raw (allows raw HTML inside the Markdown source) plugins:
import Markdown from "react-markdown";
import rehypeRaw from "rehype-raw";
import remarkGfm from "remark-gfm";
<Markdown remarkPlugins={[remarkGfm]} rehypePlugins={[rehypeRaw]}>
{narration.dialogue?.text}
</Markdown>;When writing dialogue text, default to plain Markdown's classic inline styles — *italic*,
**bold**, and similar simple emphasis — rather than reaching for raw HTML/CSS. Only use HTML (or
anything fancier) when the user actually asks for it (e.g. a specific color, an animation, an
underline a specific character always has):
narration.dialogue = "*She* was **not** amused.";When HTML is asked for, the recommended CSS approach (per the docs) is Tailwind CSS — already
installed and configured in every official template, optionally with plugins like
@tailwindcss/typography, tw-animate-css, or tailwind-animations for richer text effects. A
Tailwind-styled inline element inside dialogue text must be inline-block — a plain inline
element won't apply transform/animation utilities correctly mid-paragraph:
narration.dialogue = `The night was <span class="inline-block animate-pulse text-violet-400">still</span>.`;A choice menu is created by assigning an array to narration.choices, typically built with
newChoiceOption (opens another label) and/or newCloseChoiceOption (just closes the menu and lets
the current label's next step run).
import {
narration,
newChoiceOption,
newCloseChoiceOption,
newLabel,
} from "@drincs/pixi-vn";
const choiceLabel = newLabel("choice", [
() => {
narration.dialogue = "What do you choose?";
narration.choices = [
newChoiceOption("A", ALabel, {}), // default type is "call"
newChoiceOption("B", BLabel, {}, { type: "jump" }),
newCloseChoiceOption("Close"),
];
},
() => {
narration.dialogue = "end";
},
]);newChoiceOption(text, label, props, options?) — text is the option's label text; label is the
target Label object or its string id; props are passed to the target label's steps (pass {}
if none are needed); options.type is "call" (default — the target runs and can return to this
label afterwards) or "jump" (the current label is closed first, no return).newCloseChoiceOption(text, options?) — closes the choice menu without opening any label; narration
simply continues into the current label's next step. options.closeCurrentLabel: true additionally
closes the current label when chosen.ChoiceInterface options available in both: oneTime (option disappears once chosen),
onlyHaveNoChoice (shown only as a fallback if every other option has been removed), autoSelect
(if it ends up being the only available option, it's chosen automatically without player input).narration.choices.list (a StoredChoiceInterface[], an indexed array — each option carries
a choiceIndex), and call narration.choices.select(choice, props) when the player picks one.
Pass through any StepLabelProps the target label needs plus the option's own stored props:const item = narration.choices.list![0];
await narration.choices.select(item, { ...item.props });choices.select dispatches to narration.call/narration.jump/closing the menu based on the chosen
option's type, and records the pick so narration.queries.alreadyCurrentStepMadeChoices /
queries.timesChoiceMade can reflect past choices (useful for oneTime options across replays).
Docs: https://pixi-vn.com/start/labels-flow
Game.start(label, props) clears all game data and calls the given label —
this is the standard entry point, e.g. Game.start(startLabel, {}). label can be the Label
object itself (what the docs show) or its string id (Game.start("start", {})) — both work,
Game.start is a thin wrapper around narration.call plus Game.clear().await narration.continue(props) runs the current label's next step. Guard
advancing with narration.canContinue (false while a step is running, or a choice menu / required
input is pending) — this is the shape a "next" button/handler should use:while (narration.canContinue) {
await narration.continue({});
}await narration.call(otherLabel, props). Can be used both to start the very first label and, from
inside a step, to invoke a nested label. If you call it from inside a step, return the result
and await it, so the history bookkeeping stays correct:async (props) => {
return await narration.call(otherLabel, props);
};await narration.jump(otherLabel, props).
Same rule applies — return await narration.jump(...) when called from within a step.return — Pixi'VN advances past the label's end on the next continue(). Use
narration.labels.closeCurrent() / narration.labels.closeAll() only for lower-level manual stack
control (closeAll() ends the game if nothing is called afterwards).narration.labels.opened and narration.labels.current reflect the current call stack of nested
labels, useful for debugging/branching logic.narration — see stepHistory.back() /
stepHistory.canGoBack in the pixi-vn-history skill.Docs: https://pixi-vn.com/start/input
To ask the player for a value (string, number, or an HTML element like a textarea), call
narration.input.request inside a step; the engine will not let the story continue
(narration.canContinue is false) until a value is provided by the UI:
() => {
narration.dialogue = "What is your name?";
narration.input.request({ type: "string" });
},
() => {
narration.dialogue = `My name is ${narration.input.value}`;
},
() => {
narration.dialogue = "How old are you?";
narration.input.request({ type: "number" }, 18); // second arg is an optional default value
},narration.input.request(info?, defaultValue?) — info is InputInfo minus isRequired (e.g.
{ type: "string" }, { type: "number" }, { type: "html textarea" }); omit it for a plain text
input.narration.input.isRequired / narration.input.type tell the UI layer whether a prompt is pending
and what kind, so it can render the right control.narration.input.value holds the submitted value once the UI resolves the prompt — read it in a
later step to use what the player typed.narration.input.removeRequest() cancels a pending request without a value (rarely needed in normal
authoring).Because steps can be a function, a label's content can change based on stored state — e.g. showing
different dialogue on a repeat visit:
import { narration, newLabel, storage } from "@drincs/pixi-vn";
const talkAliceQuest = newLabel("talk-alice-quest", () => {
if (storage.flags.get("test") === false) {
return [
() => {
narration.dialogue = {
character: "alice",
text: "Hi, can you order me a book?",
};
},
() => {
narration.dialogue = { character: "mc", text: "Ok" };
},
async (props) => {
storage.flags.set("test", true);
await narration.continue(props);
},
];
}
return [
() => {
narration.dialogue = { character: "alice", text: "Thanks for the book." };
},
];
});The function re-runs every time the engine needs to know the label's steps, so branch on stable
storage flags/variables (see pixi-vn-storage) rather than on anything that changes mid-step. The
last step in a branch can await narration.continue(props) itself if it wants to immediately
auto-advance past a "setup" step instead of waiting for another player input.
Docs: https://pixi-vn.com/start/other-narrative-features
Game.onEnd(async (props) => {...}) runs once every open label's steps are exhausted and nothing
else is called — the standard place to navigate to an ending screen, or to narration.call/jump
back into a menu/loop label if the game should never truly "end".narration.getRandomNumber(...) gives a seeded-safe random number (prefer this over raw Math.random
so saves/rollback stay deterministic).narration.queries.isLabelAlreadyCompleted(label | labelId) checks whether a label has fully run before —
handy for "seen this scene already" branching.narration.currentStepTimesCounter counts how many times the current step has executed (only
increments when actually read, and only once per step execution); set it to 0 to reset. Useful for
"show this the first time only" logic inside a dynamic step-list function.The library itself doesn't mandate any file layout or UI wiring — the points below are how
npm create pixi-vn@latest's official "TS narration + React" template does it, as seen in
pixi-vn-react-template. Treat this as one convention worth following/recognizing, not a hard
requirement: other narration styles (e.g. an ink-based project) will have their own skill and
their own conventions.
src/content/labels/<name>.label.ts, exporting a
newLabel(...) result (e.g. second.label.ts exports secondPart = newLabel("second_part", [...])).
Character definitions live alongside under src/content/characters/.src/content/index.ts does
import.meta.glob(["./**/*.ts", "!./index.ts"], { eager: true }) (a Vite feature) to eagerly import
every module under content/ for its side effects at startup. Since newLabel/character
registration runs at module scope, a new label file just needs to exist under content/ — no
manual import list to maintain.lib/hooks/narration-hooks.ts and
lib/query/narration-query.ts): a "next" handler guards on narration.canContinue before calling
await narration.continue(gameProps); a choice handler reads narration.choices.list and calls
await narration.choices.select(item, gameProps); an input prompt reads
narration.input.isRequired / narration.input.type / narration.input.value. Real code wraps all
three in a loading-state guard (e.g. a GameStatus.setLoading(true/false) store) so double-clicks
can't fire concurrent continue()/choices.select() calls, and a combined
narration.canContinue && !narration.input.isRequired is a convenient "can the player press next"
check for enabling/disabling a next button.gameProps above is just that project's augmented StepLabelProps (translation function,
router navigate, toast, etc., declared via TS module augmentation in pixi-vn.d.ts) — it's plain
application data, not something the narration module requires.pixi-vn-getting-started, pixi-vn-characters, pixi-vn-history, pixi-vn-storage
© DRincs-Productions, LGPL-2.1. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/narration of DRincs-Productions/pixi-vn.
Open the folder on GitHubat commit 01c19cb
Pixi Vn Narration next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Pixi Vn Narration this skillDRincs-Productions/pixi-vn | 149 | — | ~4.9k | Automated safety check: Pass | LGPL-2.1 | |
| MoneyPrinterTurbo Video Generatorharry0703/MoneyPrinterTurbo | 130k | — | ~2.1k | Automated safety check: Warn | MIT | |
| HyperFrames Media Useheygen-com/hyperframes | 60k | — | ~2.4k | Automated safety check: Pass | Apache-2.0 | |
| Openspec OnboardSAP/e-mobility-charging-stations-simulator | 227 | 25 repos | ~3.5k | Automated safety check: Pass | MIT | |
| Blog AudioAgriciDaniel/claude-blog | 2.3k | 1 repos | ~2.2k | Automated safety check: Notes | MIT | |
| Musictadaspetra/loop | 296 | 2 repos | ~827 | Automated safety check: Pass | MIT |
harry0703/MoneyPrinterTurbo
Installs and runs MoneyPrinterTurbo to turn a topic or script into a finished short video with voice-over, subtitles, stock footage and music.
heygen-com/hyperframes
Finds, generates and edits media for HyperFrames video projects: music, sound effects, images, icons, logos, voiceovers, captions and color grades.
SAP/e-mobility-charging-stations-simulator
Guided onboarding for OpenSpec - walk through a complete workflow cycle with narration and real codebase work.
AgriciDaniel/claude-blog
Generate audio narration of blog posts using Google Gemini TTS.
tadaspetra/loop
Generate music using ElevenLabs Music API. An agent skill from tadaspetra/loop.
hoquanghai/Auto-Create-Video
Tạo video tin tức ngắn 9:16 (~60s) từ URL bài báo hoặc file .txt tiếng Việt.
DRincs-Productions/pixi-vn
A skill your agent uses when adding, organizing, registering, or loading non-code files (images, audio, video) in a Pixi'VN project — local assets processed by PixiJS AssetPack vs.
DRincs-Productions/pixi-vn
A skill your agent uses when defining visual novel characters for a @drincs/pixi-vn game — creating a character with a name, color, icon and other props, registering it so it can be looked up by id…
DRincs-Productions/pixi-vn
A skill your agent uses when implementing "go back" / "rewind" / step-navigation features in a Pixi'VN game, or when you need to read the player-facing dialogue/choice history (e.g.
DRincs-Productions/pixi-vn
A skill your agent uses when adding a minigame (snake, quiz, puzzle, timing/reaction game, ...) to a Pixi'VN visual novel — the useMinigame lifecycle hook pattern, using PixiJS directly on its own…
DRincs-Productions/pixi-vn
A skill your agent uses when implementing save/load in a Pixi'VN game — Game.exportGameState()/restoreGameState()/jsonToGameState(), what the exported GameState contains, and how to persist it (save…
DRincs-Productions/pixi-vn
A skill your agent uses when playing or stopping background music, sound effects, or voice lines; creating/organizing audio channels; controlling volume, mute, or pan; or wiring Tone.js audio…
Categories
A skill your agent uses when writing or editing Pixi'VN story content — defining labels (scenes) with newLabel, writing dialogue steps, adding player choices with…. Pixi Vn Narration is an agent skill from DRincs-Productions/pixi-vn.start to progress the story.
Pixi Vn Narration fits situations like: editing PixiVN story content — defining labels (scenes) with newLabel; writing dialogue steps; adding player choices with newChoiceOption/newCloseChoiceOption; conditional/branching labels.
Run `npx skills add DRincs-Productions/pixi-vn --skill pixi-vn-narration -a claude-code`. Or copy the skill folder (skills/narration in DRincs-Productions/pixi-vn) into .claude/skills/pixi-vn-narration in your project. Claude Code loads it when a task matches its description.
Run `npx skills add DRincs-Productions/pixi-vn --skill pixi-vn-narration -a codex`. Or copy the skill folder (skills/narration in DRincs-Productions/pixi-vn) into .agents/skills/pixi-vn-narration in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add DRincs-Productions/pixi-vn --skill pixi-vn-narration -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/pixi-vn-narration, .gemini/skills/pixi-vn-narration, .github/skills/pixi-vn-narration and .opencode/skills/pixi-vn-narration in your project.
Going by SKILL.md and its folder, Pixi Vn Narration needs the command-line tools its instructions call (npm).
SKILL.md names 2 domains. As links in the text: pixi-vn.com and github.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Pixi Vn Narration is published under the LGPL-2.1 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4.9k tokens (SKILL.md is roughly 19k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Pixi Vn Narration: MoneyPrinterTurbo Video Generator (harry0703/MoneyPrinterTurbo, 130k stars), HyperFrames Media Use (heygen-com/hyperframes, 60k stars), Openspec Onboard (SAP/e-mobility-charging-stations-simulator, 227 stars) and Blog Audio (AgriciDaniel/claude-blog, 2.3k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
DRincs-Productions (a GitHub organization) maintains it in DRincs-Productions/pixi-vn, which has 149 GitHub stars. The repository holds 13 skills in this directory. The repository was last updated on October 1, 2026.
Source: DRincs-Productions/pixi-vn on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.