Skills.sh Is the npm Moment for AI Agents (And Most Developers Haven't Noticed)
I started building AI agents about two years ago. Not toy demos, actual production features inside a health-tech product. And every single project started the same way. Write the tool-calling wrapper. Handle the edge cases in structured output. Figure out how the agent should read a PDF without hallucinating page numbers. Build the retry logic. Wire up the logging. Same boilerplate. Every time. From scratch. The frustrating part is that every developer building agents is doing this too. Quietly. In their own repo. And nobody shares it. That is the real infrastructure problem in the agent space right now. Not the model. The model is fine. The problem is everything in between the model and a working agent. Skills.sh is trying to solve that. And after spending time with it, I think it has a real shot. What is the "agent infrastructure gap"? When npm launched, developers were already writing JavaScript. The language was not the bottleneck. The bottleneck was that every team was reinventing the same utilities and then never sharing them. npm gave the ecosystem a way to publish, discover, and install reusable logic. Agent development is in that same phase right now. The LLMs are capable enough. Claude, GPT-4, Gemini, they can all do the work. But the procedural knowledge layer, the "how to actually do this specific thing correctly," lives inside private codebases, personal notes, and Slack messages. How do you reliably parse a multi-page PDF inside an agent? How do you get consistent structured output from a chain of tool calls? How do you write a SKILL.md that actually teaches the agent something useful instead of being ignored? Everyone figures this out on their own. Nobody publishes it in a way other agents can consume. What Skills.sh actually is Skills.sh is an open ecosystem from Vercel for discovering, installing, and sharing reusable capabilities for AI agents. A skill is a SKILL.md file. It is a markdown document with a small YAML frontmatter block at the top: ---