Configuration

Tool Configuration

Keel automatically generates tools from your schema, but you can customise how they appear and behave. Most configuration happens directly in the Console sidebar, though you can also edit JSON files for version control and bulk changes.

Configuring tools in the Console

When you select a tool in the Console sidebar, the right panel shows its configuration options. Click Edit to modify settings.

Basic settings

Every tool has these configurable properties:

SettingWhat it controls
NameThe display name in the sidebar
TitleThe heading shown when the tool is open (can include field values like Order #{{$.reference}})
Help textDescription shown below the title
IconVisual identifier in the sidebar

Capabilities

For get tools, you can enable additional features:

  • Comments — Adds a comments section where team members can discuss records
  • Audit trail — Shows a history of changes to the record

Configuring fields

Each tool displays fields from your schema. You can customise how these appear.

Input fields

For create and update tools, configure input fields by selecting the field in the sidebar:

OptionWhat it does
Display nameChanges the label shown to users
Help textAdds explanatory text below the input
PlaceholderShows hint text inside empty inputs
VisibleHides the field from the form
LockedMakes the field read-only
Default valuePre-fills the field with a value
Display orderChanges where the field appears

Response fields

For get and list tools, configure how data displays:

OptionWhat it does
Display nameChanges the column header or field label
Help textAdds explanatory text
VisibleHides the field from view
Image previewShows file fields as inline images
Display orderChanges where the field appears

Organising fields into sections

Group related fields together by creating sections. In the tool configuration panel:

  1. Click Add section
  2. Give it a title (e.g., "Shipping Details")
  3. Drag fields into the section

Sections can be conditionally shown based on field values. For example, only show a "Shipping Details" section when requiresShipping is true.

Display layouts

List tools support different layouts for different use cases. Select the layout in the tool configuration panel.

LayoutBest for
TableScanning many records with sortable columns
InboxWorking through items one at a time with a detail panel
KanbanManaging workflow stages with drag-and-drop
GalleryVisual content like products or images

See Display Layouts for configuration details.

Linking tools together

Tools connect through several types of links. Configure these in the Links section of the tool configuration panel.

Toolbar actions

Buttons that appear at the top of a record view (Edit, Delete, custom actions). Configure:

  • Which actions appear
  • Button labels
  • Whether they open as dialogs
  • Conditions for showing/hiding (e.g., only show "Ship" when status is "Processing")

Related lists

Tabs that appear above list views to switch between filtered views (e.g., "All Orders", "Pending", "Completed").

Field links

Make field values clickable to navigate to related records. For example, clicking a customer name in an order opens the customer detail view.

See Tool Linking for details.

Embedded tools

Show related data within a record view. For example, display order lines directly within an order detail view.

Configure embedded tools by:

  1. Selecting the parent get tool
  2. Clicking Add embedded tool
  3. Selecting which list tool to embed
  4. Configuring the filter to show only related records

See Embedded Tools for details.

Configuration files

All tool configuration is stored in JSON files in the tools/ directory. You can edit these directly instead of using the Console UI.

my-project/
├── schema.keel
└── tools/
    ├── get-order.json
    ├── list-orders.json
    ├── create-order.json
    └── _fields.json         # Global field formatting

The Console UI and JSON files stay in sync. Edits in either place are reflected in the other.

When to edit JSON directly

The UI handles most configuration, but JSON files are useful for:

  • Version control — Track configuration changes in Git
  • Copying between environments — Copy files from staging to production
  • Bulk edits — Change many tools at once with find-and-replace
  • Advanced options — Some options are only available in JSON

See JSON Reference for the complete schema.

Field formatting

Format how field values display across all tools. Currency formatting, status colours, and date formats are configured globally in _fields.json.

See Field Formatting for details.