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

# Assistant interface reference

> Reference for the controls, message elements, and keyboard shortcuts in the Chronosphere Assistant.

export const AddToDashboardIcon = props => {
  return <svg viewBox="0 0 20 20" className="inline-block h-5 w-5 fill-current" {...props}>
      <path fillRule="evenodd" clipRule="evenodd" d="M3 3H9V9H3V3ZM11 3H17V9H11V3ZM3 11H9V17H3V11ZM13.25 11H14.75V13.25H17V14.75H14.75V17H13.25V14.75H11V13.25H13.25V11ZM12.5 4.5V7.5H15.5V4.5H12.5ZM4.5 4.5V7.5H7.5V4.5H4.5ZM4.5 12.5V15.5H7.5V12.5H4.5Z" />
    </svg>;
};

export const CollectionIcon = props => {
  const drawPath = "M21 6.5c-1.66 0-3 1.34-3 3 0 .07 0 .14.01.21l-2.03.68c-.64-1.21-1.82-2.09-3.22-2.32V5.91C14.04 5.57 15 4.4 15 3c0-1.66-1.34-3-3-3S9 1.34 9 3c0 1.4.96 2.57 2.25 2.91v2.16c-1.4.23-2.58 1.11-3.22 2.32l-2.04-.68C6 9.64 6 9.57 6 9.5c0-1.66-1.34-3-3-3s-3 1.34-3 3 1.34 3 3 3c1.06 0 1.98-.55 2.52-1.37l2.03.68c-.2 1.29.17 2.66 1.09 3.69l-1.41 1.77C6.85 17.09 6.44 17 6 17c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3c0-.68-.22-1.3-.6-1.8l1.41-1.77c1.36.76 3.02.75 4.37 0l1.41 1.77c-.37.5-.59 1.12-.59 1.8 0 1.66 1.34 3 3 3s3-1.34 3-3-1.34-3-3-3c-.44 0-.85.09-1.23.26l-1.41-1.77c.93-1.04 1.29-2.4 1.09-3.69l2.03-.68c.53.82 1.46 1.37 2.52 1.37 1.66 0 3-1.34 3-3S22.66 6.5 21 6.5zm-18 4c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zM6 21c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1zm5-18c0-.55.45-1 1-1s1 .45 1 1-.45 1-1 1-1-.45-1-1zm1 12c-1.38 0-2.5-1.12-2.5-2.5S10.62 10 12 10s2.5 1.12 2.5 2.5S13.38 15 12 15zm6 4c.55 0 1 .45 1 1s-.45 1-1 1-1-.45-1-1 .45-1 1-1zm3-8.5c-.55 0-1-.45-1-1s.45-1 1-1 1 .45 1 1-.45 1-1 1z";
  return <svg viewBox="0 0 24 25" data-testid="CollectionIcon" aria-label="CollectionIcon" {...props} className="inline-block h-5 w-5 fill-current">
      <path d={drawPath} />
    </svg>;
};

export const CollectionNavIcon = props => {
  const drawPath = "M8.4 18.2C8.8 18.7 9 19.3 9 20C9 21.7 7.7 23 6 23S3 21.7 3 20 4.3 17 6 17C6.4 17 6.8 17.1 7.2 17.3L8.6 15.5C7.7 14.5 7.3 13.1 7.5 11.8L5.5 11.1C5 11.9 4.1 12.5 3 12.5C1.3 12.5 0 11.2 0 9.5S1.3 6.5 3 6.5 6 7.8 6 9.5V9.7L8 10.4C8.6 9.2 9.8 8.3 11.2 8.1V5.9C10 5.6 9 4.4 9 3C9 1.3 10.3 0 12 0S15 1.3 15 3C15 4.4 14 5.6 12.8 5.9V8.1C14.2 8.3 15.4 9.2 16 10.4L18 9.7V9.5C18 7.8 19.3 6.5 21 6.5S24 7.8 24 9.5 22.7 12.5 21 12.5C19.9 12.5 19 11.9 18.5 11.1L16.5 11.8C16.7 13.1 16.3 14.5 15.4 15.5L16.8 17.3C17.2 17.1 17.6 17 18 17C19.7 17 21 18.3 21 20S19.7 23 18 23 15 21.7 15 20C15 19.3 15.2 18.7 15.6 18.2L14.2 16.4C12.8 17.2 11.2 17.2 9.8 16.4L8.4 18.2Z";
  return <svg viewBox="0 0 24 24" data-testid="Collections" aria-label="Collections" {...props} className="inline-block h-5 w-5 fill-current">
      <path d={drawPath} />
    </svg>;
};

