When you generate an App Tools extension using the CLI, the CLI adds the following file to your project:
<your-extension-name>.extension.ts: The App Tools builder, which declares the tools your app exposes to Aria.The CLI creates the file in the following default folder structure:
You can move the file anywhere inside the src/ folder as long as you update its path in src/extensions.ts.
The <your-extension-name>.extension.ts file declares the tools your app exposes to Aria. After you build and release, Aria uses these declarations to discover what tools exist and decide when to call them. This file shouldn't contain any business logic.
The file uses the following schema:
Here's an example file with a single tool declaration:
| Field | Type | Required | Description |
|---|---|---|---|
id | string | Yes | Auto-generated UUID that uniquely identifies this extension. |
name | string | Yes | Internal name for this group of tools. |
tools | array | Yes | Array of tool declarations. Max: 100. |
tools[].methodName | string | Yes | Unique identifier for the tool. Used to route calls in the Tools Provider handler. Max: 30 characters. |
tools[].description | string | Yes | Description Aria uses to decide when to call the tool. 10 to 1000 characters. See effective tool descriptions for guidance. |
tools[].requestSchema | object | No | JSON Schema describing the tool's input. Helps Aria determine what information to gather before calling the tool. |
tools[].responseSchema | object | No | JSON Schema describing the tool's output. |
tools[].activated | boolean | Yes | Whether Aria can call this tool. Set to true for tools you want Aria to call. |
Note: Wix doesn't check the payload Aria sends against your requestSchema before calling your handler. Handle missing or unexpected fields in your implementation.
Last updated: 9 August 2026