Fern SDK Generator
Schema describing a Fern SDK generator configuration. Each generator emits an idiomatic SDK in a single target language and optionally publishes it to a package registry.
Agent ReadyAIAPI DefinitionsAsyncAPICode GenerationDeveloper ExperienceDeveloper PortalDocumentationgRPCllms.txtMCPOpenAPIOpenRPCPlatformProtobufSDKsWebSockets
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://raw.githubusercontent.com/api-evangelist/fern/main/json-schema/fern-sdk-generator-schema.json",
"title": "Fern SDK Generator",
"description": "Schema describing a Fern SDK generator configuration. Each generator emits an idiomatic SDK in a single target language and optionally publishes it to a package registry.",
"type": "object",
"required": ["language", "name"],
"properties": {
"name": {
"type": "string",
"description": "Generator name (e.g. fernapi/fern-typescript-sdk)."
},
"language": {
"type": "string",
"description": "Target SDK language.",
"enum": [
"typescript",
"python",
"go",
"java",
"csharp",
"php",
"ruby",
"swift",
"rust"
]
},
"version": {
"type": "string",
"description": "Generator version pin."
},
"output": {
"type": "object",
"description": "Destination for the generated SDK.",
"properties": {
"location": {
"type": "string",
"enum": ["local-file-system", "npm", "pypi", "maven-central", "nuget", "rubygems", "packagist", "crates-io", "github"]
},
"package": {"type": "string"},
"repository": {"type": "string"},
"license": {"type": "string"}
}
},
"config": {
"type": "object",
"description": "Generator-specific configuration options."
},
"publish": {
"type": "object",
"description": "Automatic publishing behavior.",
"properties": {
"onMerge": {"type": "boolean"},
"preRelease": {"type": "boolean"},
"tagFormat": {"type": "string"}
}
}
}
}