<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: divyank jain</title>
    <description>The latest articles on DEV Community by divyank jain (@divyank_builds).</description>
    <link>https://dev.to/divyank_builds</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3887440%2Fe1cfc5d2-0da8-4304-871f-37857eb214fd.png</url>
      <title>DEV Community: divyank jain</title>
      <link>https://dev.to/divyank_builds</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/divyank_builds"/>
    <language>en</language>
    <item>
      <title>I Stopped Running API Workflows. I Taught My Agent to Own Them</title>
      <dc:creator>divyank jain</dc:creator>
      <pubDate>Sun, 19 Apr 2026 17:00:09 +0000</pubDate>
      <link>https://dev.to/divyank_builds/i-stopped-doing-api-work-by-hand-i-taught-my-agent-to-do-it-instead-4agp</link>
      <guid>https://dev.to/divyank_builds/i-stopped-doing-api-work-by-hand-i-taught-my-agent-to-do-it-instead-4agp</guid>
      <description>&lt;p&gt;Every developer hits this moment: you have a powerful coding agent running next to you, handling real tasks — and you're still over here manually calling an endpoint, copying a value, pasting it into the next request, clicking through a UI to verify something ran.&lt;/p&gt;

&lt;p&gt;The agent isn't the problem. &lt;em&gt;You&lt;/em&gt; are still doing the work.&lt;/p&gt;

&lt;p&gt;I was there. I had Claude Code open, doing real things — browsing the codebase, writing tests, running commands. But my operational flows? Still me. Because the agent technically &lt;em&gt;could&lt;/em&gt; read API documentation and figure out the calls — but doing that every single session is a waste of tokens and context. It re-reads the same docs, re-discovers the same endpoints, re-reasons about the same auth pattern. Every time.&lt;/p&gt;

&lt;p&gt;Skills solve exactly that. You teach the agent once. It knows forever.&lt;/p&gt;

&lt;p&gt;But here's the part most people miss: a skill isn't just an instruction file. A skill combined with a script is an &lt;strong&gt;executable workflow&lt;/strong&gt;. The agent doesn't just know &lt;em&gt;what&lt;/em&gt; the API does — it can &lt;em&gt;run&lt;/em&gt; operations against it, deterministically, without loading the entire docs into context again. That's the difference between a cheat sheet and a power tool.&lt;/p&gt;




&lt;h2&gt;
  
  
  What is an agent skill?
&lt;/h2&gt;

&lt;p&gt;A &lt;strong&gt;skill&lt;/strong&gt; is a folder containing a &lt;code&gt;SKILL.md&lt;/code&gt; file. That file packages instructions, context, and optional executable scripts that a coding agent loads on demand. Think of it like an onboarding guide you write once — the agent pulls it up whenever it's relevant.&lt;/p&gt;

&lt;p&gt;The format follows the &lt;a href="https://github.com/anthropics/skills" rel="noopener noreferrer"&gt;Agent Skills open standard&lt;/a&gt;, which means the same &lt;code&gt;SKILL.md&lt;/code&gt; works across multiple agents, not just Claude Code.&lt;/p&gt;

&lt;p&gt;A well-built skill does three things:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Tells the agent what endpoints exist and how to call them&lt;/li&gt;
&lt;li&gt;Handles auth setup so the agent never has to re-figure it out&lt;/li&gt;
&lt;li&gt;Bundles a runnable Python CLI so the agent can actually &lt;em&gt;execute&lt;/em&gt; operations — not just describe them
That last point is what upgrades a skill from documentation to automation. When the agent invokes the bundled script, the script's code never even loads into context — only the output does. Efficient, repeatable, and fast.&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  The tool: &lt;code&gt;api-skill-creator&lt;/code&gt;
&lt;/h2&gt;

