chatgpt-api/packages/openapi-to-ts
Travis Fischer 3dc762aeb4 chore: release v7.6.0 2025-03-24 23:11:48 +08:00
..
bin feat: improve openapi-to-ts cli and docs 2025-03-24 22:39:15 +08:00
fixtures 2025-03-23 16:54:09 +08:00
src feat: improve openapi-to-ts cli and docs 2025-03-24 22:39:15 +08:00
package.json chore: release v7.6.0 2025-03-24 23:11:48 +08:00
readme.md feat: improve openapi-to-ts cli and docs 2025-03-24 22:39:15 +08:00
tsconfig.json
tsup.config.ts feat: improve openapi-to-ts cli and docs 2025-03-24 22:39:15 +08:00

readme.md

Agentic

Generate an Agentic TypeScript client from an OpenAPI spec.

Build Status NPM MIT License Prettier Code Formatting

Agentic

See the github repo or docs for more info.

Example Usage

# local development
tsx bin/openapi-to-ts.ts fixtures/openapi/3.0/notion.json -o fixtures/generated

# published version
npx @agentic/openapi-to-ts fixtures/openapi/3.0/notion.json -o fixtures/generated

# npm install -g version
npm install -g @agentic/openapi-to-ts
openapi-to-ts fixtures/openapi/3.0/notion.json -o fixtures/generated

Most OpenAPI specs should be supported, but I've made no attempt to maximize robustness. This tool is meant to generate Agentic TS clients which are 99% of the way there, but some tweaking may be necessary post-generation.

Some things you may want to tweak:

  • simplifying the zod parameters accepted by @aiFunction input schemas since LLMs tend to do better with a few, key parameters
  • removing unused API endpoints & associated types that you don't want to expose to LLMs

TODO

  • convert openapi parsing & utils to https://github.com/readmeio/oas
  • support filters
    • // match only the schema named foo and GET operation for the /api/v1/foo path
    • include: '^(#/components/schemas/foo|#/paths/api/v1/foo/get)$',
  • Convert HTML in descriptions to markdown
  • Properly format multiline function comments
  • Debug stripe schema issue

License

MIT © Travis Fischer