CLI
stx generate
Generate API reference documentation from OpenAPI specifications or source code with @stx annotations.
Usage
stx generate [source] [options]
Options
| Flag | Alias | Type | Default | Description |
|---|---|---|---|---|
--input |
-i |
string | openapi.json |
Input file path or URL |
--output |
-o |
string | docs/api-reference |
Output directory |
--format |
-f |
string | mdx |
Output format: mdx, json |
--overwrite |
boolean | false |
Overwrite existing files | |
--watch |
-w |
boolean | false |
Watch for changes |
Sources
OpenAPI Specification
Generate docs from an OpenAPI 3.x spec:
stx generate --input openapi.json
Supports local files or URLs:
stx generate --input https://api.example.com/openapi.json
Source Code Annotations
Generate docs from @stx annotations in your code:
stx generate --input src/
Scans for annotated functions and generates API documentation.
Examples
From Local OpenAPI File
stx generate --input ./api/openapi.yaml --output docs/api-reference
From Remote Spec
stx generate --input https://petstore.swagger.io/v2/swagger.json
Watch Mode
Re-generate when the spec changes:
stx generate --input openapi.json --watch
Multiple Specs (Microservices)
stx generate --input services/users/openapi.json --output docs/api/users
stx generate --input services/orders/openapi.json --output docs/api/orders
Generated Output
File Structure
docs/api-reference/
├── overview.mdx
├── authentication.mdx
├── users/
│ ├── create-user.mdx
│ ├── get-user.mdx
│ ├── update-user.mdx
│ └── delete-user.mdx
└── orders/
├── create-order.mdx
└── list-orders.mdx
Generated Page Example
---
title: Create User
protocol: rest
method: POST
endpoint: /v1/users
description: Create a new user account
---
# Create User
Create a new user account with the provided details.
<Endpoint method="POST" path="/v1/users" />
## Request Body
<ParamField name="email" type="string" required>
User's email address. Must be unique.
</ParamField>
<ParamField name="name" type="string" required>
User's display name.
</ParamField>
<ParamField name="role" type="string" default="member">
User role. One of: `admin`, `editor`, `member`.
</ParamField>
## Response
<ResponseField name="id" type="string">
Unique user identifier.
</ResponseField>
<ResponseField name="email" type="string">
User's email address.
</ResponseField>
## Code Examples
<CodeGroup>
\`\`\`bash title="cURL"
curl -X POST https://api.example.com/v1/users \\
-H "Authorization: Bearer $API_KEY" \\
-H "Content-Type: application/json" \\
-d '{"email": "alice@example.com", "name": "Alice"}'
\`\`\`
\`\`\`typescript title="TypeScript"
const user = await client.users.create({
email: "alice@example.com",
name: "Alice"
})
\`\`\`
</CodeGroup>
Source Code Annotations
@stx Annotation Syntax
Add @stx directives in your doc comments:
/**
* @stx group "Users"
* @stx title "Create User"
* @stx description "Create a new user account"
*/
export async function createUser(data: CreateUserInput): Promise<User> {
// ...
}
Supported Languages
| Language | Comment Style | Example |
|---|---|---|
| TypeScript/JavaScript | /** ... */ |
@stx title "..." |
| Python | """...""" |
@stx title "..." |
| Go | // ... |
// @stx title "..." |
| Rust | /// ... |
/// @stx title "..." |
| Java/Kotlin | /** ... */ |
@stx title "..." |
Available Directives
| Directive | Description |
|---|---|
@stx group "Name" |
Group/section name |
@stx title "Name" |
Page title |
@stx description "..." |
Short description |
@stx param name {type} desc |
Parameter documentation |
@stx returns {type} desc |
Return value documentation |
@stx example |
Code example (until next directive) |
@stx internal |
Exclude from public docs |
When @stx annotations are present, they take precedence over conventional doc comments (JSDoc, docstrings, etc.).
GraphQL Support
Generate docs from a GraphQL schema:
stx generate --input schema.graphql --output docs/graphql
Generates pages for:
- Types and interfaces
- Queries and mutations
- Subscriptions
- Enums and scalars
gRPC/Protobuf Support
Generate docs from .proto files:
stx generate --input proto/ --output docs/grpc
Generates pages for:
- Services and methods
- Message types
- Enums
Was this page helpful?