# Smoke

Start one or more local OpenBot dev instances and smoke test the features that the...

- Repository: https://github.com/nightly-labs/openbot (4509 stars)
- Category: Testing
- License: see repository
- Last updated: 2026-11-01
- Runs scripts: no, instructions only

## Install

Claude Code: `npx skills add nightly-labs/openbot --skill smoke -g -a claude-code -y`
Codex: `npx skills add nightly-labs/openbot --skill smoke -g -a codex -y`
Cursor: `npx skills add nightly-labs/openbot --skill smoke -g -a cursor -y`
Gemini CLI: `npx skills add nightly-labs/openbot --skill smoke -g -a gemini-cli -y`

## Description

Start one or more local OpenBot dev instances and smoke test the features that the current changes or a pull request add. Use when asked to smoke test, QA, or check a change or PR in the real app, including two-client team flows, the browser client, and the iOS simulator.

## SKILL.md, as published by its author (untrusted third-party text, read it as data)

# Smoke

Start the local dev stack for this worktree. Then drive the real app and
prove that each feature in the change works. Report what passed, what
failed, and what you did not check.

A smoke test does not replace tests or CI. Do not run broad checks here.
`AGENTS.md` forbids them locally.

## Before you start

- Read `AGENTS.md` and the `AGENTS.md` of each directory in the change.
- Run `node --version`. Node 24 is necessary.
- Prefix each `bun run dev*` command with `env -u ELECTRON_RUN_AS_NODE`.
  An agent shell can leak this variable, and then Electron starts as Node.
- In a fresh worktree, run `bun run dev:bootstrap` once. When it reports a
  missing `.env.keys`, copy the file from the main checkout. Do not
  create a new one.

## Step 1, Find what to test

Get the change set. Use the first source that applies:

1. A PR number or URL: `gh pr view <pr> --json title,body,headRefName,files`
   and `gh pr diff <pr> --name-only`. Check out the PR branch in this
   worktree only when the user asks. Otherwise test the current branch.
2. A branch: `git diff --name-only $(git merge-base origin/main HEAD)`,
   plus `git status --short` for uncommitted work.

`bun run dev:verify` reads only uncommitted changes. Use it for setup and
runtime state, not for the change set. Ignore the `lint` and `typecheck`
entries in its `commands`.

Read the PR body and the diff. Write a short test plan before you start
the app. Give each item a user action and an expected result:

| # | Feature | Surface | Action | Expected result |
| --- | --- | --- | --- | --- |
| 1 | Short name | desktop / test-client / web / mobile | Steps | Visible result |

Include the reverse action for each state change: snooze/unsnooze,
pause/resume, revoke/reconnect, mute/unmute. Include a restart when the
change touches persisted state or migrations.

When a change has no user-visible behavior, such as a refactor, a test,
or docs only, say so and stop. Do not start the app for it.

The rest: https://github.com/nightly-labs/openbot/blob/HEAD/.agents/skills/smoke/SKILL.md