export const ServiceIcon = props => {
  return <svg viewBox="0 0 22 20" {...props} className="inline-block h-5 w-5 fill-current" aria-label="ServiceIcon">
      <path fillRule="evenodd" clipRule="evenodd" d="M10.7339 0.0766817C10.8966 -0.0255606 11.1034 -0.0255606 11.2661 0.0766817L16.2661 3.21954C16.4117 3.31104 16.5 3.47092 16.5 3.64286V8.35714C16.5 8.52908 16.4117 8.68896 16.2661 8.78046L11.2661 11.9233C11.1034 12.0256 10.8966 12.0256 10.7339 11.9233L5.73391 8.78046C5.58834 8.68896 5.5 8.52908 5.5 8.35714V3.64286C5.5 3.47092 5.58834 3.31104 5.73391 3.21954L10.7339 0.0766817ZM6.5 4.54772V8.08086L10.5 10.5951V7.062L6.5 4.54772ZM11.5 7.062V10.5951L15.5 8.08086V4.54772L11.5 7.062ZM15.0605 3.64286L11 6.19514L6.93955 3.64286L11 1.09057L15.0605 3.64286Z" />
      <path fillRule="evenodd" clipRule="evenodd" d="M5.73391 8.07668C5.89657 7.97444 6.10343 7.97444 6.26609 8.07668L11.2661 11.2195C11.4117 11.311 11.5 11.4709 11.5 11.6429V16.3571C11.5 16.5291 11.4117 16.689 11.2661 16.7805L6.26609 19.9233C6.10343 20.0256 5.89657 20.0256 5.73391 19.9233L0.733914 16.7805C0.588344 16.689 0.5 16.5291 0.5 16.3571V11.6429C0.5 11.4709 0.588344 11.311 0.733914 11.2195L5.73391 8.07668ZM1.5 12.5477V16.0809L5.5 18.5951V15.062L1.5 12.5477ZM6.5 15.062V18.5951L10.5 16.0809V12.5477L6.5 15.062ZM10.0605 11.6429L6 14.1951L1.93955 11.6429L6 9.09057L10.0605 11.6429Z" />
      <path fillRule="evenodd" clipRule="evenodd" d="M15.7339 8.07668C15.8966 7.97444 16.1034 7.97444 16.2661 8.07668L21.2661 11.2195C21.4117 11.311 21.5 11.4709 21.5 11.6429V16.3571C21.5 16.5291 21.4117 16.689 21.2661 16.7805L16.2661 19.9233C16.1034 20.0256 15.8966 20.0256 15.7339 19.9233L10.7339 16.7805C10.5883 16.689 10.5 16.5291 10.5 16.3571V11.6429C10.5 11.4709 10.5883 11.311 10.7339 11.2195L15.7339 8.07668ZM11.5 12.5477V16.0809L15.5 18.5951V15.062L11.5 12.5477ZM16.5 15.062V18.5951L20.5 16.0809V12.5477L16.5 15.062ZM20.0605 11.6429L16 14.1951L11.9395 11.6429L16 9.09057L20.0605 11.6429Z" />
    </svg>;
};

