Home

Awesome

<div align="center"> <a href="https://www.speakeasy.com/" target="_blank"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/21dd5d3a-aefc-4cd3-abee-5e17ef1d4dad"> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/0a747f98-d228-462d-9964-fd87bf93adc5"> <img width="100px" src="https://github.com/user-attachments/assets/21dd5d3a-aefc-4cd3-abee-5e17ef1d4dad#gh-light-mode-only" alt="Speakeasy"> </picture> </a> <h1>Speakeasy</h1> <p>Build APIs your users love ❤️ with Speakeasy</p> <div> <a href="https://speakeasy.com/docs/create-client-sdks/" target="_blank"><b>Docs Quickstart</b></a>&nbsp;&nbsp;//&nbsp;&nbsp;<a href="https://join.slack.com/t/speakeasy-dev/shared_invite/zt-1cwb3flxz-lS5SyZxAsF_3NOq5xc8Cjw" target="_blank"><b>Join us on Slack</b></a> </div> <br /> </div> <hr /> <div align="left"> <h4><b>Trusted By:</b></h4> <h4> <p> <a href="https://github.com/vercel/sdk" target="_blank" margin-right="20px"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/a6feb0ff-6cb4-406f-9797-246dcbd7ae01"> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/e5096709-2a50-4010-a719-d5f4c84a7279"> <img width="200px" src="https://github.com/user-attachments/assets/a6feb0ff-6cb4-406f-9797-246dcbd7ae01#gh-light-mode-only" alt="Vercel"> </picture> </a> <picture> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/a7e32045-a53a-433a-908f-1f5338b17758"> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/c160c3e7-22f8-4523-9e25-0df1802fd6fe"> <img height="80" src="https://github.com/user-attachments/assets/a7e32045-a53a-433a-908f-1f5338b17758#gh-light-mode-only" alt="Line"> </picture> <a href="https://github.com/mistralai/client-python" target="_blank"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/2f7d466c-864e-4a42-aa7e-e9c251dec211"> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/29bd2611-92f4-44fe-91d5-78e6781ca6c2"> <img width="200px" src="https://github.com/user-attachments/assets/2f7d466c-864e-4a42-aa7e-e9c251dec211#gh-light-mode-only" alt="Mistral"> </picture> </a> <picture> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/a7e32045-a53a-433a-908f-1f5338b17758"> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/c160c3e7-22f8-4523-9e25-0df1802fd6fe"> <img height="80" src="https://github.com/user-attachments/assets/a7e32045-a53a-433a-908f-1f5338b17758#gh-light-mode-only" alt="Line"> </picture> <a href="https://github.com/clerk/clerk-sdk-python" target="_blank"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/b0351caf-bc9a-4f25-8eac-4e8f8bf0e078"> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/2b0631bf-f2d0-436b-b008-fcabbb134d50"> <img width="200px" src="https://github.com/user-attachments/assets/b0351caf-bc9a-4f25-8eac-4e8f8bf0e078#gh-light-mode-only" alt="Clerk"> </picture> </a> <picture> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/a7e32045-a53a-433a-908f-1f5338b17758"> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/c160c3e7-22f8-4523-9e25-0df1802fd6fe"> <img height="80" src="https://github.com/user-attachments/assets/a7e32045-a53a-433a-908f-1f5338b17758#gh-light-mode-only" alt="Line![fireworks-git](https://github.com/user-attachments/assets/26e80c87-c53c-4531-a607-cc78646bfdd7) "> </picture> <a href="https://fireworks.ai/" target="_blank"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/eb4327bc-91fc-4195-b68f-399712d4a24d"> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/abb4c770-ab92-4595-81b0-a4736fb14b72"> <img width="200px" src="https://github.com/user-attachments/assets/eb4327bc-91fc-4195-b68f-399712d4a24d#gh-light-mode-only" alt="Fireworks"> </picture> </a> </p> <a href="https://speakeasy.com/customers"><p> Full showcase → </p></a> </h4> </div>

Generate Polished and Type-Safe Client Libraries

