genjutsu

FAQ

Plan requirements, cast, paint or bunshin, what bunshin costs and needs, tells and why there is no template, other agents, updating, what genjutsu leaves in your repo, and what to check when the output feels generic.

All documentation

Is it free?

Yes, and MIT licensed. The repository is public.

What do I need to run it?

npx: Node, for the npx skills command, and an agent to run the skill in.

Claude Code: nothing beyond Claude Code itself.

claude.ai: the code execution feature, which is on the Pro, Max, Team and Enterprise plans. Skills need it, so a Free plan cannot run this one.

bunshin: a host that can spawn subagents, which means Claude Code as far as the genjutsu repository has checked, and Node 22 and Chrome for its captures. The full list is under what bunshin needs.

cast, paint or bunshin?

If a visual direction already exists and you want it improved, cast. If there is no direction, or the one there is what you want gone, paint. If the job is a whole website or web app, first version, with real material behind it, bunshin.

Practically: “add a scroll animation to this section” and “make this dropdown feel snappy” are cast. “Redesign the landing page” and “build me a portfolio from scratch” are paint. “Build the whole site for this client from their profile, in two languages” is bunshin. After an npx install you do not have to choose: /genjutsu reads the request and picks cast or paint, and bunshin only when you name it. You will not miss it by forgetting the name: when the brief is a whole site and the host can run it, cast and paint propose it once, with its cost, and switch only on a yes.

paint asks up front whether to preserve your brand, change part of it, or redesign, so running it on a project you like is no longer a trap. If all you want is motion, cast is still the shorter road.

What does bunshin cost?

Millions of tokens and hours, and it says so before anything runs. The tier is the first question it asks, with standard marked as recommended:

Tier Refine rounds Estimate
lean 1 About 6M subagent tokens, 3 to 4 hours
standard Up to 2 About 8 to 9M subagent tokens, 4 to 6 hours
full Up to 4 About 12 to 13M subagent tokens, 6 to 10 hours

Those are estimates built from the per-unit costs of one measured run: a seven-page site in two languages, about 10.5M subagent tokens over six to eight hours, with one review, three refine rounds and two verdicts. Two of the units were not measured and are estimates themselves: a three-lens review with its plan, and a verdict without cold eyes. The main session’s own tokens were not measured either, and come on top. Yours scales with the number of pages, and bunshin works its estimate out from your page count before the first clone runs. It never passes the tier’s round cap without asking, and in a session with nobody there to answer it spends nothing unless the request names a tier. The cost of each unit is on the bunshin page.

Do I need Impeccable?

No, but bunshin is better with it. Impeccable is a separate design skill, not part of genjutsu. When it is installed it leads the product interview and draws the visual direction, and brings its finish reviewer and its documenter. Without it, bunshin draws the direction in a round of its own and says the result is weaker. It offers the install once, at its first gate, and never runs it without your yes:

npx impeccable install --project -y

cast and paint do not use it.

Does bunshin run on claude.ai?

The claude.ai bundle carries it, like the other two pipelines. Whether it runs depends on one thing the session has to offer: a tool that spawns subagents. bunshin checks for it before anything else. Where it finds one, it runs; where it does not, it says so and hands the request to paint, which runs anywhere the skill does. It never plays the clones itself in one conversation, because a single context reviewing its own work is exactly what its independent reviews exist to avoid. Claude Code names the two tools it looks for Agent, which spawns the clones, and Workflow, which runs the fan-outs; without the second, the same clones are spawned by hand, slower, from the exact prompts brief.mjs prints. Claude Code is the one host the genjutsu repository has checked. claude.ai and Cowork have not been tested, and the repository marks both VERIFY-NEEDED: it expects claude.ai to give a skill no subagent tool, so expect paint there, and Cowork has not been looked at. On any host, its captures also need Node 22 and Chrome, and without them the reviews read code only.

What is a tell?

A default a model produces by reflex when nobody asked for it: an invented build status in the corner, a numbered eyebrow over a page with nothing to index, three equal cards, a hero that promises to elevate your workflow, an em dash in every second sentence. None of these is wrong in itself. Each is a tell because it came from the model’s habits rather than from your project.

