Edit in dashboard
Add rows, edit Input / Expected / Metadata in the row panel, tag rows, and assign owners — all from the dataset detail page.
The dataset table is a read-only view of your test cases. Click any row to open the row panel on the right, then edit in the Fields tab. Changes apply to the live draft until you click Save.
Open a dataset
- Go to Datasets in the sidebar.
- Click a dataset name (or create one with + New dataset).
- The detail page shows the row table and toolbar.
The row panel is collapsed by default — it only opens when you click a row. Close it with the X in the panel header to return to full-width table view.
Add rows
- Click + Row in the toolbar to append an empty row at the bottom.
- If the dataset is empty, click Add first row below the table.
Edit fields
With a row selected, use the Fields tab in the row panel:
Input, Expected, Metadata
Each field has a view type dropdown and a toolbar:
| View | Editable? | Use it for |
|---|---|---|
| YAML | Yes | Human-friendly editing of structured data. |
| JSON | Yes | Precise editing; validates on blur. |
| Text | Yes | Plain string values (especially Expected). |
| HTML | Read-only | Preview HTML strings or escaped JSON. |
| Pretty | Read-only | Formatted JSON preview. |
| Tree | Read-only | Indented key/value tree view. |
Toolbar actions:
- Copy — copy the current view to clipboard.
- Word wrap — toggle line wrapping.
- Reformat — re-indent YAML or JSON.
- Download — save the field content as a file.
- Split view — editor on the left, Pretty preview on the right.
Edits save when you blur the field (click outside the editor). Validation errors appear below Input and Metadata if YAML/JSON is malformed.
Input must be an object — a JSON/YAML map of { variable: value }. In YAML or JSON view, arrays and bare scalars are rejected. In Text view, a bare string is auto-wrapped as { value: "your text" }.
Metadata must be an object (or empty) in YAML/JSON; empty becomes {}.
Expected can be any string, including JSON-serialized objects.
Tags
- Click the Tag icon in the panel action bar (or Tag in the top header when a row is selected).
- Add, remove, or pick from tags already used in the dataset.
- Tags appear as chips in the table's Tags column and can be filtered via the All dataset rows view dropdown.
Assign
- Assign — pick a team member as the row owner (shown in the Assigned column when Display is on).
Toggle Display in the toolbar to show or hide collaboration columns (Assigned, Origin).
Table toolbar
| Action | What it does |
|---|---|
| Import | Upload a file |
| + Row | Add an empty row |
| All dataset rows view | Filter by tag |
| Reset | Discard unsaved changes and reload from server |
| Save as | Create a snapshot |
| Add filter | Text search across row values |
| Display | Toggle collaboration columns |
| Download | Export CSV |
Field schemas (derived columns)
Open the derived-column UI from Field schemas in the top bar, or hover the # column header and click +.
Each derived column is computed from existing row data and shown read-only in the grid; values recalculate when source data changes. Choose a mode when creating one:
| Mode | What it does |
|---|---|
| Basic | Pick a field path to display (e.g. input.query, metadata.category, expected_output). |
| Expression | Compute from fields with a formula — LENGTH(), UPPER(), LOWER(), ` |
Examples: LENGTH(input.query), UPPER(metadata.category), input.query || " -> " || expected_output.
Row panel tabs
| Tab | Purpose |
|---|---|
| Fields | Edit Input, Expected, Metadata, tags, assignee |
| Runs | Experiment results that ran on this row |
| Views | Saved filter views (coming soon) |
Save and snapshots
- Save (top bar, appears when there are unsaved changes) — persists the draft to the server.
- Snapshots — freeze the current rows as an immutable numbered version. Pin a snapshot when running an experiment for reproducible comparisons.
Run an experiment
Click Evaluate → Run in Experiment to batch every row through a prompt and model(s). See Experiments.
Next
- Import files — bulk-load from CSV or JSON
- Ingest from SDK — push rows from code
- Curate from production — add rows from traces
- Overview — variable binding and row anatomy
Import files
Upload CSV, Excel (.xlsx/.xls), JSON, or JSONL (.jsonl/.ndjson) into a dataset. Trodo previews the file, lets you map each column to input variables, Expected output, Metadata, or Tags, then appends the rows.
Ingest from SDK
Append dataset rows from Node.js or Python — auto-create datasets by name, push golden sets from CI, or capture production inputs into a reusable test set.