<p>Use Speakeasy to generate idiomatic, type-safe SDKs your users will love. 9 Languages and counting.</p> <a href="https://app.speakeasy.com/"><img src="https://custom-icon-badges.demolab.com/badge/-Start%20Generating%20-212015?style=for-the-badge&logoColor=FBE331&logo=speakeasy&labelColor=545454" alt="Start Generating"/></a> <a href="https://youtu.be/-cSZGUvT5-8?si=VwJBPcOGq0g2R4cI"><img src="https://img.shields.io/static/v1?label=Docs&message=Watch Demo&color=000&style=for-the-badge" alt="Watch Demo" /></a> <div align="left"> <h1> <p> <a href="https://www.speakeasy.com/docs/sdk-design/typescript/methodology-ts" target="_blank" margin-right="20px"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/6c36bce3-34cf-4b68-b6e9-bd1522dfc8bf"> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/6c36bce3-34cf-4b68-b6e9-bd1522dfc8bf"> <img width="100px" src="https://github.com/user-attachments/assets/6c36bce3-34cf-4b68-b6e9-bd1522dfc8bf#gh-light-mode-only" alt="Scalar API Reference"> </picture> </a> <picture> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/a7e32045-a53a-433a-908f-1f5338b17758"> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/c160c3e7-22f8-4523-9e25-0df1802fd6fe"> <img height="80" src="https://github.com/user-attachments/assets/a7e32045-a53a-433a-908f-1f5338b17758#gh-light-mode-only" alt="Scalar API Reference"> </picture> <a href="https://www.speakeasy.com/docs/sdk-design/python/methodology-python" target="_blank"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/34a57c5b-e81d-4238-a1a4-2f1289630599"> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/34a57c5b-e81d-4238-a1a4-2f1289630599"> <img width="100px" src="https://github.com/user-attachments/assets/34a57c5b-e81d-4238-a1a4-2f1289630599#gh-light-mode-only" alt="Python"> </picture> </a> <picture> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/a7e32045-a53a-433a-908f-1f5338b17758"> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/c160c3e7-22f8-4523-9e25-0df1802fd6fe"> <img height="80" src="https://github.com/user-attachments/assets/a7e32045-a53a-433a-908f-1f5338b17758#gh-light-mode-only" alt="Scalar API Reference"> </picture> <a href="https://www.speakeasy.com/docs/sdk-design/golang/methodology-go" target="_blank"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/7be9379e-d3ae-44f7-afd0-a9fee526d402"> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/7be9379e-d3ae-44f7-afd0-a9fee526d402"> <img width="100px" src="https://github.com/user-attachments/assets/7be9379e-d3ae-44f7-afd0-a9fee526d402#gh-light-mode-only" alt="Golang"> </picture> </a> <picture> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/a7e32045-a53a-433a-908f-1f5338b17758"> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/c160c3e7-22f8-4523-9e25-0df1802fd6fe"> <img height="80" src="https://github.com/user-attachments/assets/a7e32045-a53a-433a-908f-1f5338b17758#gh-light-mode-only" alt="Scalar API Reference"> </picture> <a href="https://www.speakeasy.com/docs/create-terraform" target="_blank"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/7899cbd5-13c0-445e-b4ca-429fd2259477"> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/7899cbd5-13c0-445e-b4ca-429fd2259477"> <img width="100px" src="https://github.com/user-attachments/assets/7899cbd5-13c0-445e-b4ca-429fd2259477#gh-light-mode-only" alt="Terraform"> </picture> </a> </p> <p> <a href="https://www.speakeasy.com/docs/sdk-design/java/methodology-java" target="_blank" margin-right="20px"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/9cc5a8d8-ce16-487d-9033-db4b364323cb"> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/9cc5a8d8-ce16-487d-9033-db4b364323cb"> <img width="100px" src="https://github.com/user-attachments/assets/9cc5a8d8-ce16-487d-9033-db4b364323cb#gh-light-mode-only" alt="Java"> </picture> </a> <picture> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/a7e32045-a53a-433a-908f-1f5338b17758"> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/c160c3e7-22f8-4523-9e25-0df1802fd6fe"> <img height="100px" src="https://github.com/user-attachments/assets/a7e32045-a53a-433a-908f-1f5338b17758#gh-light-mode-only" alt="Line"> </picture> <a href="https://www.speakeasy.com/docs/sdk-design/csharp/methodology-csharp" target="_blank"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/1f5c4a9c-f841-4c56-8d3c-bcb43ac4eef7"> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/1f5c4a9c-f841-4c56-8d3c-bcb43ac4eef7"> <img width="100px" src="https://github.com/user-attachments/assets/1f5c4a9c-f841-4c56-8d3c-bcb43ac4eef7#gh-light-mode-only" alt="Csharp"> </picture> </a> <picture> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/a7e32045-a53a-433a-908f-1f5338b17758"> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/c160c3e7-22f8-4523-9e25-0df1802fd6fe"> <img height="100px" src="https://github.com/user-attachments/assets/a7e32045-a53a-433a-908f-1f5338b17758#gh-light-mode-only" alt="Line"> </picture> <a href="https://www.speakeasy.com/docs/sdk-design/php/methodology-php" target="_blank"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/15f6a6c7-eb71-466c-bbaa-d7a974a25b5c"> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/15f6a6c7-eb71-466c-bbaa-d7a974a25b5c"> <img width="100px" src="https://github.com/user-attachments/assets/15f6a6c7-eb71-466c-bbaa-d7a974a25b5c#gh-light-mode-only" alt="PHP"> </picture> </a> <picture> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/a7e32045-a53a-433a-908f-1f5338b17758"> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/c160c3e7-22f8-4523-9e25-0df1802fd6fe"> <img height="100px" src="https://github.com/user-attachments/assets/a7e32045-a53a-433a-908f-1f5338b17758#gh-light-mode-only" alt="Line"> </picture> <a href="https://www.speakeasy.com/docs/sdk-design/ruby/methodology-ruby" target="_blank"> <picture> <source media="(prefers-color-scheme: light)" srcset="https://github.com/user-attachments/assets/c01f4d21-c05a-4d77-a65a-c7f4e72b1993"> <source media="(prefers-color-scheme: dark)" srcset="https://github.com/user-attachments/assets/c01f4d21-c05a-4d77-a65a-c7f4e72b1993"> <img width="100px" src="https://github.com/user-attachments/assets/c01f4d21-c05a-4d77-a65a-c7f4e72b1993#gh-light-mode-only" alt="Ruby"> </picture> </a> </p> </h1> </div> <h2> <p>How it works</p> <picture> <img src="https://github.com/user-attachments/assets/50a87bdc-5109-46a9-a1b5-082a2b26435e" alt="Speakeasy Workflow"> </picture> </a> </h2>

Features

Check out the roadmap for whats coming up soon!

CLI installation

Homebrew (macOS and Linux)

brew install speakeasy-api/homebrew-tap/speakeasy

Script (macOS and Linux)

curl -fsSL https://raw.githubusercontent.com/speakeasy-api/speakeasy/main/install.sh | sh

winget (Windows)

winget install speakeasy

Chocolatey (Windows)

choco install speakeasy

Manual installation

Download the latest release for your platform from the releases page, extract, and add the binary to your path.

Keeping up to date

The CLI will warn you if you're running an outdated version. To update the CLI run:

speakeasy update

Common CLI commands

CommandDescription
authLog in & out of your organization's workspace.
quickstartCreate an idiomatic client SDK or target, such as a Terraform Provider, from your API specs.
runRegenerate existing SDK/target from your API specs.
lintValidate the correctness of your API specs. speakeasy run also includes a validation step before generation.
suggestUse an LLM to autocorrect your spec validation failures.
mergeWork with your existing documentation workflows by merging your API specs into a single spec.
statusReview all SDK/targets in current workspace.

Community

We love chatting about OpenAPI and API Design. Come chat with us on slack.