export const ServiceNavIcon = props => {
  return <svg viewBox="0 0 20 20" {...props} className="inline-block h-5 w-5 fill-current" aria-label="Services">
      <path d="M0 13.5463C0 13.3708 0.157997 13.2607 0.284979 13.3478L4.18974 16.0263C4.24909 16.067 4.28571 16.1427 4.28571 16.2248V19.7709C4.28571 19.9465 4.12772 20.0566 4.00074 19.9695L0.0959735 17.291C0.0366259 17.2503 0 17.1745 0 17.0925V13.5463Z" />
      <path d="M5.2381 16.2248C5.2381 16.1427 5.27472 16.067 5.33407 16.0263L9.23883 13.3478C9.36581 13.2607 9.52381 13.3708 9.52381 13.5463V17.0925C9.52381 17.1745 9.48718 17.2503 9.42784 17.291L5.52307 19.9695C5.39609 20.0566 5.2381 19.9465 5.2381 19.7709V16.2248Z" />
      <path d="M4.85641 15.0372L8.75079 12.3658C8.87876 12.2781 8.87876 12.0566 8.75079 11.9688L4.85641 9.29746C4.79785 9.25729 4.72596 9.25729 4.6674 9.29746L0.773017 11.9688C0.645052 12.0566 0.645052 12.2781 0.773016 12.3658L4.6674 15.0372C4.72596 15.0774 4.79785 15.0774 4.85641 15.0372Z" />
      <path d="M5.23804 4.279C5.23804 4.10344 5.39603 3.99337 5.52302 4.08048L9.42778 6.75893C9.48713 6.79964 9.52375 6.8754 9.52375 6.95746V10.5036C9.52375 10.6792 9.36575 10.7892 9.23877 10.7021L5.33401 8.02368C5.27466 7.98297 5.23804 7.90721 5.23804 7.82515V4.279Z" />
      <path d="M10.4761 6.95746C10.4761 6.8754 10.5128 6.79964 10.5721 6.75893L14.4769 4.08048C14.6039 3.99337 14.7618 4.10344 14.7618 4.279V7.82515C14.7618 7.9072 14.7252 7.98297 14.6659 8.02368L10.7611 10.7021C10.6341 10.7892 10.4761 10.6792 10.4761 10.5036V6.95746Z" />
      <path d="M10.0944 5.76985L13.9888 3.09851C14.1168 3.01073 14.1168 2.78924 13.9888 2.70147L10.0944 0.0301261C10.0359 -0.010042 9.964 -0.010042 9.90544 0.0301261L6.01105 2.70147C5.88309 2.78924 5.88309 3.01073 6.01105 3.09851L9.90544 5.76985C9.964 5.81002 10.0359 5.81002 10.0944 5.76985Z" />
      <path d="M10.4761 13.5463C10.4761 13.3708 10.6341 13.2607 10.7611 13.3478L14.6658 16.0263C14.7252 16.067 14.7618 16.1427 14.7618 16.2248V19.7709C14.7618 19.9465 14.6038 20.0566 14.4768 19.9695L10.572 17.291C10.5127 17.2503 10.4761 17.1745 10.4761 17.0925V13.5463Z" />
      <path d="M15.7142 16.2248C15.7142 16.1427 15.7508 16.067 15.8101 16.0263L19.7149 13.3478C19.8419 13.2607 19.9999 13.3708 19.9999 13.5463V17.0925C19.9999 17.1745 19.9633 17.2503 19.9039 17.291L15.9991 19.9695C15.8722 20.0566 15.7142 19.9465 15.7142 19.7709V16.2248Z" />
      <path d="M15.3325 15.0372L19.2269 12.3658C19.3548 12.2781 19.3548 12.0566 19.2269 11.9688L15.3325 9.29746C15.2739 9.25729 15.202 9.25729 15.1435 9.29746L11.2491 11.9688C11.1211 12.0566 11.1211 12.2781 11.2491 12.3658L15.1435 15.0372C15.202 15.0774 15.2739 15.0774 15.3325 15.0372Z" />
    </svg>;
};

export const CSharpIcon = props => <svg style={{
  display: "inline-block",
  width: "1.5rem",
  height: "1.5rem"
}} viewBox="0 0 24 24" {...props}>
    <path d="m11.5 15.97.41 2.44c-.26.14-.68.27-1.24.39-.57.13-1.24.2-2.01.2-2.21-.04-3.87-.7-4.98-1.96C2.56 15.77 2 14.16 2 12.21c.05-2.31.72-4.08 2-5.32C5.32 5.64 6.96 5 8.94 5c.75 0 1.4.07 1.94.19s.94.25 1.2.4l-.58 2.49-1.06-.34c-.4-.1-.86-.15-1.39-.15-1.16-.01-2.12.36-2.87 1.1-.76.73-1.15 1.85-1.18 3.34 0 1.36.37 2.42 1.08 3.2.71.77 1.71 1.17 2.99 1.18l1.33-.12c.43-.08.79-.19 1.1-.32M13.89 19l.61-4H13l.34-2h1.5l.32-2h-1.5L14 9h1.5l.61-4h2l-.61 4h1l.61-4h2l-.61 4H22l-.34 2h-1.5l-.32 2h1.5L21 15h-1.5l-.61 4h-2l.61-4h-1l-.61 4h-2m2.95-6h1l.32-2h-1l-.32 2Z" style={{
  fill: "#28a561"
}} />
  </svg>;

export const PipeIcon = props => <svg style={{
  display: "inline-block",
  width: "1.5rem",
  height: "1.5rem"
}} viewBox="0 0 24 24" {...props}>
    <path d="M22 14h-2v2h-6v-3h2v-2h-2V6a2 2 0 0 0-2-2H4V2H2v8h2V8h6v3H8v2h2v5a2 2 0 0 0 2 2h8v2h2" style={{
  fill: "#28a561"
}} />
  </svg>;

