claude-jarvis


I was too lazy to pick an AI skill. So I built an AI skill that picks AI skills for me.
Hi. I'm a lazy developer.
Not "I don't feel like writing tests today" lazy. I mean pathologically, clinically, aggressively lazy. I'm so lazy I have a keyboard shortcut to close tabs I don't want to read. I'm so lazy I automated my standup. I'm so lazy that when someone told me there were 50+ Claude Code skills available across GSD, Superpowers, and gstack — skills that could 10x my productivity — my first thought was:
"That's too many things to remember."
So I did what any self-respecting lazy developer would do. I asked Claude to figure it out for me. I said: "Build me one single skill that understands what I want and picks the best skill automatically."
It did.
Now I type /jarvis I want to do this thing and the correct workflow just... happens. I don't know which skill it used. I don't care. My job is to describe the vibe. Jarvis handles the rest.
And here's the part that genuinely surprised me — it doesn't just know the skills I hardcoded. It scans every single skill installed on your machine and reads the descriptions. Like a human skimming a list. So when you install a new skill tomorrow, Jarvis already knows how to use it. You don't tell it anything. It just figures it out.
It also keeps itself updated. First time you run it, it asks if you want auto-updates. You say yes. It silently updates itself, GSD, Superpowers, and gstack every 24 hours without you thinking about it ever again. The only thing it can't do is scroll reels for you. Working on it.
I have genuinely freed up 40% of my brain for more important things. Like scrolling reels.
What Jarvis Does
You tell it what you want in plain English. It reads your project state, figures out the highest-ROI skill from 50+ options across three frameworks, tells you what it picked in one line, and executes it.
/jarvis I want to add rate limiting to the API
→ brainstorm: new feature, scope needs designing first — a feature! wild. let me guess, you thought of this at 11pm.
/jarvis why is memory_engine crashing on startup
→ systematic-debugging: exception on startup, root cause first — bold move not reading the error message. let's see.
/jarvis ship this
→ ship: branch ready, creating PR — either it works or you'll be back in 10 minutes. let's go.
/jarvis where are we
→ gsd-progress: checking project state — let's see how far we've gotten while you were watching reels.
/jarvis write a LinkedIn carousel about my project
→ carousel-writer-sms (discovered): writing LinkedIn carousel content — found something you didn't even know you had. you're welcome.
That's the whole interface. One command. Infinite skills. With light mockery included at no extra charge.
Install
One command. It auto-installs GSD and Superpowers for you too, because obviously you're not going to do that yourself.
npm install -g claude-jarvis
Restart Claude Code. Done. Go back to your reels.
Alternatively, via Claude plugin system
claude plugin marketplace add UpayanGhosh/claude-jarvis
claude plugin install jarvis@UpayanGhosh
Usage
/jarvis <describe what you want like a normal human being>
That's it. That's the whole docs. You're welcome.
What's Happening Under the Hood
(You don't need to read this. Jarvis knows. But here you go.)
Jarvis runs a two-stage routing system:
Stage 1 — Fast path. 15 hardcoded high-ROI skills that cover 95% of what developers actually do. Instant match, zero overhead.
Stage 2 — Dynamic discovery. If Stage 1 misses, Jarvis scans every SKILL.md in ~/.claude/skills/ and your installed plugins, reads only the description field from each one — same way a human skims a list — and picks the best match semantically. When it finds something this way it tells you:
→ carousel-writer-sms (discovered): writing LinkedIn carousel content
→ obsidian-cli (discovered): task involves Obsidian vault notes
The (discovered) tag means Jarvis found it on your machine automatically. You installed a new skill yesterday and never told Jarvis? Doesn't matter. It already knows.
The hardcoded fast path covers: