> ## Documentation Index
> Fetch the complete documentation index at: https://docs.kylon.io/llms.txt
> Use this file to discover all available pages before exploring further.

# field

> List, create, update, and reorder table fields.

```text theme={null}
kylon workspace field — kylon workspace help detail

field — custom field definitions on a non-upgraded legacy Table
  Runtime scope: add --scope-room <room_id> when this table is in
    another room you can access.
  Every row has built-in system fields: createdAt, updatedAt, createdBy. These are managed automatically
  and can be displayed as table columns via view config. Do NOT create custom fields that duplicate system
  fields (e.g. do not create a "created_at" or "creation_date" custom field).
  kylon workspace field list --table <table_id_or_title>
  kylon workspace field create --table <table_id_or_title> --key <key> --label <label> --type <field_type> [--config <json>] [--required]
    --type: text, number, date, select, multi_select, checkbox, user, multi_user, url, email, attachment
      user/multi_user: for fields referencing workspace members (assignee, reviewer, etc.). Stored as user IDs, rendered with avatar + name. Use instead of text for people.
      attachment: for files, images, screenshots, and documents shared in the room. Stored as array of file IDs. Use "file list" to discover IDs. Images render as thumbnails in the table cell.
    --config for select/multi_select: --config '{"options":[{"id":"opt_1","label":"Open","color":"blue"},{"id":"opt_2","label":"Closed","color":"rose"}]}'
    Available option colors: blue, purple, green, amber, rose, cyan, indigo, orange, teal, pink, emerald
    --config for date: --config '{"includeTime":false,"dateFormat":"YYYY-MM-DD"}'
      includeTime (optional, default false): whether to display the time component. When false (the default), only the date part is shown.
      dateFormat (optional, default "MM/DD/YYYY" when includeTime is false, "MM/DD/YYYY, h:mm A" when true): display format preset.
      Available dateFormat presets: "MM/DD/YYYY", "DD/MM/YYYY", "YYYY-MM-DD", "MMM D, YYYY", "MM/DD/YYYY, h:mm A", "YYYY-MM-DD HH:mm"
  kylon workspace field update --table <table_id_or_title> --field <field_id> [--label <label>] [--type <field_type>] [--config <json>] [--required <bool>]
  kylon workspace field delete --table <table_id_or_title> --field <field_id>
  kylon workspace field reorder --table <table_id_or_title> --ids <comma_separated_field_ids>
  kylon workspace field add-option --table <table_id_or_title> --field <field_id> --label <label> [--id <option_id>] [--color <color>]
  kylon workspace field remove-option --table <table_id_or_title> --field <field_id> --option <option_id>
    add-option/remove-option grow or shrink a select/multi_select field's options without resending the full --config blob. add-option auto-generates an option id like "opt_<hex>" unless --id is passed, and rejects a label that already exists on the field (naming the existing matching option id so you can reuse it). remove-option refuses to remove an option that is still referenced by any row and names up to 10 offending row ids so you can fix those rows first. "field list" prints the current option set for every select/multi_select field — check it before you create a new option or before you pass an option id in a row update.

--- Filter/Sort JSON reference (used by row list, view create, view update) ---
  --filters '[{"fieldId":"<field_key>","operator":"<op>","value":"<val>"}]'
  --sorts   '[{"fieldId":"<field_key>","direction":"asc|desc"}]'
  Operators: eq, neq, contains, gt, gte, lt, lte, isEmpty, isNotEmpty
  Use field key (e.g. "status", "created_date") as fieldId.

  Dynamic values — prefer these over hardcoded literals when the intent is
  relative (e.g. "my tasks", "overdue", "recent"). They resolve at query time,
  so saved views stay correct as time passes and across different users.
    "$current_member" → viewing user's ID (use with user/multi_user fields)
    "$start_of_today"      → 00:00 UTC today
    "$start_of_tomorrow"   → 00:00 UTC tomorrow
    "$start_of_yesterday"  → 00:00 UTC yesterday
    "$start_of_7_days_ago" → 00:00 UTC 7 days ago
    "$start_of_30_days_ago"→ 00:00 UTC 30 days ago
  Common patterns:
    Due today:        gte $start_of_today + lt $start_of_tomorrow
    Overdue:          lt  $start_of_today
    Last 7 days:      gte $start_of_7_days_ago
    Last 30 days:     gte $start_of_30_days_ago
    Assigned to me:   eq  $current_member  (user field)
    Involves me:      contains $current_member  (multi_user field)

Note: quote flag values that contain spaces; follow each command's JSON syntax.
```
