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.