c climate

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

Machine-readable docs

index.md

Markdown companion

llms.txt

LLM index