Agent skill · Testing & QA

dev-browser

Browser automation with persistent page state. Use when users ask to navigate websites, fill forms, take screenshots, extract web data, test web apps, or automate browser workflows. Trigger phrases include "go to [url]", "click on", "fill out the form", "take a screenshot", "scrape", "automate", "test the website", "log into", or any browser interaction request.

MemTensorgithub.com/MemTensorGitHub ↗
claude-codeships scriptsApache-2.0
Install
npx skills add MemTensor/MemOS --skill dev-browser --agent claude-code

Same command for any agent — swap --agent for codex, cursor, copilot.

Facts
Files in the skill folder: 17
SKILL.md size: 7 KB
Bundled scripts: yes
Path: apps/openwork-memos-integration/apps/desktop/skills/dev-browser/SKILL.md
Open the folder on GitHub →
Where it comes from
Stars: 10,587 · +166 this week
Language: TypeScript
Read our review of the source →

Weekly change comes from our own snapshots, not the repository page — it measures attention, not adoption.

From the SKILL.md

# Dev Browser Skill Browser automation that maintains page state across script executions. Write small, focused scripts to accomplish tasks incrementally. Once you've proven out part of a workflow and there is repeated work to be done, you can write a script to do the repeated work in a single execution. ## Choosing Your Approach - **Local/source-available sites**: Read the source code first to write selectors directly - **Unknown page layouts**: Use `getAISnapshot()` to discover elements and `selectSnapshotRef()` to interact with them - **Visual feedback**: Take screenshots to see what the user sees ## Setup Two modes available. Ask the user if unclear which to use. ### Standalone Mode (Default) Launches a new Chromium browser for fresh automation sessions. ```bash ./skills/dev-browser/server.sh & ``` Add `--headless` flag if user requests it. **Wait for the `Ready` message before running scripts.** ### Extension Mode Connects to user's existing Chrome browser. Use this when: - The user is already logged into sites and wants you to do things behind an authed experience that isn't local dev. - The user asks you to use the extension **Important**: The core flow is still the same. Yo

What's inside
Steps it walks through
  1. Choosing Your Approach
  2. Setup
  3. Standalone Mode (Default)
  4. Extension Mode
  5. Writing Scripts
  6. Key Principles
  7. Workflow Loop
  8. No TypeScript in Browser Context
  9. Scraping Data
  10. Client API
  11. Waiting
  12. Inspecting Page State
  13. Screenshots
  14. ARIA Snapshot (Element Discovery)
Ships with 16 files
  • .gitignore
  • package.json
  • references/scraping.md
  • scripts/start-relay.ts
  • scripts/start-server.ts
  • server.sh
  • src/client.ts
  • src/index.ts
  • src/relay.ts
  • src/snapshot/__tests__/snapshot.test.ts
  • src/snapshot/browser-script.ts
  • src/snapshot/index.ts
  • src/snapshot/inject.ts
  • src/types.ts
  • tsconfig.json
  • vitest.config.ts
Commands it runs
cd skills/dev-browser && npm i && npm run start-extension &
cd skills/dev-browser && npx tsx <<'EOF'
More from MemOS
All skills →
About this skill
What does the dev-browser skill do?

Browser automation with persistent page state. Use when users ask to navigate websites, fill forms, take screenshots, extract web data, test web apps, or automate browser workflows. Trigger phrases include "go to [url]", "click on", "fill out the form", "take a screenshot", "scrape", "automate", "test the website", "log into", or any browser interaction request.

How do I install it?

Run `npx skills add MemTensor/MemOS --skill dev-browser --agent claude-code` — it drops the skill into your project so the agent can pick it up. Swap the --agent value for codex, cursor or copilot if you use one of those.

Where does this skill come from?

From MemTensor/MemOS, a repository with 10,587 stars. We read it straight from the repository tree rather than a submitted listing, so what you see here is what is actually published.

Is a popular skill a good skill?

Not necessarily. Stars measure attention, not adoption — a repository can trend for a week and be abandoned. That is why we show the weekly change from our own snapshots next to the total, instead of a single flattering number.

Keep going