Tools

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 typeWhat you get
getA single-record view showing all its fields
listA paginated table with filtering and sorting
createA form to create new records
updateA form pre-filled with the record's current values
deleteA 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, and quantity
  • 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:

  1. Open a tool in the Console
  2. Click the menu in the top-right corner
  3. 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

FeatureDescriptionLearn more
Display namesLabels, help text, placeholdersConfiguration
Field visibilityShow, hide, or conditionally display fieldsConfiguration
Input optionsDefaults, lookups, locked fieldsInput Fields
Response displayColumn order, links, image previewsResponse Fields
Field formattingCurrencies, percentages, colour badgesField Formatting
Display layoutsTable, inbox, kanban, galleryDisplay Layouts
Tool linkingNavigation between related toolsTool Linking
Embedded toolsShow related records inlineEmbedded 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.