Playwright Migration
zebbern/claude-code-guide
Step-by-step migration guides for moving to Playwright from Cypress or Selenium/WebDriver — command mappings, architecture changes, and incremental adoption strategies.
Converts RStudio Python Selenium electron tests into TypeScript Playwright tests, checking each against a live RStudio before counting it as migrated.
$ npx skills add rstudio/rstudio --skill rstudio-migrate-tests-selenium-to-playwright -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install rstudio/rstudio rstudio-migrate-tests-selenium-to-playwright --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/rstudio/rstudio.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/rstudio-migrate-tests-selenium-to-playwright .claude/skills/rstudio-migrate-tests-selenium-to-playwright && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "rstudio-migrate-tests-selenium-to-playwright" agent skill from https://github.com/rstudio/rstudio/tree/main/.claude/skills/rstudio-migrate-tests-selenium-to-playwright into .claude/skills/rstudio-migrate-tests-selenium-to-playwright/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "rstudio-migrate-tests-selenium-to-playwright", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/rstudio/rstudio/tree/main/.claude/skills/rstudio-migrate-tests-selenium-to-playwrightType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add rstudio/rstudio --skill rstudio-migrate-tests-selenium-to-playwright -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install rstudio/rstudio rstudio-migrate-tests-selenium-to-playwright --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rstudio/rstudio.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/rstudio-migrate-tests-selenium-to-playwright .agents/skills/rstudio-migrate-tests-selenium-to-playwright && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "rstudio-migrate-tests-selenium-to-playwright" agent skill from https://github.com/rstudio/rstudio/tree/main/.claude/skills/rstudio-migrate-tests-selenium-to-playwright into .agents/skills/rstudio-migrate-tests-selenium-to-playwright/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "rstudio-migrate-tests-selenium-to-playwright", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add rstudio/rstudio --skill rstudio-migrate-tests-selenium-to-playwright -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install rstudio/rstudio rstudio-migrate-tests-selenium-to-playwright --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rstudio/rstudio.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/rstudio-migrate-tests-selenium-to-playwright .cursor/skills/rstudio-migrate-tests-selenium-to-playwright && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "rstudio-migrate-tests-selenium-to-playwright" agent skill from https://github.com/rstudio/rstudio/tree/main/.claude/skills/rstudio-migrate-tests-selenium-to-playwright into .cursor/skills/rstudio-migrate-tests-selenium-to-playwright/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "rstudio-migrate-tests-selenium-to-playwright", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/rstudio/rstudio.git --path .claude/skills/rstudio-migrate-tests-selenium-to-playwright--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add rstudio/rstudio --skill rstudio-migrate-tests-selenium-to-playwright -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install rstudio/rstudio rstudio-migrate-tests-selenium-to-playwright --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rstudio/rstudio.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/rstudio-migrate-tests-selenium-to-playwright .gemini/skills/rstudio-migrate-tests-selenium-to-playwright && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "rstudio-migrate-tests-selenium-to-playwright" agent skill from https://github.com/rstudio/rstudio/tree/main/.claude/skills/rstudio-migrate-tests-selenium-to-playwright into .gemini/skills/rstudio-migrate-tests-selenium-to-playwright/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "rstudio-migrate-tests-selenium-to-playwright", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install rstudio/rstudio rstudio-migrate-tests-selenium-to-playwrightInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add rstudio/rstudio --skill rstudio-migrate-tests-selenium-to-playwright -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/rstudio/rstudio.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/rstudio-migrate-tests-selenium-to-playwright .github/skills/rstudio-migrate-tests-selenium-to-playwright && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "rstudio-migrate-tests-selenium-to-playwright" agent skill from https://github.com/rstudio/rstudio/tree/main/.claude/skills/rstudio-migrate-tests-selenium-to-playwright into .github/skills/rstudio-migrate-tests-selenium-to-playwright/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "rstudio-migrate-tests-selenium-to-playwright", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add rstudio/rstudio --skill rstudio-migrate-tests-selenium-to-playwright -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install rstudio/rstudio rstudio-migrate-tests-selenium-to-playwright --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/rstudio/rstudio.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/rstudio-migrate-tests-selenium-to-playwright .opencode/skills/rstudio-migrate-tests-selenium-to-playwright && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "rstudio-migrate-tests-selenium-to-playwright" agent skill from https://github.com/rstudio/rstudio/tree/main/.claude/skills/rstudio-migrate-tests-selenium-to-playwright into .opencode/skills/rstudio-migrate-tests-selenium-to-playwright/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "rstudio-migrate-tests-selenium-to-playwright", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
rstudio-migrate-tests-selenium-to-playwrightConverts RStudio Python Selenium electron tests into TypeScript Playwright tests, checking each against a live RStudio before counting it as migrated.
The skill moves tests from the `electron-tests` folder of the Python automation repository to `rstudio/e2e/rstudio/tests/`. You give it a single file, a directory or a keyword. The agent reads the full Python source, checks the migration progress file so nothing is converted twice, then loads the Playwright creation and run skills and the suite README before writing anything.
Hard rules require tests to work on both Desktop and Server and on Windows, macOS and Linux through a unified fixture, using cross-platform shortcuts, platform guards or tags such as `@desktop_only`. Nothing may depend on Claude, so the tests run from a terminal, CI and GitHub Actions. A test counts as migrated only after it passes against a live RStudio instance; after up to 3 retries it is marked `test.fixme()` with a blocker note and tracked as Fixme, never reported as migrated.
10 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 22e5f6b. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
gitnpxghFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git, npx and gh, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
RStudio Selenium to Playwright Migration loads about 3.6k tokens when it runs. Until then it costs about 59 tokens; SKILL.md has 1,777 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
Its licence (Custom licence) doesn't allow us to republish the file, so here is its outline and opening line. It has 1,777 words (~3,558 tokens).
“Converts Python test files from rstudio-ide-automation/rstudio_server_pro/electron-tests/ to TypeScript/Playwright tests in rstudio/e2e/rstudio/tests/.”
Just SKILL.md in .claude/skills/rstudio-migrate-tests-selenium-to-playwright of rstudio/rstudio.
Open the folder on GitHubat commit 22e5f6b
RStudio Selenium to Playwright Migration next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| RStudio Selenium to Playwright Migration this skillrstudio/rstudio | 5.1k | — | ~3.6k | Automated safety check: Pass | Custom licence | |
| Playwright Migrationzebbern/claude-code-guide | 4.7k | 2 repos | ~187 | Automated safety check: Pass | MIT | |
| Cypress Automationpetrkindlmann/qa-skills | 170 | — | ~4.4k | Automated safety check: Pass | MIT | |
| Test Framework Migration Skillsickn33/agentic-awesome-skills | 47k | 1 repos | ~2.2k | Automated safety check: Pass | MIT | |
| Test Migrationpetrkindlmann/qa-skills | 170 | — | ~5.3k | Automated safety check: Pass | MIT | |
| Playwrightsecondsky/claude-skills | 227 | — | ~3.7k | Automated safety check: Notes | MIT |
zebbern/claude-code-guide
Step-by-step migration guides for moving to Playwright from Cypress or Selenium/WebDriver — command mappings, architecture changes, and incremental adoption strategies.
petrkindlmann/qa-skills
Build Cypress test suites in TypeScript: E2E tests, component tests, custom commands, cy.intercept network control, cy.session login, Cypress Cloud, and CI integration.
sickn33/agentic-awesome-skills
Migrates and converts test automation scripts between Selenium, Playwright, Puppeteer, and Cypress.
petrkindlmann/qa-skills
Migrate a test suite from one framework to another, incrementally and without losing coverage.
secondsky/claude-skills
Browser automation and E2E testing with Playwright. An agent skill from secondsky/claude-skills.
chendongqi/OPB-Skills
自动化测试助手 - 专业的测试自动化设计与实现专家。适用场景: (1) 自动化测试框架选型与搭建(Selenium/Cypress/Playwright/Appium) (2) 自动化测试脚本编写(Web/API/Mobile) (3) 测试数据管理与Mock设计 (4) CI/CD测试集成(Jenkins/GitLab CI/GitHub Actions) (5) Page…
rstudio/rstudio
Runs RStudio's Playwright end-to-end tests against the desktop app or a server build with the project's npm scripts, asking you which mode to use first.
rstudio/rstudio
Advances RStudio's pinned copilot-language-server dependency to a specified release, then uploads it to S3, verifies the install, and opens a PR.
rstudio/rstudio
Bumps the pinned Electron version across the RStudio repository, updating NEWS.md, package.json, the lockfile and the allowScripts entry.
rstudio/rstudio
Bumps the build-time and installed Node.js versions in the RStudio repository, uploads the binaries to S3, verifies the install and opens a PR.
rstudio/rstudio
Bumps the pinned Quarto version across the RStudio repository, mirrors the release to the rstudio-buildtools S3 bucket, verifies it and opens a PR, on macOS and Linux.
rstudio/rstudio
Gotchas and conventions for writing, reviewing and migrating RStudio's TypeScript Playwright tests under e2e/rstudio, beyond what the README covers.
Categories
Converts RStudio Python Selenium electron tests into TypeScript Playwright tests, checking each against a live RStudio before counting it as migrated. The skill moves tests from the `electron-tests` folder of the Python automation repository to `rstudio/e2e/rstudio/tests/`. You give it a single file, a directory or a keyword.
RStudio Selenium to Playwright Migration fits situations like: converting a Python Selenium test file to a Playwright TypeScript test; migrating every test in a directory such as GlobalPrefs; checking which electron tests are already converted or marked fixme; making a migrated test run on both RStudio Desktop and Server.
Run `npx skills add rstudio/rstudio --skill rstudio-migrate-tests-selenium-to-playwright -a claude-code`. Or copy the skill folder (.claude/skills/rstudio-migrate-tests-selenium-to-playwright in rstudio/rstudio) into .claude/skills/rstudio-migrate-tests-selenium-to-playwright in your project. Claude Code loads it when a task matches its description.
Run `npx skills add rstudio/rstudio --skill rstudio-migrate-tests-selenium-to-playwright -a codex`. Or copy the skill folder (.claude/skills/rstudio-migrate-tests-selenium-to-playwright in rstudio/rstudio) into .agents/skills/rstudio-migrate-tests-selenium-to-playwright in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add rstudio/rstudio --skill rstudio-migrate-tests-selenium-to-playwright -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/rstudio-migrate-tests-selenium-to-playwright, .gemini/skills/rstudio-migrate-tests-selenium-to-playwright, .github/skills/rstudio-migrate-tests-selenium-to-playwright and .opencode/skills/rstudio-migrate-tests-selenium-to-playwright in your project.
Going by SKILL.md and its folder, RStudio Selenium to Playwright Migration needs the command-line tools its instructions call (git, npx and gh). Our summary lists: A live RStudio Desktop or Server instance to run converted tests against; The `rstudio-create-playwright-tests` and `rstudio-run-playwright-tests` skills.
SKILL.md contains no URLs. Its commands use git, npx and gh, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
RStudio Selenium to Playwright Migration has a licence file (the repository's licence) that doesn't match a standard licence. Read it on GitHub before reusing the skill.
About 3.6k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with RStudio Selenium to Playwright Migration: Playwright Migration (zebbern/claude-code-guide, 4.7k stars), Cypress Automation (petrkindlmann/qa-skills, 170 stars), Test Framework Migration Skill (sickn33/agentic-awesome-skills, 47k stars) and Test Migration (petrkindlmann/qa-skills, 170 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
rstudio (a GitHub organization) maintains it in rstudio/rstudio, which has 5,082 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 9, 2026.
Source: rstudio/rstudio on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.