Any API becomes a tool. Instantly.
climate turns any OpenAPI spec into a compiled CLI and an agent skill. Give it to a human or an AI agent — either can now talk to that API. One spec, one command, unlimited new tools.
climate generate --name petstore https://petstore3.swagger.io/api/v3/openapi.json
petstore pet get --pet-id 1
Install
Homebrew
brew tap disk0Dancer/tap && brew install climate
Go
go install github.com/disk0Dancer/climate/cmd/climate@latest
Binary
curl -L https://github.com/disk0Dancer/climate/releases/latest/download/climate-darwin-arm64.tar.gz | tar xz
sudo mv climate-darwin-arm64 /usr/local/bin/climate
How it works
Every generated CLI has the same shape:
<cli> <group> <operation> [flags] --output=json|table|raw
Groups & operations
OpenAPI tags become groups. Each operation becomes a subcommand.
Flags
Path params are required flags. Query and header params are optional.
Request body
--data-json for inline JSON, --data-file for files.
Auth
API key, bearer, basic, and OAuth2 client credentials. Set via env vars.
Demo
disk0Dancer/github — a CLI with 1 100+ endpoints generated from the GitHub REST API spec.
# generate
climate generate --name github https://raw.githubusercontent.com/github/rest-api-description/main/descriptions/api.github.com/api.github.com.json
# use
github repos repos-list-for-user --username octocat --per-page 5
github users users-get-by-username --username octocat
# publish
climate publish github --owner disk0Dancer
Commands
generate
Create CLI from OpenAPI spec
list
Show registered CLIs
remove
Delete a generated CLI
upgrade
Regenerate from updated spec
publish
Push CLI to GitHub with CI/release
skill generate
Emit agent skill prompt for a CLI
Agent skills
An agent with climate can build its own tools. Point it at any OpenAPI spec — it generates a CLI, creates a skill, and can immediately use the new API. No human in the loop required.
# agent generates a tool for itself
climate generate --name stripe https://raw.githubusercontent.com/.../openapi.json
climate skill generate stripe --mode=compact
# or install climate as a skill so the agent can do this autonomously
npx skills add https://github.com/disk0Dancer/climate --skill climate-generator