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

# Create Custom Views with Alyx

> Ask Alyx to build a custom layout for your traces, sessions, or labeling-queue records, no code required.

A **custom view** is a layout you describe to [Alyx](/ax/alyx) in plain language, and Alyx builds it for you. Instead of reading raw spans in the default table, you get a purpose-built panel (a conversation transcript, a tool-call checklist, a side-by-side input/output comparison) rendered right alongside your data.

You don't write any code. You describe what you want, Alyx generates a live preview, and you refine it in conversation until it's right. Once you accept a view, it's added as a tab you can rename and share with your team.

<Info>
  Custom views are different from **[Saved Views](/ax/observe/tracing/view-and-manage-traces#saved-views)**. A Saved View stores a table configuration (filters, columns, sort, time range). A custom view is a bespoke layout of the underlying data that Alyx builds from your description.
</Info>

## Where you can create a custom view

Custom views come in three flavors, depending on where you open Alyx:

| View type                 | Where it renders                            | What it can show                                                                                                                            |
| :------------------------ | :------------------------------------------ | :------------------------------------------------------------------------------------------------------------------------------------------ |
| **Trace**                 | The trace detail slideover                  | The trace and its spans: span kind, status, latency, token counts, cost, attributes, evaluations, and the input/output of the selected span |
| **Session**               | The session detail page                     | Every trace in the session, plus session-level duration, trace count, token counts, and evaluations                                         |
| **Labeling-queue record** | A record in an annotation queue (read-only) | The record's columns and the annotation rubric, laid out for faster review                                                                  |

## Create a view

<Frame caption="Open Customize Tabs on a trace and click Create Custom View to generate a view with Alyx.">
  <video
    src="https://storage.googleapis.com/arize-assets/doc-images/alyx/Alyx-custom-view.mp4"
    alt="Opening Customize Tabs on a trace and selecting Create Custom View to generate a custom view with Alyx"
    width="100%"
    height="100%"
    style={{
  display: 'block',
  objectFit: 'fill',
  backgroundColor: 'transparent',
}}
    controls
    autoPlay
    muted
    loop
  />
</Frame>

<Steps>
  <Step title="Start a custom view">
    Open a trace, a session, or a labeling-queue record. Open the **Customize Tabs** menu in the tab bar and click **Create Custom View** (on a labeling-queue record, use the **+** button above the record). This opens Alyx, which knows which surface you're on and builds the matching view type. You can also open Alyx directly (press **Cmd+L** / **Ctrl+L**) and ask it to create a view.
  </Step>

  <Step title="Describe the layout you want">
    Tell Alyx what you want to see, in plain language. Be specific about the data and the shape: a list, a table, a chat transcript, or side-by-side panels.
  </Step>

  <Step title="Preview and refine">
    Alyx returns a **live preview** of the view with **Accept** and **Reject** buttons. Nothing is saved yet. Keep talking to Alyx to adjust it (move things around, add a control, change the sort) until it looks right.
  </Step>

  <Step title="Accept, manage, and share">
    Click **Accept** and the view is automatically added as a tab. To manage a saved view, open the **Customize Tabs** menu and hover the view to reveal its actions: **Edit in Alyx**, **Rename**, and **Delete**, plus a **Publish** section with a **Visible to everyone** checkbox that shares the view with your team (org admins only). To control whether a view stays in the tab row, select or clear its checkbox in the **Customize Tabs** list.
  </Step>
</Steps>

## What to ask Alyx

You describe the view; Alyx handles the rest. A good request names the **data** you want and the **shape** you want it in.

### Trace views

* *"Create a custom view for this trace that shows a list of all tool calls with their inputs and outputs."*
* *"Create a conversation-style view of the messages in this trace."*
* *"Build a side-by-side input/output comparison with thumbs up/down buttons."*
* *"Show every LLM span with its latency, token count, and cost in a sortable table."*
* *"Make a timeline of the spans in this trace, ordered by start time, with errors highlighted."*

### Session views

* *"Create a custom view for this session that shows each turn as a chat bubble with its latency."*
* *"Show a table of every trace in this session with its status, duration, and total tokens."*
* *"Summarize the token usage across this session as a running total."*

### Labeling-queue views

* *"Lay out this record with the model output on the left and the annotation rubric on the right."*
* *"Show the record's columns as a clean, scannable card so I can label faster."*

### Refining a view

<Frame caption="Refining a view: ask Alyx to edit an existing custom view to also show cost per span.">
  <video
    src="https://storage.googleapis.com/arize-assets/doc-images/alyx/Alyx-edit-custom-view.mp4"
    alt="Editing a custom view with Alyx to add cost per span"
    width="100%"
    height="100%"
    style={{
  display: 'block',
  objectFit: 'fill',
  backgroundColor: 'transparent',
}}
    controls
    autoPlay
    muted
    loop
  />
</Frame>

Once a view is open, ask Alyx to change it:

* *"Add a search box."*
* *"Change the layout to side-by-side."*
* *"Add a column for cost."*
* *"Fix the sorting so the slowest spans are first."*
* *"Add thumbs up/down buttons to each row."*

## Good to know

* **Nothing saves until you accept.** Every view Alyx generates is a preview first. Refine it as much as you want before committing.
* **Views render the data that's available.** A view can only show data present in the trace, session, or record. For example, the full input and output are available for the selected span; if you ask for data that isn't there, Alyx will tell you what it can show instead.
* **Personal by default, shareable when ready.** New views are visible only to you until an org admin checks **Visible to everyone** in the view's actions to publish them to your team.
* **Labeling-queue views are read-only.** They reshape a record for easier review but don't submit annotations themselves.
