Skip to main content
ClaudeWave
Skill17k repo starsupdated 15d ago

first-run

The first-run skill guides new users through their initial computer-use agent setup in a conversational manner. It walks users through three phases: verifying their Python environment and API key configuration without exposing secrets, running a safe browser-only demonstration task that generates a trajectory file, and then launching the trajectory viewer to inspect what the model observed and how it reasoned through the task.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/anthropics/claude-quickstarts /tmp/first-run && cp -r /tmp/first-run/computer-use-best-practices/.claude/skills/first-run ~/.claude/skills/first-run
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# First run

Walk the user through running this demo for the first time. Be conversational
and pause for confirmation between phases; the goal is that they understand
what each step does, not just that the commands succeed.

## 0. Orient

Briefly say what is about to happen: you will check their setup, run one safe
browser-only task that does **not** touch their mouse or keyboard, and then
open the trajectory viewer so they can see what the model saw.

## 1. Environment check

> **Never read the contents of `.env`.** Do not `cat`, `grep` (without `-q`),
> `Read`, or otherwise display it — the user's API key must never appear in
> this conversation or in your context. Only check for its *presence*.

- Confirm a virtual environment is active and dependencies are installed:
  `python -c "import computer_use, playwright; print('ok')"`. If that import
  fails, point them at the **Installation** section of `README.md` and stop.
- Confirm `.env` exists and the API key is set without ever printing it:
  `[ -f .env ] && grep -q '^ANTHROPIC_API_KEY=.' .env && echo 'API key: set' || echo 'API key: missing'`
  If missing, copy `.env.example` to `.env` and ask the user to open it in
  their own editor and paste their key into it (do **not** ask them to paste
  the key into chat, and do not edit `.env` for them). Wait until they confirm.
- Run the macOS permission preflight non-fatally:
  `python -c "from computer_use.preflight import check_and_warn; check_and_warn(require=False)"`
  and explain any warnings. These permissions are only needed for the desktop
  `computer` tool, which the first task does not use, so it is fine to
  continue without them for now.

## 2. Run a safe browser-only task

Explain that this task uses only the headless browser tool, so nothing on
their screen will move. Then run:

```bash
CU_ENABLE_COMPUTER_USE_TOOLS=false python -m computer_use \
  "Navigate to https://en.wikipedia.org/wiki/Special:Random three times, \
   take a screenshot each time, then summarize what you saw."
```

While it runs, narrate what the streamed output means (dim thinking text, the
cyan tool-call lines, the yellow tool-result lines, the `[usage]` line). When
it finishes, point out the `trajectory: runs/...` path that was printed.

## 3. Open the trajectory viewer

```bash
python -m streamlit run dev_ui/trajectory_viewer/app.py
```

Tell them to pick the newest run in the sidebar, expand the **System prompt**
section to see exactly what the model was told, and scroll through the turns
to see each screenshot inline.

## 4. Next steps

Offer two follow-ups and let them choose:

- **Try the desktop tool**: once Screen Recording and Accessibility are
  granted, run `python -m computer_use "open TextEdit and type hello world"`.
  Warn them again that this will move their real mouse and keyboard.
- **Explore the dev UIs**: the tool panel at
  `python -m uvicorn dev_ui.tool_panel.server:app --reload` lets them call
  each tool by hand without the model in the loop.

End by pointing at the **Configuration** and **Effective caching and context
pruning** sections of `README.md` for the deeper material.