Loading AgentsKit ecosystem navigation…
AgentsKit Chat
Components

Table

Captioned columns and rows of scalar cells. Component key `table`.

View canonical Markdown

Table

table is display-only: a caption, 1–30 columns, and up to 1000 rows of scalar cells (string, number, boolean, null).

Live preview

Table
Captioned columns and rows of scalar cells.
table
Users
Name
Ada

Demos use docs host CSS. Package primitives are intentionally unstyled so your product theme owns the look.

When to use

  • Compare options, list records, show structured tool results
  • When markdown tables are too fragile for shells

Prefer something else when

  • Interactive selection of a row → use choice-list with rows as choices
  • Large free-form documents → markdown message content

Props (schema)

FieldTypeNotes
captionstringTable caption
columns1–30 itemsEach has unique key + label
rows≤1000 recordsMaps column key → scalar cell

Frame example

code
{
  "protocol": "agentskit.chat.component",
  "version": 1,
  "type": "render",
  "componentKey": "table",
  "instanceId": "table-fixture",
  "props": {
    "caption": "Users",
    "columns": [
      { "key": "name", "label": "Name" },
      { "key": "role", "label": "Role" }
    ],
    "rows": [
      { "name": "Ada", "role": "Engineer" },
      { "name": "Grace", "role": "Operator" }
    ]
  },
  "fallback": {
    "kind": "table",
    "summary": "Users table with two rows."
  }
}

Events

No events. This key is display-only — do not invent host callbacks.

Host wiring

Display-only — register the component so the frame resolves; no interact handler is required.

code
import { TableComponent, defineComponentManifest, defineChat } from '@agentskit/chat'

const definition = defineChat({
  id: 'app',
  components: defineComponentManifest([TableComponent]),
  chat: { adapter },
})

For agents

FieldValue
componentKeytable
ExportTableComponent
Protocolagentskit.chat.component v1
Envelopetype: "render" + instanceId + props + fallback
Eventsnone (display-only)
Host callbacknone — display only
InteractionDo not emit user events for this key
FallbackAlways include fallback.kind + fallback.summary

Do not invent props or events outside the schema. Unknown keys and invalid props stay inert.

Shells

ShellNotes
React / Vue / Svelte / Solid / AngularSame frame; replaceable slots
React NativeAccessibility roles from the catalog definition
InkTerminal-safe fallback when interactive chrome is limited