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

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

Machine-readable docs

index.md

Markdown companion

llms.txt

LLM index