genjutsu’s tells module names them in four families: invented information, decorative filler, reflex convergence and hollow copy. Every entry gives the marker, why models produce it, and a question that sends you back to the thesis. The tells field guide lists every entry, and the command that checks a project for them without a model.

Why not a template, or a style guide?

Because a template is just a different set of defaults. Swap one house style for another and every project still converges, only on a new look.

genjutsu detects and never prescribes. A pattern is only a tell when the validated thesis did not ask for it, and the exception has to be named in the thesis itself, on its Allowed patterns: line: a studio that really works from Paris and Tokyo can keep its two clocks, as long as that line says so. No entry ever says “use this instead”.

Does it work in Codex, Cursor or other agents?

npx skills add https://genjutsu.athevon.dev -g installs it for them, and nothing in the skill is specific to one host, so it runs. It is not tested there by the maintainer and it is not supported. If you hit a problem, open an issue that names the agent; one that does not reproduce under Claude Code is labelled community.

I installed with npx skills add AThevon/genjutsu and it stops

That command installs from the repository, which gets you cast, paint and bunshin without the seventeen modules they load. genjutsu notices, stops, and prints the right command. Remove the three with npx skills remove cast paint bunshin -g, then install from the site address:

npx skills add https://genjutsu.athevon.dev -g

Will it install packages in my project?

Not without asking. If your stack has no animation library, the native APIs are preferred first, and a dependency is proposed with a reason attached and then waited on. In a session with nobody there to answer, nothing is installed at all.

And if you already chose GSAP or Framer Motion, that module loads and that choice is respected. It will not argue for a migration.

Does anything from genjutsu ship in my bundle?

No. genjutsu is instructions the agent reads, not code you depend on. The output is ordinary code in your project’s own idiom, with your project’s own dependencies. Uninstalling genjutsu does not touch anything it wrote.

What does it leave behind?

Whatever code it wrote, and if you ran paint, a MASTER.md design system at your project root plus the token files your stack expects (CSS custom properties, Theme.kt, Color+App.swift, or commonMain tokens for Compose Multiplatform). After bunshin: the site, a PRODUCT.md, a DESIGN.md, an AGENTS.md for the AI that will maintain it, and a .bunshin/ folder of run notes that it adds to .gitignore. All plain files, all yours, all readable without genjutsu installed. Nothing is committed, pushed or deployed unless you ask.

Why does it insist on a thesis before writing anything?

Because the cost is asymmetric. Rejecting one sentence costs a sentence. Discovering the direction was wrong after the implementation costs the implementation, and usually a second round of reconciling half of it.

The thesis is also what the audit checks the code against. “The thesis said no bounce” is a checkable objection, and genjutsu makes it itself: every promise in the thesis is matched to the file:line that keeps it, or reported missing.

Can I skip the brainstorm in paint?

Not silently. Push, and it will tell you what has been covered, what is still missing, and what that gap affects, then offer you the choice between one more question and proceeding on stated assumptions. If you take the second, the assumptions are named out loud so you can correct them rather than discovering them.

How do I update it?

npx: npx skills update -g.

Claude Code plugin: through the plugin system, like any other plugin.

claude.ai: re-download genjutsu.zip and re-upload it. The link always serves the newest release, so there is no version to look up. The release shown in this site’s footer is a quick way to check whether you are behind.

The output feels generic. What now?

Three things to check, in order.

Did a thesis actually get stated and validated? If code arrived without one, the pipeline was short-circuited and the guardrails came off with it. Ask for the thesis explicitly.

Did every module load? The final report ends with two lines, “Modules loaded” and “Modules not loaded”. On claude.ai a partial upload is the usual cause; the single zip carries all seventeen modules.

Was the request specific enough to have a direction? “Make it look better” contains no decisions. Naming the element, the feeling and one thing you do not want will change the output more than any setting could.

Can I use it alongside other design skills?

Yes. genjutsu’s subject is motion, interaction, art direction and native implementation across platforms, and it holds the result to your thesis. If another skill pushes a house style, expect the audit to flag what the thesis did not ask for; that is the point of it, not a conflict.

Where do I report something?

GitHub issues. Include the surface (npx, the Claude Code plugin, or claude.ai), the agent if it was not Claude Code, the stack, and the thesis it proposed, if it got that far. The thesis is usually the most diagnostic part.