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

# assistant

> The AI assistant that runs apps and tasks across uOS

export const AssistantLauncherPreview = () => <div className="uos-doc-preview uos-doc-preview--launcher" aria-label="Assistant launcher button preview">
    <div className="uos-launcher-stage">
      <div className="uos-launcher-popup">{"I'm here to help u"}</div>
      <div className="uos-launcher-btn">
        <img src="/assets/uos-assistant.png" alt="uOS Assistant" className="uos-launcher-btn__img" />
      </div>
    </div>
  </div>;

export const ActiveTaskPanelPreview = () => <div className="uos-doc-preview uos-doc-preview--task" aria-label="Active Task panel preview">
    <div className="uos-active-task">
      <div className="uos-active-task__top">
        <div className="uos-active-task__label-row">
          <span className="uos-active-task__dot" aria-hidden="true" />
          <span className="uos-active-task__label">Active Task</span>
        </div>
        <div className="uos-active-task__actions">
          <span className="uos-active-task__cancel">Cancel Task</span>
        </div>
      </div>
      <p className="uos-active-task__task">Play pokemon</p>
      <div className="uos-active-task__bar-track">
        <div className="uos-active-task__bar-fill uos-active-task__bar-fill--40" />
      </div>
      <div className="uos-active-task__meta">
        <span className="uos-active-task__step">Step 2 of 5</span>
        <span className="uos-active-task__app-badge">
          <span className="uos-active-task__dot uos-active-task__dot--sm" aria-hidden="true" />
          App: uGAME
        </span>
      </div>
      <p className="uos-active-task__action">Initializing game agent...</p>
    </div>
  </div>;

export const ThinkingPanelPreview = () => <div className="uos-doc-preview uos-doc-preview--thinking" aria-label="AI Thinking Process panel preview">
    <div className="uos-thinking-panel">
      <div className="uos-thinking-panel__chrome">
        <span className="uos-thinking-panel__chrome-title">AI Thinking Process</span>
      </div>
      <div className="uos-thinking-panel__location">Location: ROUTE 1 (12, 8)</div>
      <div className="uos-thinking-panel__body">
        <div className="uos-thinking-panel__bubble">Analyzing objective: play pokemon</div>
        <div className="uos-thinking-panel__bubble">Screen changed: Unknown to Overworld</div>
        <div className="uos-thinking-panel__bubble">Exploring: ROUTE 1</div>
        <div className="uos-thinking-panel__bubble">Using varied movement pattern</div>
        <div className="uos-thinking-panel__cursor">{"$ _"}</div>
      </div>
      <div className="uos-thinking-panel__screenshot">
        <div className="uos-thinking-panel__screenshot-frame">
          <img src="/assets/pokemon-yellow-screen.png?v=2" alt="Pokemon Yellow game screen" className="uos-thinking-panel__screenshot-img" />
        </div>
      </div>
    </div>
  </div>;

export const AgentModeLayoutPreview = () => <div className="uos-doc-preview uos-doc-preview--shell" aria-label="Agent Mode assistant layout preview">
    <div className="uos-assistant-shell">
      <div className="uos-assistant-shell__header">
        <span className="uos-assistant-shell__badge">Agent Mode</span>
        <div className="uos-assistant-shell__header-icons" aria-hidden="true">
          <span className="uos-assistant-shell__icon" />
          <span className="uos-assistant-shell__icon" />
          <span className="uos-assistant-shell__icon" />
        </div>
      </div>
      <div className="uos-assistant-shell__split">
        <div className="uos-thinking-panel">
          <div className="uos-thinking-panel__chrome">
            <span className="uos-thinking-panel__chrome-title">AI Thinking Process</span>
          </div>
          <div className="uos-thinking-panel__location">Location: ROUTE 1 (12, 8)</div>
          <div className="uos-thinking-panel__body">
            <div className="uos-thinking-panel__bubble">Analyzing objective: play pokemon</div>
            <div className="uos-thinking-panel__bubble">Screen changed: Unknown to Overworld</div>
            <div className="uos-thinking-panel__cursor">{"$ _"}</div>
          </div>
          <div className="uos-thinking-panel__screenshot">
            <div className="uos-thinking-panel__screenshot-frame">
              <img src="/assets/pokemon-yellow-screen.png?v=2" alt="Pokemon Yellow game screen" className="uos-thinking-panel__screenshot-img" />
            </div>
          </div>
        </div>
        <div className="uos-assistant-shell__chat">
          <div className="uos-active-task">
            <div className="uos-active-task__top">
              <div className="uos-active-task__label-row">
                <span className="uos-active-task__dot" aria-hidden="true" />
                <span className="uos-active-task__label">Active Task</span>
              </div>
              <div className="uos-active-task__actions">
                <span className="uos-active-task__cancel">Cancel Task</span>
              </div>
            </div>
            <p className="uos-active-task__task">Play pokemon</p>
            <div className="uos-active-task__bar-track">
              <div className="uos-active-task__bar-fill uos-active-task__bar-fill--40" />
            </div>
            <div className="uos-active-task__meta">
              <span className="uos-active-task__step">Step 2 of 5</span>
              <span className="uos-active-task__app-badge">
                <span className="uos-active-task__dot uos-active-task__dot--sm" aria-hidden="true" />
                App: uGAME
              </span>
            </div>
          </div>
          <div className="uos-assistant-shell__messages">
            <div className="uos-assistant-shell__task-pill">Task: play pokemon</div>
            <div className="uos-assistant-shell__msg uos-assistant-shell__msg--user">
              <div className="uos-assistant-shell__bubble">play pokemon</div>
            </div>
            <div className="uos-assistant-shell__msg uos-assistant-shell__msg--assistant">
              <div className="uos-assistant-shell__avatar-wrap">
                <img src="/assets/uos-assistant.png" alt="" className="uos-assistant-shell__avatar" />
              </div>
              <div className="uos-assistant-shell__bubble">Opening uGAME…</div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>;

