CLI for interacting with OpenAPI-based AI tools.
npm install -g @spec2tools/cliOr use directly with npx:
npx @spec2tools/cli start --spec ./openapi.yamlDefine a .env file and set the OPENAI_API_KEY environment variable:
OPENAI_API_KEY=your-api-key
# With a remote OpenAPI spec URL
npx @spec2tools/cli start --spec https://api.example.com/openapi.json
# With a local file
npx @spec2tools/cli start --spec ./openapi.yaml
# Skip authentication
npx @spec2tools/cli start --spec ./openapi.yaml --no-auth
# Provide API key directly
npx @spec2tools/cli start --spec ./openapi.yaml --api-key "your-api-key"
# Enable code mode (2 tools: search + execute)
npx @spec2tools/cli start --spec ./openapi.yaml --code-modeOnce started, you can interact with the AI agent naturally:
> What can you do?
I have access to the following tools:
- createUser: Create a new user
- getUser: Retrieve user by ID
- listUsers: List all users
> Create a user named John with email john@example.com
[Calling createUser with {"name":"John","email":"john@example.com"}]
Created user successfully: { id: "123", name: "John", email: "john@example.com" }
# List available tools
> /tools
# Call a tool directly
> /call createUser --name "John" --email "john@example.com"
# Show tool schema
> /schema createUser
# Clear conversation history
> /clear
# Show help
> /help
# Exit
> /exitThe examples/ directory contains sample OpenAPI specifications:
sample-api.yaml- Simple API without authenticationauthenticated-api.yaml- API with OAuth2 authenticationcontext7.yaml- Context7 API with OAuth2 (PKCE + dynamic client registration)
GET,POST,PUT,PATCH,DELETEoperations- Path parameters (string, number, boolean)
- Query parameters (string, number, boolean)
- Request body with simple JSON schemas (primitives, flat objects)
- Security schemes: OAuth2 (authorization code with PKCE), API Key, Bearer token
- OAuth2 Dynamic Client Registration (auto-registers client with the auth server)
- Nested objects beyond 1 level
- Arrays of objects
anyOf,oneOf,allOfschemas- File uploads
$refreferences
MIT