All guides

Claude skills from any API: generate a SKILL.md per tool

A Claude skill is a folder holding a SKILL.md that tells Claude Code when to use a tool and how. declick writes one for every adapter it compiles, from an OpenAPI spec, an MCP server, a GraphQL API, a Postman collection, a SQLite database or a Windows app, and puts it in every agent skills directory on the machine: Claude Code, Codex, Hermes and OpenClaw. The skill is generated from the compiled manifest, so what the agent reads cannot drift from what the command does.

version 0.6.2skills per adapter 1agents Claude Code, Codex, Hermes, OpenClaw

Written by Wes Sander, who built declick. Updated 2026-09-04. Commands and file paths on this page are the ones in the README for declick 0.6.2.

What is a Claude skill, and what is a SKILL.md?

A Claude skill is a directory under ~/.claude/skills containing a SKILL.md file, and Claude Code reads that file to decide when the skill applies and what to run. The file has a front matter block with a name and a description, and a body of instructions. Codex reads the same layout from ~/.codex/skills, Hermes from ~/.hermes/skills and OpenClaw from ~/.openclaw/skills, which is why the term agent skills covers all four. Writing one by hand per API is the same work as writing a wrapper per API: it goes stale the day the API changes.

What does declick put in a generated skill?

A generated skill contains five things, all rendered from the adapter's manifest: when to use the adapter, the output of declick describe for it, three runnable examples, the declick run <name> <verb> fallback for a shell where the launcher is not on PATH, and the exit codes that apply to that engine. It never overwrites a skill declick did not write. declick also writes its own skill beside the first adapter's, so an agent that finds one adapter knows how to build the next.

$ declick add https://petstore3.swagger.io/api/v3/openapi.json --name petstore
writes ~/.declick/petstore/manifest.json
writes ~/.declick/bin/petstore
writes ~/.claude/skills/petstore/SKILL.md   (and ~/.codex/skills, ~/.hermes/skills, ~/.openclaw/skills when present)
one add, three files, a skill in every agent directory that existsexit 0

Where do the skills land, and can I choose?

~/.claude/skills is always written. ~/.codex/skills, ~/.hermes/skills, ~/.openclaw/skills and ~/.agents/skills are written when the directory already exists. declick never creates a directory for an agent you do not have. The DECLICK_SKILLS environment variable names any other list, comma separated. declick path reports where adapters, launchers and skills live on the current machine.

How do I get the skill into an AGENTS.md or a system prompt?

declick skill <name> --print writes one adapter's SKILL.md text to stdout instead of disk, for pasting into an AGENTS.md, a CLAUDE.md or an SDK agent's system prompt. declick skill with no name regenerates every skill from its manifest without refetching the source, which is the command to run after upgrading declick. declick setup goes further for the clients it finds: Claude Code gets a rules block and a PreToolUse hook, Codex and ~/.agents get the rules block, and declick setup --revert removes all of it byte for byte.

$ declick skill petstore --print
$ declick skill
$ declick skill --dry-run
stdout for one, regenerate all, or list the paths that would be writtenexit 0

Why generate the skill instead of writing it?

Because a hand-written skill drifts and a generated one cannot. The shipped declick skill is rendered from the same command table that declick commands prints, and a test fails when the two disagree. An adapter skill is rendered from the manifest that the runtime executes, and declick lint fails a build whose describe passes 2,000 characters, so a skill never grows past what an agent can hold. Rebuild the adapter with declick build <name> and the skill follows.