OpenAPI toolkit for the command line

Lint, diff and generate your API from one CLI

API Genie keeps your OpenAPI schemas consistent, catches breaking changes before they ship, and generates client, server and mock code for the stack you already use.

brew install mykulyak/apigenie/apigenie
Breaking-change check
$ apigenie diff petstore.source.yaml petstore.dest.yaml
petstore.dest.yaml
1 1 breaking Metadata changed
98 7 non-breaking Added operation PUT /pets/{petId} (updatePet)
87 7 breaking Removed operation DELETE /pets/{petId} (deletePet)
25 7 breaking Modified operation GET /pets (listPets)
25 7 breaking Added operation.parameters['query:status']
...

Generates code for

  • TypeScript
  • Python
  • C#
  • Java
  • Go

Everything you need to build a modern Web API

Stop stitching together a linter, a diff tool and a handful of code generators. API Genie covers the whole workflow.

  • Keep your schemas in good shape

    The CLI lints and formats your schemas, so every file in the repository follows the same rules.

  • Detect breaking changes

    Compare two versions of a schema, see what changed, and fail the build when a change would break your clients.

  • Generate client, server and mock code

    Generate client libraries, server code, mock servers and documentation from one schema.

  • Design your API using a simple language

    Sometimes OpenAPI is too verbose to work with. For such cases, API Genie provides a simple API description language.

  • Works with your API standards

    OpenAPI 3.x, Swagger 2.0, AsyncAPI, Protobuf and GraphQL files are all supported.

  • Open source

    API Genie makes many of its tools open source, so you can extend them or adapt them to your needs.

Build better Web APIs

Install the CLI, point it at your schema, and see what it finds.

The API Genie mascot holding OpenAPI, AsyncAPI, Protobuf and GraphQL tiles