From yasha
Use when the user mentions yasha, wants to upgrade or bump every Node.js dependency in package.json to the latest published version, or asks how to install, uninstall, or run yasha. Applies even if the user does not say "yasha" explicitly but wants all packages updated to latest.
How this skill is triggered — by the user, by Claude, or both
Slash command
/yasha:yashaThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Upgrades every entry in `dependencies` and `devDependencies` of `package.json` to the latest published version, wipes `node_modules` and `package-lock.json`, then reinstalls clean.
Upgrades every entry in dependencies and devDependencies of package.json to the latest published version, wipes node_modules and package-lock.json, then reinstalls clean.
Pick the first option that applies:
Claude Code plugin (preferred when this skill is active): the bundled script is shipped with the plugin and available at ${CLAUDE_PLUGIN_ROOT}/bin/yasha.js. Run:
node "${CLAUDE_PLUGIN_ROOT}/bin/yasha.js"
No npm link or npm i -g needed.
CLI installed globally: if command -v yasha resolves, just run yasha.
Neither of the above: install globally with npm i -g yasha, or use the manual fallback below.
package.json in current directorydependencies and devDependencies, runs npm view <pkg> versionpackage.json (exact version, no semver range)node_modules/ and package-lock.jsonnpm installIf a package version cannot be resolved, that package is skipped with a warning. Other packages still update.
Run from the project root:
node -e "
const fs=require('fs'),{execFileSync,spawnSync}=require('child_process');
const win=process.platform==='win32';
const npm=win?'npm.cmd':'npm';
const opts={shell:win};
const pkg=JSON.parse(fs.readFileSync('package.json','utf8'));
for(const g of ['dependencies','devDependencies']){
if(!pkg[g])continue;
for(const n of Object.keys(pkg[g])){
try{pkg[g][n]=execFileSync(npm,['view',n,'version'],{encoding:'utf8',...opts}).trim()}
catch{console.warn('skip',n)}
}
}
fs.writeFileSync('package.json',JSON.stringify(pkg,null,2)+'\n');
fs.rmSync('node_modules',{recursive:true,force:true});
fs.rmSync('package-lock.json',{force:true});
const r=spawnSync(npm,['install'],{stdio:'inherit',shell:win});
if(r.status!==0)process.exit(r.status??1);
"
package.json exists in the current working directorynpm available on PATH| Mistake | Fix |
|---|---|
Running yasha where there is no package.json | cd into the project root first |
| Expecting semver range preservation | Yasha writes exact latest versions, not ranges |
Running without npm on PATH | Install Node.js / ensure npm resolves |
npx claudepluginhub iamhi/yasha --plugin yashaProvides UI/UX resources: 50+ styles, color palettes, font pairings, guidelines, charts for web/mobile across React, Next.js, Vue, Svelte, Tailwind, React Native, Flutter. Aids planning, building, reviewing interfaces.
Fetches up-to-date documentation from Context7 for libraries and frameworks like React, Next.js, Prisma. Use for setup questions, API references, and code examples.