&lt;p&gt;&lt;code&gt;api-skill-creator&lt;/code&gt; generates a complete agent skill — &lt;code&gt;SKILL.md&lt;/code&gt; plus a Python CLI — from any API specification. One command.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/jn-divyank/api-skill-creator
&lt;span class="nb"&gt;cd &lt;/span&gt;api-skill-creator
pip &lt;span class="nb"&gt;install &lt;/span&gt;pyyaml  &lt;span class="c"&gt;# only dependency&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;It accepts OpenAPI 3.x, Swagger 2.0, Postman collections, and plain HTML docs pages. No external API calls. Works offline.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsnuar35mpiyxecpelcwh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsnuar35mpiyxecpelcwh.png" alt="Before vs after — the manual 6-step process vs one command" width="800" height="565"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;em&gt;Before: 4–6 hours per API. After: 10 seconds.&lt;/em&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  Seeing it work: the Open-Meteo example
&lt;/h2&gt;

&lt;p&gt;Let's run it against a real API. &lt;a href="https://open-meteo.com/" rel="noopener noreferrer"&gt;Open-Meteo&lt;/a&gt; is a free weather API with no authentication required — no account, no API key. They publish an official &lt;code&gt;openapi.yml&lt;/code&gt; directly in their GitHub repo.&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python create_skill.py &lt;span class="se"&gt;\&lt;/span&gt;
  &lt;span class="nt"&gt;--spec&lt;/span&gt; https://raw.githubusercontent.com/open-meteo/open-meteo/main/openapi.yml
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That's it. No tokens. No setup. Run it and watch.&lt;/p&gt;

&lt;p&gt;In the &lt;code&gt;./output/open-meteo/&lt;/code&gt; directory, you get:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;open-meteo/
├── SKILL.md        # Claude's playbook for this API
├── open_meteo_cli.py   # Runnable Python CLI
└── README.md       # Usage guide
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The generated &lt;code&gt;SKILL.md&lt;/code&gt; groups endpoints by resource, includes auth detection (none needed here), and writes request examples directly from the spec's schema. The &lt;code&gt;check&lt;/code&gt; command runs a connectivity test before you build anything.&lt;/p&gt;

&lt;p&gt;Now drop the skill into your agent:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;&lt;span class="nb"&gt;cp&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; output/open-meteo ~/.claude/skills/
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;And ask Claude Code: &lt;em&gt;"Get me the 7-day weather forecast for Bangalore in metric units."&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;The agent loads the skill, understands the endpoint, formats the request, and runs it. No back-and-forth. No you explaining what a query parameter is.&lt;/p&gt;

&lt;p&gt;That's the shift. You stopped being the API translator. The agent took over.&lt;/p&gt;




&lt;h2&gt;
  
  
  It also works when there's no OpenAPI spec
&lt;/h2&gt;

&lt;p&gt;Not every API publishes a machine-readable spec. For those cases, pass a docs URL instead:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python create_skill.py &lt;span class="nt"&gt;--url&lt;/span&gt; https://restcountries.com
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The tool scrapes the page, identifies endpoints, infers HTTP methods and parameters, and generates a skill from the HTML. Same output format. Same result.&lt;/p&gt;

&lt;p&gt;Your internal Swagger UI works the same way — point &lt;code&gt;--url&lt;/code&gt; at it.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsccbr0bu7v1dtvda8bti.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fsccbr0bu7v1dtvda8bti.png" alt="Any input type — OpenAPI, Postman, HTML docs, internal Swagger — flows into the tool and outputs one skill" width="800" height="447"&gt;&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  One skill, every agent
&lt;/h2&gt;

&lt;p&gt;Here's what most people miss about the Agent Skills format: it's not a Claude-only thing.&lt;/p&gt;