export const AiMessageIcon = props => <svg style={{
  display: "inline-block",
  width: "1.5rem",
  height: "1.5rem"
}} viewBox="0 0 24 24" {...props}>
    <path d="M2.5 3C2.08782 3.00012 1.73499 3.14696 1.44141 3.44043C1.14766 3.73418 1 4.0875 1 4.5V19L4 16H15.5C15.9124 16 16.2659 15.8532 16.5596 15.5596C16.8533 15.2658 17.001 14.9125 17.001 14.5V10H15.5V14.5H3.375L2.5 15.375V4.5H10V3H2.5Z" style={{
  fill: "#28a561"
}} />
    <path fill-rule="evenodd" clip-rule="evenodd" d="M14.1154 3.11538L11 4.5L14.1154 5.88461L15.5 9L16.8846 5.88461L20 4.5L16.8846 3.11538L15.5 0L14.1154 3.11538Z" style={{
  fill: "#28a561"
}} />
  </svg>;

<Note>
  This feature is in Early Access (EA), and might not be visible in your app. To learn
  more about this program and the features it contains, see the
  [Early access](/early-access) page.
</Note>

The [Assistant](/navigate/assistant) presents the same conversation in two
surfaces in Chronosphere Observability Platform: a side panel that stays open as
you move between pages, and a full page. Use this reference to identify the controls
in each surface, the elements that make up a conversation, and the keyboard shortcuts
that the Assistant supports.

## Panel and page controls

### Side panel header

The side panel header displays the **Assistant** title and these controls:

