Tools
Tools are the admin screens Keel generates from your schema actions. Define the actions you want (list, get, create, etc.) and the Console gives you something you can use straight away.
A list action shows up as a table you can sort and filter. A create action becomes a form with validation. A get action becomes a detail view, with links to related records.
Tool types
Action tools
Action tools come from the actions you define in your schema. Each action type creates a different UI:
| Action type | What you get |
|---|---|
get | A single-record view showing all its fields |
list | A paginated table with filtering and sorting |
create | A form to create new records |
update | A form pre-filled with the record's current values |
delete | A confirmation step before deleting |
For example, this schema:
model StockItem {
fields {
sku Text @unique
name Text
quantity Number
}
actions {
get getStockItem(id)
list listStockItems(sku?, name?)
create createStockItem() with (sku, name, quantity)
update updateStockItem(id) with (name?, quantity?)
delete deleteStockItem(id)
}
}Generates five tools:
- Get stock item - A record view showing all fields for a single item
- List stock items - A table with search and filter controls
- Create stock item - A form with inputs for
sku,name, andquantity - Update stock item - A form to modify an existing item
- Delete stock item - A confirmation dialog that removes the record
Flow tools
Flow tools come from your schema flows. They guide users through a multi-step process.
flow ProcessReturn {
inputs {
orderId ID
}
@permission(roles: [WarehouseStaff])
}This creates a flow tool that walks a user through the return process and collects input along the way.
How tools are generated
Tools show up in the Console when you save your schema. If you change an action (inputs, outputs, names), the tool updates to match.
Customising tools
If you want nicer labels, a better field order, or a different layout, use the configuration sidebar:
- Open a tool in the Console
- Click the ⋮ menu in the top-right corner
- Select Configure tool
From there you can:
- Rename fields - Change labels and add help text
- Reorder fields - Drag to rearrange, or set an explicit display order
- Hide fields - Keep internal data out of the UI
- Add sections - Group related fields together
- Configure lookups - Control how relationship selection works
- Set defaults - Pre-fill values in forms
- Add actions - Configure toolbar buttons and links
- Change layouts - Switch between table, inbox, kanban, or gallery views
Changes save automatically and sync to your project as JSON configuration files.
What can be configured
| Feature | Description | Learn more |
|---|---|---|
| Display names | Labels, help text, placeholders | Configuration |
| Field visibility | Show, hide, or conditionally display fields | Configuration |
| Input options | Defaults, lookups, locked fields | Input Fields |
| Response display | Column order, links, image previews | Response Fields |
| Field formatting | Currencies, percentages, colour badges | Field Formatting |
| Display layouts | Table, inbox, kanban, gallery | Display Layouts |
| Tool linking | Navigation between related tools | Tool Linking |
| Embedded tools | Show related records inline | Embedded Tools |
JSON configuration
Tool configuration is stored as JSON files in your project's tools/ directory, so you can keep it in version control and move it between environments. For the full schema, see the JSON Configuration Reference.