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
Shell completion
climate completion install --shell zsh
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
Generated CLIs also include spec-aware event commands:
<cli> events list
<cli> config profiles create work
<cli> config profiles use work
<cli> auth login
<cli> config set --secret events.signing_secret supersecret
<cli> events listen payment-succeeded --port 8081 --tunnel auto --signature-mode hmac
<cli> events emit payment-succeeded --target-url http://localhost:8081/webhooks/payment-succeeded --signature-mode hmac
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. Use env vars or the generated auth login and local config commands.
Webhook listener
List, receive, and emit named callbacks/webhooks, with cloudflared exposure, local profiles, and configurable HMAC signatures.
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
completion
Print shell completions or install/uninstall them locally
list
Show registered CLIs
remove
Interactively delete a generated CLI
uninstall
Remove the climate CLI itself, optionally with full cleanup
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