&lt;p&gt;The SKILL.md format is an open standard. The same file you generate with this tool works across:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Claude Code&lt;/strong&gt; — Anthropic's terminal-native coding agent&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Cursor&lt;/strong&gt; — loads skills from &lt;code&gt;.claude/skills/&lt;/code&gt; automatically&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Codex CLI&lt;/strong&gt; — OpenAI's agent reads the same format&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;OpenCode&lt;/strong&gt; — open-source agent, native SKILL.md support&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Antigravity&lt;/strong&gt; — Google's agent tooling&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;GitHub Copilot&lt;/strong&gt; — via compatible skill loaders&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;You generate the skill once. Your whole team uses it. In whatever agent they prefer.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff4la8mtq6na490dxh2xh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Ff4la8mtq6na490dxh2xh.png" alt="One SKILL.md in the center, six agents surrounding it with arrows" width="800" height="424"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This matters because teams aren't mono-agent. The senior engineer uses Claude Code. The new hire uses Cursor. The platform team runs Codex in CI. One skill covers everyone.&lt;/p&gt;




&lt;h2&gt;
  
  
  What you can actually automate now
&lt;/h2&gt;

&lt;p&gt;Once generating a skill is a 10-second task, the question shifts from &lt;em&gt;"can I automate this?"&lt;/em&gt; to &lt;em&gt;"what's worth automating?"&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Operational API workflows.&lt;/strong&gt; Any repetitive sequence — trigger a job, poll for status, fetch a result, update a record — that you've been running manually. The agent now owns that flow end to end.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;SDLC and CI/CD pipelines.&lt;/strong&gt; Teach the agent your Jenkins API. It can trigger builds, check pipeline status, retry failed stages, and report results — all through the skill's bundled CLI. Same for any CI system that exposes an API.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Deployment and infrastructure operations.&lt;/strong&gt; Point the tool at your cloud provider's API (AWS, GCP, or their internal tooling). The agent can describe running services, trigger deployments, check health endpoints, and coordinate rollbacks — as a skill-driven workflow, not a one-off conversation.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Internal APIs your team already owns.&lt;/strong&gt; Generate a skill from your internal Swagger UI. The agent now understands your own platform without you explaining endpoints every session. Commit the skill to &lt;code&gt;.claude/skills/&lt;/code&gt; in your repo — everyone on the team gets it.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;API exploration.&lt;/strong&gt; Curious about a new service? Generate a skill in 10 seconds, ask the agent to walk you through endpoints. Faster than reading the docs yourself.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Team standardization.&lt;/strong&gt; Every external service your team touches gets the same skill format, the same auth handling, the same structure. Consistency without the effort.&lt;/p&gt;




&lt;h2&gt;
  
  
  API changed? Regenerate, not rewrite
&lt;/h2&gt;

&lt;p&gt;When an API updates, you run the command again:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;python create_skill.py &lt;span class="nt"&gt;--spec&lt;/span&gt; ./stripe.json
&lt;span class="c"&gt;# → SKILL.md already exists. Showing diff...&lt;/span&gt;
&lt;span class="c"&gt;# → 3 endpoints added, 1 parameter changed. Overwrite? [y/n]&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;The tool diffs against your existing skill and shows what changed before overwriting. You review, confirm, done. The work that used to mean an afternoon is now a 30-second prompt.&lt;/p&gt;




&lt;h2&gt;
  
  
  Get started
&lt;/h2&gt;

&lt;p&gt;The project is open source under MIT license.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/jn-divyank/api-skill-creator" rel="noopener noreferrer"&gt;github.com/jn-divyank/api-skill-creator&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The fastest way to try it: clone the repo, run the Open-Meteo command above. No token required. The output drops into your agent in under a minute.&lt;/p&gt;

&lt;p&gt;If you hit something — an edge case, a spec format that breaks, an output that's off — open an issue. The more real-world specs get thrown at it, the better the parser gets.&lt;/p&gt;




&lt;p&gt;&lt;em&gt;I'm a Senior Software Engineer working on AI integration across the SDLC — multi-agent orchestrators, Claude Code adoption, and the kind of tooling that lets agents do the work I used to do by hand. If this was useful, follow for more.&lt;/em&gt;&lt;/p&gt;

</description>
      <category>claude</category>
      <category>ai</category>
      <category>opensource</category>
      <category>agents</category>
    </item>
  </channel>
</rss>
