Live
Black Hat USAAI BusinessBlack Hat AsiaAI Businessmorningbrew.comtrunk/bac8607b42eebcd1173c3c8b6a6afa62ccb4c3b8: [vllm hash update] update the pinned vllm hash (#179439)PyTorch ReleasesThe Greatest Risk of AI in Higher Education Isn’t Cheating – It’s the Erosion of Learning Itself - The Good Men ProjectGNews AI educationciflow/trunk/179196: UpdatePyTorch Releasesciflow/trunk/179195: UpdatePyTorch ReleasesAI Agents Are Coming for Your Waiting Room. That’s Just the Start. - CDOTrendsGNews AI agenticAI Has Already Decided: First-Party Data Will Define Advertising’s Agentic Era - AdExchangerGNews AI agenticDefending Habit Streakslesswrong.comChinese-made drone shot in Iran, Australia’s diplomacy pivot: 5 weekend reads you missedSCMP Tech (Asia AI)How NLP Actually Understands Text?Medium AIXENONOSTRA RESEARCH NOTES ALGEBROS: An Algebraic Meta-Language for Code Structure Extraction and…Medium AI18 Specific Tutorial Ideas for AI Voice Integration Using Vapi and TwilioDev.to AIBlack Hat USAAI BusinessBlack Hat AsiaAI Businessmorningbrew.comtrunk/bac8607b42eebcd1173c3c8b6a6afa62ccb4c3b8: [vllm hash update] update the pinned vllm hash (#179439)PyTorch ReleasesThe Greatest Risk of AI in Higher Education Isn’t Cheating – It’s the Erosion of Learning Itself - The Good Men ProjectGNews AI educationciflow/trunk/179196: UpdatePyTorch Releasesciflow/trunk/179195: UpdatePyTorch ReleasesAI Agents Are Coming for Your Waiting Room. That’s Just the Start. - CDOTrendsGNews AI agenticAI Has Already Decided: First-Party Data Will Define Advertising’s Agentic Era - AdExchangerGNews AI agenticDefending Habit Streakslesswrong.comChinese-made drone shot in Iran, Australia’s diplomacy pivot: 5 weekend reads you missedSCMP Tech (Asia AI)How NLP Actually Understands Text?Medium AIXENONOSTRA RESEARCH NOTES ALGEBROS: An Algebraic Meta-Language for Code Structure Extraction and…Medium AI18 Specific Tutorial Ideas for AI Voice Integration Using Vapi and TwilioDev.to AI
AI NEWS HUBbyEIGENVECTOREigenvector

I had a bunch of Skills sitting in a folder. None of them were callable as APIs

Dev.to AIby skrunApril 3, 20263 min read3 views
Source Quiz
🧒Explain Like I'm 5Simple language

Hey there, little explorer! Imagine you have a bunch of super cool toy robots, right? Each robot knows how to do one special trick, like singing a song or building a tower.

But guess what? Each robot could only do its trick by itself, in its own room! You couldn't tell your singing robot to help your building robot. They were stuck!

This story is about a clever grown-up who built a special magic bridge called "Skrun." Now, all the robot tricks can talk to each other and work together! It's like giving them walkie-talkies so they can share their amazing skills and make even bigger, cooler things happen! Hooray for teamwork!

So I built a runtime to fix that. The problem If you use Claude Code, Copilot, or Codex, you've probably created Agent Skills, those SKILL.md files that tell the AI what to do. I had a bunch of them. But they were stuck. I couldn't plug them into a product, trigger them from a webhook, or let any service call them with a POST request. Each skill was trapped inside the tool that created it. What I wanted take a SKILL.md → get a POST /run endpoint No new framework to learn. No infrastructure to set up. Just point at a skill, configure the model, and deploy. What I built Skrun , an open-source runtime that takes Agent Skills and turns them into callable APIs. skrun init --from-skill ./my-existing-skill # reads SKILL.md, generates agent.yaml skrun deploy # validates, builds, pushes # → POST ht

So I built a runtime to fix that.

The problem

If you use Claude Code, Copilot, or Codex, you've probably created Agent Skills, those SKILL.md files that tell the AI what to do.

I had a bunch of them. But they were stuck. I couldn't plug them into a product, trigger them from a webhook, or let any service call them with a POST request.

Each skill was trapped inside the tool that created it.

What I wanted

take a SKILL.md → get a POST /run endpoint

Enter fullscreen mode

Exit fullscreen mode

No new framework to learn. No infrastructure to set up. Just point at a skill, configure the model, and deploy.

What I built

Skrun, an open-source runtime that takes Agent Skills and turns them into callable APIs.

skrun init --from-skill ./my-existing-skill

reads SKILL.md, generates agent.yaml

skrun deploy

validates, builds, pushes

→ POST http://localhost:4000/api/agents/dev/my-skill/run`

Enter fullscreen mode

Exit fullscreen mode

Then you call it:

curl -X POST http://localhost:4000/api/agents/dev/code-review/run \  -H "Authorization: Bearer dev-token" \  -H "Content-Type: application/json" \  -d '{"input": {"code": "function add(a,b) { return a + b; }"}}'

Enter fullscreen mode

Exit fullscreen mode

{  "status": "completed",  "output": {  "score": 60,  "issues": [  {"severity": "warning", "description": "Use const instead of var"}  ],  "review": "Lacks error handling..."  } }

Enter fullscreen mode

Exit fullscreen mode

Multi-model

You pick the provider in agent.yaml, not in your code. Anthropic, OpenAI, Google, Mistral, Groq. If one fails, it falls back to the next.

model:  provider: google  name: gemini-2.5-flash  fallback:  provider: openai  name: gpt-4o

Enter fullscreen mode

Exit fullscreen mode

Tool calling

Two approaches.

You can bundle your own CLI tools with the agent. Create a scripts/ directory, write whatever you want (shell, Node, Python), declare them in agent.yaml:

tools:

  • name: eslint_check script: scripts/eslint-check.sh description: "Run ESLint on JavaScript code"`

Enter fullscreen mode

Exit fullscreen mode

The LLM calls the tool when it needs to. Skrun executes the script, returns the result. Your agent can run a linter, query a database, call an internal API.

Or use MCP servers. Any MCP server from the npm ecosystem works via npx:

mcp_servers:

  • name: browser transport: stdio command: npx args: ["-y", "@playwright/mcp", "--headless"]`

Enter fullscreen mode

Exit fullscreen mode

Stateful

Agents can persist key-value state across runs. Run the same agent twice, it remembers what happened last time.

Roadmap

v0.1 runs on a local registry server. Next up:

Cloud deploy (the architecture has a RuntimeAdapter interface ready for sandboxed VMs), caller-provided API keys, streaming responses, and a hub to discover and share agents.

The numbers

4 packages (@skrun-dev/schema, cli, runtime, api), 10 CLI commands, 154 tests, 6 demo agents, MIT license.

Try it

npm install -g @skrun-dev/cli git clone https://github.com/skrun-dev/skrun.git cd skrun && pnpm install && pnpm build

Enter fullscreen mode

Exit fullscreen mode

Set a Google API key in .env, start the registry (pnpm dev:registry), and follow the "Try an example" section in the README.

github.com/skrun-dev/skrun

I'd love feedback on: The agent.yaml format (does the I/O contract make sense?), the skill import flow, and what agents you'd build with this.

Was this article helpful?

Sign in to highlight and annotate this article

AI
Ask AI about this article
Powered by Eigenvector · full article context loaded
Ready

Conversation starters

Ask anything about this article…

Daily AI Digest

Get the top 5 AI stories delivered to your inbox every morning.

More about

claudegeminimistral

Knowledge Map

Knowledge Map
TopicsEntitiesSource
I had a bun…claudegeminimistralmodelopen-sourceproductDev.to AI

Connected Articles — Knowledge Graph

This article is connected to other articles through shared AI topics and tags.

Knowledge Graph100 articles · 267 connections
Scroll to zoom · drag to pan · click to open

Discussion

Sign in to join the discussion

No comments yet — be the first to share your thoughts!

More in Models