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:
| Setting | What it controls |
|---|---|
| Name | The display name in the sidebar |
| Title | The heading shown when the tool is open (can include field values like Order #{{$.reference}}) |
| Help text | Description shown below the title |
| Icon | Visual 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:
| Option | What it does |
|---|---|
| Display name | Changes the label shown to users |
| Help text | Adds explanatory text below the input |
| Placeholder | Shows hint text inside empty inputs |
| Visible | Hides the field from the form |
| Locked | Makes the field read-only |
| Default value | Pre-fills the field with a value |
| Display order | Changes where the field appears |
Response fields
For get and list tools, configure how data displays:
| Option | What it does |
|---|---|
| Display name | Changes the column header or field label |
| Help text | Adds explanatory text |
| Visible | Hides the field from view |
| Image preview | Shows file fields as inline images |
| Display order | Changes where the field appears |
Organising fields into sections
Group related fields together by creating sections. In the tool configuration panel:
- Click Add section
- Give it a title (e.g., "Shipping Details")
- 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.
| Layout | Best for |
|---|---|
| Table | Scanning many records with sortable columns |
| Inbox | Working through items one at a time with a detail panel |
| Kanban | Managing workflow stages with drag-and-drop |
| Gallery | Visual 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:
- Selecting the parent get tool
- Clicking Add embedded tool
- Selecting which list tool to embed
- 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 formattingThe 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.