Studio

DocsStudioCode Generation

Generate production code from Aexol specs. Target TypeScript, Python, Rust, Go, and JavaScript via Studio or Remote MCP.

Code Generation

Generate production code from Aexol specifications using AI.

Pipeline

Specification
Your .aexol file
Parse to AST
Syntax tree
AI Generation
Model + KB context
Output Code
TS, Python, Rust, Go, JS

Target Languages

.tsTypeScript
.pyPython
.rsRust
.goGo
.jsJavaScript

Via Remote MCP

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:

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_get_inference_task",
      "arguments": { "taskId": "task_..." }
    }
  }'

Wait for completion:

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_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.

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",
  "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