Skip to main content
Where this fits: Part of Refine. Custom columns let a dataset carry fields beyond the four built-ins, so a row can hold exactly the data your tests and workflows need.
Every dataset starts with four built-in columns — Input, Output, Expected output, and Metadata. Custom columns let you add more fields of your own (for example a label, a category, or a reference id) alongside them. A newly added column is empty on every existing row; it only gets a value when you fill that cell.

Manage columns

Open a dataset and click Columns in the top bar. From the popover you can:
ActionWhat it does
AddCreate a new custom column. Use + New column, give it a name. It appears empty on every row.
RenameEdit a column’s display name (the pencil icon). Works for built-in and custom columns. Renaming never changes the data.
ReorderDrag a column by its handle to change the left-to-right order in the table.
RemoveSoft-delete a column (the trash icon). It disappears from the table, exports, and the API — but its data is kept.
Re-addRestore a removed column from the Removed columns group at the bottom of the popover. Its values come back intact.
Remove is always reversible. Removing a column — built-in or custom — hides it everywhere but preserves its data, so you can re-add it at any time and its values reappear. Built-in columns can be removed too; nothing is permanently deleted.

Editing custom values

Open any row to edit its cells. Active custom columns show their own editable fields next to the built-in ones, and the values you enter are saved with the row just like the built-ins. You can also set custom values programmatically — keyed by column identifier — over the API, the SDKs, or MCP; see Edit row contents.

How columns affect the rest of the dataset

  • Adding, renaming, removing, or reordering a column does not create a new dataset version. Only writing actual cell data does. So shaping your columns is free to iterate on.
  • CSV export honors your active columns. Exports include your custom columns (under their display name) in column order and leave out removed columns. Built-in columns keep their standard input / output / expected_output / metadata headers.
  • Removed columns are excluded from the table, row reads, the API, and exports until you re-add them.

Manage columns from your coding agent

Through the MCP server, an agent like Claude or Cursor can manage a dataset’s columns for you — list columns (including removed ones), add, rename, reorder, remove, and restore them — the same operations available in the UI.

Next step