The uOS Assistant is your companion inside the operating system. Chat with it for quick answers, or give it a task and switch on **Agent Mode** to watch it open an app and work autonomously, streaming its reasoning as it goes.

## Launch the assistant

Tap the floating button in the bottom-left corner of the desktop to open the assistant.

<AssistantLauncherPreview />

<div className="uos-doc-preview-caption">Assistant launcher on the uOS desktop</div>

## Two ways to use it

* **Chat**: Ask questions and get streaming answers in a normal conversation.
* **Agent Mode**: Hand it a task. It picks the right app, runs it, and shows a live thinking panel plus an active task card with progress.

When you submit something that looks like a task, the Assistant detects it automatically and turns on Agent Mode. You can also prefix a message with `Task:` to force it.

## Agent Mode layout

In Agent Mode the assistant widens into a split view: **AI Thinking Process** on the left, chat on the right, with the **Active Task** card pinned above the conversation.

<AgentModeLayoutPreview />

<div className="uos-doc-preview-caption">Agent Mode: thinking panel, active task, and chat (matches the live UI)</div>

Both panels can be **detached** into floating windows on the desktop so you can keep working in other apps while a task runs.

## AI Thinking Process

The left column streams step-by-step reasoning (location, screen changes, and actions) with a terminal-style cursor while the task is running.

<ThinkingPanelPreview />

For uGAME tasks, a live game screenshot can appear at the bottom of this panel.

## Active Task

The task card shows what you're running, a progress bar, step count, which app is open, and the current action.

<ActiveTaskPanelPreview />

<div className="uos-doc-preview-caption">Active Task card: pink pulse indicator, progress bar, app badge</div>

## What it can actually do

The Assistant classifies your request and routes it to the right place:

| You ask about…        | What happens                                                     |
| --------------------- | ---------------------------------------------------------------- |
| **Games / Pokémon**   | Opens **uGAME** and starts playing in Agent Mode                 |
| **Tokens / launches** | Opens **uTOKENIZE** and can deploy a token from your description |
| **Agent services**    | Searches the agent marketplace and can call a paid service       |
| Chat / anything else  | Answers conversationally                                         |

## How it works in the OS

* **App orchestration**: Opens and drives apps like uGAME and uTOKENIZE through the OS window system.
* **Background tasks**: A running task keeps going even if you close the Assistant window; its state is saved to local storage and restored when you reopen.
* **Cross-app events**: Emits `aiTaskStateChange` and `aiTaskProgress` browser events so other parts of uOS can react to task status and progress.
* **Bridges**: Talks to uGAME through the game agent bridge and to uTOKENIZE through the token deployment provider.

## Paying for agent services

uOS includes an **agent marketplace**: external agents and services discoverable through the Assistant (via x402 and ERC-8004). When you call a paid service, you authorize a **USDC micropayment** from your connected wallet for that specific call.

<Note>
  **Roadmap: task escrow and settlement.** A fuller economic model (fund a task into escrow, route it to an agent, release on acceptance with a challenge window and a revenue split across developers, treasury, and the payment layer) is designed but not yet live. Today's payments are simple per-call USDC authorizations, not escrowed task settlements.
</Note>