* **<Icon icon="link-2" /> Copy URL** copies a link to the current conversation.
  This control appears only after you send a message, and doesn't appear for
  accounts in [temporary mode](/navigate/assistant#availability-and-permissions).
* **<Icon icon="square-pen" /> New chat** starts a conversation, ending any
  response in progress.
* **<Icon icon="clock" /> Chat history** opens a searchable list of your recent
  conversations. Enter text in **Search chats** to filter the list. When no
  conversation matches, the list displays `No chats found`.
* **<Icon icon="maximize" /> Go to chat page** moves the current conversation to
  the full-page view.
* **<Icon icon="x" /> Close Panel** closes the panel.

### Full page controls

The full page displays the **Assistant** header and a **Chat history** sidebar
containing:

* **<Icon icon="square-pen" /> New chat**, which is selected when no conversation
  is open.
* A **Recents** list of your saved conversations, most recently updated first.
* **<Icon icon="panel-left-close" /> Close chat history**, which collapses the
  sidebar to a rail. The rail displays **<Icon icon="square-pen" /> New chat** and
  **<Icon icon="clock" /> Open chat history**.

## Message field

The message field accepts multiple lines and expands as necessary. To enter a
manual line break, press <kbd>Shift</kbd> + <kbd>Enter</kbd> (<kbd>Shift</kbd> +
<kbd>Return</kbd> on macOS).

### Slash commands

Type `/` at the start of the field to open a menu of
**[Skills](/navigate/assistant/capabilities#skills).** Each entry lists the
command and a description of what it does. Continue typing to filter the menu,
use the arrow keys to select a command, and press <kbd>Enter</kbd>
(<kbd>Return</kbd> on macOS) or click a command to insert it.

### Send and stop

The circular button at the right of the message field reflects the state of the
conversation:

* **<Icon icon="arrow-up" /> Send message** submits your prompt.
* **<Icon icon="circle-stop" /> Stop generating** ends a response in progress.

### Context gauge

When a conversation has consumed part of its context window, a gauge appears next
to the message field displaying the percentage used. Hold the pointer over the
gauge to view a precise token usage count.

The gauge changes color and message as usage increases:

* Under 80%, it reports the percentage and token count.
* At 80% or higher, it turns amber and advises you to clear the chat soon.
* At 100%, it turns red, reports that the context window is full, and advises you
  to clear the chat or start a new thread to continue.

Start a [new chat](#side-panel-header) to reset the context window.

## Conversation elements

A conversation alternates between messages you send and responses from the
Assistant. Responses can contain several element types.

### Your messages

Your messages display in a shaded block. When the page you're on differs from the
page of your previous message, a chip preceding the message names the page
context, such as **Dashboard**, **Alert**, or **Metrics explorer**. Hold the
pointer over the chip to view the full URL, which you can click to open in a new
tab. For more information, see
[Page context](/navigate/assistant#page-context).

### Reasoning

While the Assistant works out its approach, it displays animated `Thinking...`
text, or the current step of its reasoning. After it finishes, the reasoning
collapses into a row reporting how many seconds it thought for, which you can
expand to inspect in full.

### Tool calls

The Assistant displays each search, query, and command it runs. A single step
displays as its own row. Two or more consecutive steps collapse into one group
labeled **Ran** followed by a count of tool calls, commands, or both.

Groups expand automatically while the Assistant is working and collapse when it
finishes. Click a group to change its state.

Each step displays its status:

* A spinner while the step is running.
* A green <Icon icon="check" color="green" /> check icon with the step name struck
  through after it completes.

Expand a step to view its **Input:** and **Output:**. Shell commands display the
command that ran, prefixed with `$:`, followed by its output. Failed commands
display their error output in red.

Steps that use a [skill](/navigate/assistant/capabilities#skills) name the skill
and report whether the Assistant is using it, used it, or failed to use it. Expand
a failed skill to view the error.

### Code blocks

The Assistant returns queries and structured data in code blocks labeled with
their language. Every code block has a **<Icon icon="copy" /> Copy code** button.

Code blocks that contain a query also have an **Open in Explorer** button, which
opens the query in the matching explorer with the time range the Assistant used.
This button appears for PromQL, logging queries, change event queries, and
Graphite queries.

Long blocks scroll rather than expanding the conversation. While the Assistant is
still writing a long block, the block header displays `Generating...`.

### Timestamps

The Assistant writes timestamps as chips formatted in your account's
[time zone and clock preferences](/navigate#your-account).

### Investigation cards

When the Assistant starts or checks a deep investigation, it displays an
**Investigation** card rather than raw output. The card names what's being
investigated, such as a dashboard panel or an alert, and displays a status:

* **Investigation in progress**, which displays `Starting investigation` as its
  initial summary
* **Report ready for review**
* **Investigation complete**
* **Investigation incomplete**, when the investigation fails

Click **View full investigation** to open the investigation in a new tab.

## Rate a response

Each completed response displays rating controls:

1. Click **<Icon icon="thumbs-up" /> Helpful** or
   **<Icon icon="thumbs-down" /> Not helpful**.
2. Optional: Add detail in the **Tell us more about your feedback** dialog, and
   then click **Submit rating**. To record only the rating, click **Cancel**.

Ratings are recorded per response, and you can't change a response after
submitting it.

## Manage conversations

Unless your role prohibits it, Assistant saves your conversations. You can
[resume](#resume-a-conversation) or [share](#share-a-conversation) your saved
conversations from the [chat history](#side-panel-header).

### Resume a conversation

To resume a saved conversation, open [chat history](#side-panel-header) and select
it. Unless your account is in
[temporary mode](/navigate/assistant#availability-and-permissions), the chat
history retains your 20 most recent conversations.

Observability Platform names each conversation after your first message in it,
truncated if the message is long. You can't rename, delete, or export
conversations.

### Share a conversation

To share a conversation, click **<Icon icon="link-2" /> Copy URL** in the side
panel header, or copy the URL of the Assistant page while the conversation is
open. Observability Platform displays `Copied` to confirm.

When another account opens the link, the conversation appears read-only with an
alert naming the account that shared it. The message field doesn't appear, so
recipients can't continue a conversation you shared. To ask their own questions,
they can start a new chat.

Accounts in [temporary mode](/navigate/assistant#availability-and-permissions)
can't share conversations.

## Errors

When a response fails, the Assistant displays a **Couldn't get a response** alert
next to the message field with **Try again** to resubmit your prompt. The alert
describes the cause:

| Message                                                                                             | Cause                                                                           |
| --------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| `We could not reach the assistant. Check your connection and try again.`                            | Observability Platform couldn't reach the Assistant service.                    |
| `The assistant rejected this request. If the issue persists, clear the chat or start a new thread.` | The Assistant refused the request, which often indicates a full context window. |
| `Something went wrong. Please try again.`                                                           | Any other failure.                                                              |

## Keyboard shortcuts

The following table lists the Assistant's supported keyboard shortcuts:

| Shortcut                                                                            | Action                                                                                      |
| ----------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------- |
| <kbd>A</kbd>                                                                        | Open or close the Assistant side panel. Unavailable on the Assistant page.                  |
| <kbd>/</kbd>                                                                        | Open the slash command menu, when typed at the start of the message field or after a space. |
| <kbd>Enter</kbd> (<kbd>Return</kbd> on macOS)                                       | Send the prompt, or accept the selected slash command when the menu is open.                |
| <kbd>Shift</kbd>+<kbd>Enter</kbd> (<kbd>Shift</kbd>+<kbd>Return</kbd> on macOS)     | Insert a line break without sending.                                                        |
| <kbd>Control</kbd>+<kbd>Enter</kbd> (<kbd>Command</kbd>+<kbd>Return</kbd> on macOS) | Send the prompt.                                                                            |

To view the shortcuts available on the current page, press <kbd>Control</kbd>+<kbd>/</kbd>
(<kbd>Command</kbd>+<kbd>/</kbd> on macOS).
