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

# Notepad: UIA targets + type

> An agent launches Notepad, finds the edit surface via UIA, and types.

An agent **launches Notepad, finds the edit surface via UIA targets, and
types** — no pixel guessing.

```
launch_app → observe / list_targets (UIA) → click_target → type_text
```

<Note>
  **Platform vs agent:** Glasswarp provides eyes (`observe` / `list_targets`) and
  hands (`click_target` / `type_text`). Choosing Notepad and what to type is the
  agent.
</Note>

Unlike pixel-only remote-desktop tools, the host returns sparse click targets
from Windows UI Automation, and native input lands in the real Win32 control.

## Prerequisites

<Steps>
  <Step title="An online, API-enabled rig">
    See [Install the host](/get-started/install-host).
  </Step>

  <Step title="SDK installed">
    ```bash theme={null}
    pip install glasswarp pillow
    export GLASSWARP_API_KEY=gw_live_sk_...
    ```
  </Step>
</Steps>

## Run

```bash theme={null}
python sdk/python/examples/notepad_uia_demo.py
```

| Env var | Default | Purpose |
| - | - | - |
| `NOTEPAD_PATH` | `C:\Windows\System32\notepad.exe` | App to launch |
| `DEMO_TEXT` | short hello line | Text typed into the editor |
| `GLASSWARP_BASE_URL` | Fly signaling URL | API gateway |

## What you'll see

```
Rig: DESKTOP-… (…)
Session: …
  → launch_app C:\Windows\System32\notepad.exe
  → observe jpeg … targets=N
  → UIA edit target id=… role='edit' …
  → typed into Notepad; saved notepad_final.jpg
Result: ok
```

Artifacts: `notepad_observe.jpg` (SoM-marked when targets exist),
`notepad_final.jpg`. Watch live via **Console → Sessions → Eye**.

<Card title="Grounding" icon="crosshairs" href="/concepts/grounding">
  How UIA targets and Set-of-Mark make clicks reliable.
</Card>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.