Code Generation
Generate production code from Aexol specifications using AI.
Pipeline
Target Languages
Via Remote MCP
curl -X POST "https://api.aexol.ai/mcp" \
-H "Authorization: Bearer sk-aexol-team-..." \
-d '{
"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": {
"name": "remote_start_inference",
"arguments": {
"aexolContent": "type User { id: string, name: string }",
"model": "claude-sonnet-4-5",
"projectId": "proj_...",
"commands": [
{ "type": "GRAPHQL", "name": "graphql", "output": "generated/schema.graphql" },
{ "type": "FRONTEND", "name": "frontend", "output": "frontend.json" },
{ "type": "E2E", "name": "e2e", "output": "tests/e2e/" },
{ "type": "BACKEND", "name": "backend", "output": "src/" }
]
}
}
}'Check status:
curl -X POST "https://api.aexol.ai/mcp" \
-H "Authorization: Bearer sk-aexol-team-..." \
-d '{
"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": {
"name": "remote_get_inference_task",
"arguments": { "taskId": "task_..." }
}
}'Wait for completion:
curl -X POST "https://api.aexol.ai/mcp" \
-H "Authorization: Bearer sk-aexol-team-..." \
-d '{
"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": {
"name": "remote_wait_task",
"arguments": { "taskId": "task_...", "taskType": "inference" }
}
}'TypeScript Example
Input (Aexol):
type User { id: string, name: string, email: string, role: UserRole }
enum UserRole { admin, editor, viewer }
Output (TypeScript):
export interface User {
id: string; name: string; email: string; role: UserRole;
}
export enum UserRole { Admin = "admin", Editor = "editor", Viewer = "viewer" }
Batch Generation
Generate multiple artifacts from one spec using commands. Each command
requires a type (one of GRAPHQL, FRONTEND, E2E, or BACKEND), a
name, and an output. Optional per-command fields are options (an object)
and guidance (a string). Optional top-level fields are projectId,
outputDir, continueOnError, and maxConcurrency.
curl -X POST "https://api.aexol.ai/mcp" \
-H "Authorization: Bearer sk-aexol-team-..." \
-d '{
"jsonrpc": "2.0", "id": 1, "method": "tools/call",
"params": {
"name": "remote_start_inference",
"arguments": {
"aexolContent": "type User { id: string, name: string }",
"model": "claude-sonnet-4-5",
"outputDir": "generated",
"continueOnError": true,
"maxConcurrency": 2,
"commands": [
{
"type": "GRAPHQL",
"name": "schema",
"output": "generated/schema.graphql",
"options": { "federated": true }
},
{
"type": "FRONTEND",
"name": "routes-and-components",
"output": "frontend.json",
"guidance": "Use the project's existing component conventions."
},
{
"type": "E2E",
"name": "end-to-end-tests",
"output": "tests/e2e/",
"options": { "format": "playwright" }
},
{
"type": "BACKEND",
"name": "server",
"output": "src/",
"options": { "framework": "hono", "format": "typescript" }
}
]
}
}
}'In the Studio UI, inference is triggered by the Generate All button with
the same fixed, read-only artifact set: GRAPHQL, FRONTEND, E2E, and
BACKEND. You select a model, review the list, and start the whole batch with
one click.
Knowledge Base Integration
When your project has Knowledge Base documents, the AI retrieves relevant chunks and includes them in the generation prompt — generated code follows your team's conventions automatically.
Task History
All generation tasks are logged at /studio/tasks and via remote_list_inference_tasks. Re-run any previous task with updated specs.
Next Steps
- Refinement — Improve generated code iteratively
- Artifacts — Manage generated output
- Knowledge Base — Context for generation