Agent Browser
davekilleen/Dex
Browser automation using Vercel's agent-browser CLI. An agent skill from davekilleen/Dex.
Tests OrchardCore CMS features through browser automation. An agent skill from OrchardCMS/OrchardCore.
$ npx skills add OrchardCMS/OrchardCore --skill orchardcore-tester -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install OrchardCMS/OrchardCore orchardcore-tester --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/OrchardCMS/OrchardCore.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/orchardcore-tester .claude/skills/orchardcore-tester && 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 "orchardcore-tester" agent skill from https://github.com/OrchardCMS/OrchardCore/tree/main/.agents/skills/orchardcore-tester into .claude/skills/orchardcore-tester/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "orchardcore-tester", 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/OrchardCMS/OrchardCore/tree/main/.agents/skills/orchardcore-testerType 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 OrchardCMS/OrchardCore --skill orchardcore-tester -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install OrchardCMS/OrchardCore orchardcore-tester --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OrchardCMS/OrchardCore.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/orchardcore-tester .agents/skills/orchardcore-tester && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "orchardcore-tester" agent skill from https://github.com/OrchardCMS/OrchardCore/tree/main/.agents/skills/orchardcore-tester into .agents/skills/orchardcore-tester/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "orchardcore-tester", 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 OrchardCMS/OrchardCore --skill orchardcore-tester -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install OrchardCMS/OrchardCore orchardcore-tester --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OrchardCMS/OrchardCore.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/orchardcore-tester .cursor/skills/orchardcore-tester && 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 "orchardcore-tester" agent skill from https://github.com/OrchardCMS/OrchardCore/tree/main/.agents/skills/orchardcore-tester into .cursor/skills/orchardcore-tester/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "orchardcore-tester", 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/OrchardCMS/OrchardCore.git --path .agents/skills/orchardcore-tester--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 OrchardCMS/OrchardCore --skill orchardcore-tester -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install OrchardCMS/OrchardCore orchardcore-tester --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OrchardCMS/OrchardCore.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/orchardcore-tester .gemini/skills/orchardcore-tester && 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 "orchardcore-tester" agent skill from https://github.com/OrchardCMS/OrchardCore/tree/main/.agents/skills/orchardcore-tester into .gemini/skills/orchardcore-tester/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "orchardcore-tester", 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 OrchardCMS/OrchardCore orchardcore-testerInstalls 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 OrchardCMS/OrchardCore --skill orchardcore-tester -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/OrchardCMS/OrchardCore.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/orchardcore-tester .github/skills/orchardcore-tester && 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 "orchardcore-tester" agent skill from https://github.com/OrchardCMS/OrchardCore/tree/main/.agents/skills/orchardcore-tester into .github/skills/orchardcore-tester/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "orchardcore-tester", 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 OrchardCMS/OrchardCore --skill orchardcore-tester -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install OrchardCMS/OrchardCore orchardcore-tester --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/OrchardCMS/OrchardCore.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/orchardcore-tester .opencode/skills/orchardcore-tester && 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 "orchardcore-tester" agent skill from https://github.com/OrchardCMS/OrchardCore/tree/main/.agents/skills/orchardcore-tester into .opencode/skills/orchardcore-tester/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "orchardcore-tester", 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.
orchardcore-testerTests OrchardCore CMS features through browser automation. An agent skill from OrchardCMS/OrchardCore.
Orchardcore Tester is an agent skill from OrchardCMS/OrchardCore. Tests OrchardCore CMS features through browser automation. Use when the user needs to build, run, setup, or test OrchardCore functionality including admin features, content management, media library, and module testing.
Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 7 other files, including reference files (for example `references/admin-navigation.md`, `references/autosetup.md` and `references/common-features.md`).
It sits in Productivity & Automation, covering Browser automation. It works with Playwright, Bash and .NET. The repository describes itself as: Orchard Core is an open-source modular and multi-tenant application framework built with ASP.NET Core, and a content management system (CMS) built on top of that framework. The licence is BSD-3-Clause.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit bfbe92f. 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:
dotnetcurlFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use curl, 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.
Orchardcore Tester loads about 2.6k tokens when it runs, and up to ~9.3k if it reads all its reference files. Until then it costs about 60 tokens; SKILL.md has 561 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.
The full file from OrchardCMS/OrchardCore at commit bfbe92f, republished under its BSD-3-Clause licence (© OrchardCMS). 561 words, ~2,637 tokens.
.claude/skills/orchardcore-tester/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.This skill guides you through testing OrchardCore CMS features using browser automation with playwright-cli.
playwright-cli skill available, with a browser engine installed.
On macOS (or any machine without Chrome) use webkit:playwright-cli --browser webkit install--browser webkit on the first open of a session. See
references/playwright-cli.md.The examples below show PowerShell and bash. The repo targets macOS/.NET 10; bash works everywhere. Use whichever matches your shell.
Testing an OrchardCore feature follows these steps:
# 1. build
dotnet build src/OrchardCore.Cms.Web -c Debug -f net10.0
# 2. fresh state + pick a port
rm -rf src/OrchardCore.Cms.Web/App_Data
PORT=$(( (RANDOM % 1000) + 5000 )); echo -n $PORT > .orchardcore-port
# 3. run with AutoSetup (provisions Default tenant on first request, no wizard)
cd src/OrchardCore.Cms.Web
OrchardCore__AutoSetup__AutoSetupPath= \
OrchardCore__AutoSetup__Tenants__0__ShellName=Default \
OrchardCore__AutoSetup__Tenants__0__SiteName=TestSite \
OrchardCore__AutoSetup__Tenants__0__SiteTimeZone=America/Los_Angeles \
OrchardCore__AutoSetup__Tenants__0__AdminUsername=admin \
OrchardCore__AutoSetup__Tenants__0__AdminEmail=admin@test.com \
OrchardCore__AutoSetup__Tenants__0__AdminPassword=Password1! \
OrchardCore__AutoSetup__Tenants__0__DatabaseProvider=Sqlite \
OrchardCore__AutoSetup__Tenants__0__RecipeName=Blog \
dotnet run -f net10.0 --no-build --urls "http://localhost:$PORT" > autosetup-console.log 2>&1 &
cd ../..
# 4. trigger + confirm
curl -s -o /dev/null "http://localhost:$PORT/"
grep -m1 "successfully provisioned" src/OrchardCore.Cms.Web/autosetup-console.logThen log in (see Step 4 — the login password field needs the native-setter
workaround). Full AutoSetup details and gotchas: references/autosetup.md.
dotnet build src/OrchardCore.Cms.Web/OrchardCore.Cms.Web.csproj -c Debug -f net10.0Since multiple agents may run OrchardCore from different worktrees simultaneously, use a random port and run in background.
# Check for existing port file, or generate random port (5000-5999)
$portFile = ".orchardcore-port"
if (Test-Path $portFile) {
$port = Get-Content $portFile
} else {
$port = Get-Random -Minimum 5000 -Maximum 6000
$port | Out-File $portFile -NoNewline
}
Write-Host "Using port: $port"# Start OrchardCore in background process
$proc = Start-Process dotnet `
-ArgumentList "run","-f","net10.0","--no-build","--urls","http://localhost:$port" `
-WorkingDirectory "src/OrchardCore.Cms.Web" `
-PassThru -NoNewWindow
# Save PID for later cleanup
$proc.Id | Out-File ".orchardcore-pid" -NoNewline
Write-Host "Started OrchardCore (PID: $($proc.Id)) on http://localhost:$port"# Poll until app responds (max 60 seconds)
$port = Get-Content ".orchardcore-port"
$timeout = 60; $elapsed = 0
while ($elapsed -lt $timeout) {
try {
$response = Invoke-WebRequest -Uri "http://localhost:$port" -UseBasicParsing -TimeoutSec 2
Write-Host "Application ready at http://localhost:$port"
break
} catch {
Start-Sleep -Seconds 2
$elapsed += 2
}
}# Stop the background process
if (Test-Path ".orchardcore-pid") {
$pid = Get-Content ".orchardcore-pid"
Stop-Process -Id $pid -Force -ErrorAction SilentlyContinue
Remove-Item ".orchardcore-pid" -Force
Write-Host "Stopped OrchardCore (PID: $pid)"
}# bash: find the process actually listening on the port and kill it.
# (Backgrounding dotnet via a subshell makes $! unreliable, so resolve by port.)
PORT=$(cat .orchardcore-port)
PID=$(lsof -ti tcp:$PORT -sTCP:LISTEN | head -1)
[ -n "$PID" ] && kill "$PID" && echo "Stopped OrchardCore (PID: $PID)"
rm -f .orchardcore-pidA fresh App_Data is uninitialized, so the site must be provisioned. There are
two paths.
Provision the Default tenant from configuration on first request — no
browser, no wizard. OrchardCore.Cms.Web already wires AutoSetup in
(Program.cs → .AddSetupFeatures("OrchardCore.AutoSetup")); you just supply
env vars when starting the app (see the TL;DR above, or run them inline with
dotnet run from Step 2).
Key rules (full details in references/autosetup.md):
OrchardCore__AutoSetup__Tenants__0__<Option> — __ is the
separator between each level of the OrchardCore:AutoSetup section.SiteTimeZone is required (e.g. America/Los_Angeles).Confirm success with the log line:
The AutoSetup successfully provisioned the site 'TestSite'.grep -m1 "successfully provisioned" src/OrchardCore.Cms.Web/autosetup-console.logStart the app without AutoSetup env vars, then drive the wizard with
playwright-cli. The plain inputs (Site Name, User Name, Email) fill normally,
but the password and confirmation fields cannot be filled with fill/type
— use the native-setter eval workaround. Full step-by-step:
references/setup-wizard.md. Quick shape:
PORT=$(cat .orchardcore-port)
playwright-cli --browser webkit open "http://localhost:$PORT/"
playwright-cli snapshot
# fill <sitename>, <username>, <email>; pick Blog from the recipe dropdown
# set passwords via native setter (see below / setup-wizard.md), then click Finish SetupReset for fresh setup:
rm -rf src/OrchardCore.Cms.Web/App_DataRemove-Item -Recurse -Force src/OrchardCore.Cms.Web/App_DataImportant: Replace 5000 with the actual port from .orchardcore-port file.
The username fills normally, but the login password field
(input[name="LoginForm.Password"]) cannot be filled with fill/type — use
the native-setter eval (same limitation as the setup wizard; see
references/playwright-cli.md).
PORT=$(cat .orchardcore-port)
playwright-cli --browser webkit open "http://localhost:$PORT/Login"
playwright-cli snapshot # get the username/login-button refs
# username: plain fill works
playwright-cli fill <username-ref> "admin"
# password: fill is a no-op here — set it via the native setter + events
playwright-cli eval '((p)=>{var s=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"value").set; s.call(p,"Password1!"); p.dispatchEvent(new Event("input",{bubbles:true})); p.dispatchEvent(new Event("change",{bubbles:true})); return p.value.length})(document.querySelector("input[name=\"LoginForm.Password\"]"))'
# submit, then confirm /Admin loads (does NOT redirect back to /Login)
playwright-cli click <login-button-ref>
playwright-cli open "http://localhost:$PORT/Admin"
playwright-cli eval 'window.location.pathname' # -> "/Admin" when authenticatedThe
evalprints a benignresult is not a functionmessage (it returns a number); the value is still set — verify withplaywright-cli eval 'document.querySelector("input[name=\"LoginForm.Password\"]").value'.
Test Media Library:
playwright-cli open http://localhost:$port/Admin/Media
playwright-cli snapshotTest Content Creation:
playwright-cli open http://localhost:$port/Admin/Contents/ContentItems
playwright-cli snapshot
# Click New, select content type, fill fields, publishEnable a Feature:
playwright-cli open http://localhost:$port/Admin/Features
playwright-cli snapshot
# Search for feature, click EnableSee references/common-features.md for detailed workflows.
After each action:
# Check page state
playwright-cli snapshot
# Check for JavaScript errors
playwright-cli console error
# Verify page title
playwright-cli eval "document.title"Console output is not visible when running in background. Use log files instead:
# View last 50 lines of today's log
Get-Content "src/OrchardCore.Cms.Web/App_Data/logs/orchard-log-$(Get-Date -Format 'yyyy-MM-dd').log" -Tail 50
# Search for errors
Select-String -Path "src/OrchardCore.Cms.Web/App_Data/logs/orchard-log-$(Get-Date -Format 'yyyy-MM-dd').log" -Pattern "ERROR|Exception" -Context 2,5See references/debugging.md for more debugging techniques.
| Task | URL Path |
|---|---|
| Admin Dashboard | /Admin |
| Features | /Admin/Features |
| Content Items | /Admin/Contents/ContentItems |
| Media Library | /Admin/Media |
| Users | /Admin/Users/Index |
| Themes | /Admin/Themes |
| File | Purpose |
|---|---|
.orchardcore-port | Persisted port number for session |
.orchardcore-pid | Process ID for cleanup |
references/autosetup.md - Unattended AutoSetup (env-var recipe, gotchas, troubleshooting)references/playwright-cli.md - playwright-cli specifics: browser install, eval constraint, the password-field workaroundreferences/setup-wizard.md - Interactive browser setup wizard (with password workaround)references/admin-navigation.md - Admin URLs and UI patternsreferences/common-features.md - Feature-specific testing guidesreferences/debugging.md - Log files and troubleshootingAGENTS.md (repo root) - Build and development instructions© OrchardCMS, BSD-3-Clause. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 6 other files (references) in .agents/skills/orchardcore-tester of OrchardCMS/OrchardCore.
Open the folder on GitHubat commit bfbe92f
Orchardcore Tester 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 |
|---|---|---|---|---|---|---|
| Orchardcore Tester this skillOrchardCMS/OrchardCore | 8.2k | — | ~2.6k | Automated safety check: Pass | BSD-3-Clause | |
| Agent Browserdavekilleen/Dex | 494 | 1 repos | ~1.6k | Automated safety check: Pass | MIT | |
| Aspiremicrosoft/aspire.dev | 195 | 4 repos | ~1.1k | Automated safety check: Pass | MIT | |
| Dotnet Testingnovotnyllc/dotnet-artisan | 232 | — | ~972 | Automated safety check: Pass | MIT | |
| Skyvern Browser AutomationSkyvern-AI/skyvern | 23k | 1 repos | ~2.9k | Automated safety check: Pass | AGPL-3.0 | |
| CUAWright Web Task Automationmicrosoft/CUAWright | 6k | — | ~2k | Automated safety check: Notes | MIT |
davekilleen/Dex
Browser automation using Vercel's agent-browser CLI. An agent skill from davekilleen/Dex.
microsoft/aspire.dev
Orchestrates Aspire distributed applications using the Aspire CLI for running, debugging, and managing distributed apps.
novotnyllc/dotnet-artisan
Defines .NET test strategy and implementation patterns across xUnit v3 (Facts, Theories, fixtures, IAsyncLifetime), integration testing (WebApplicationFactory, Testcontainers), Aspire testing…
Skyvern-AI/skyvern
Picks the right Skyvern CLI command for a web task, from quick yes/no checks to reusable multi-page workflows, instead of falling back to plain page fetching.
microsoft/CUAWright
Solves web tasks by driving a local Playwright browser one bash command at a time, saving a reusable script, screenshots and an action log for each run.
minsight-ai-info/AI-Search-Hub
Run the AI Search Hub browser automation scripts for Yuanbao, LongCat, Doubao, Qwen, Gemini, Grok, and MiniMax.
OrchardCMS/OrchardCore
Produces narrated Orchard Core videos (feature walkthroughs, module overviews, pull request demos) with one unified look and specification - 1080p, Orchard Core logo, colors and fonts, the same…
OrchardCMS/OrchardCore
Creates and updates OrchardCore admin edit views using the ocat- CSS class conventions.
OrchardCMS/OrchardCore
Builds, watches, and manages frontend assets in OrchardCore.
OrchardCMS/OrchardCore
Creates and updates OrchardCore data migrations (DataMigration classes with CreateAsync/UpdateFromX).
OrchardCMS/OrchardCore
Controls how OrchardCore renders content — placement.json rules, display drivers, shapes, zones, alternates, and editor groupings (tabs/cards/columns).
OrchardCMS/OrchardCore
Authors OrchardCore documentation — MkDocs Material pages, module README docs, nav entries, admonitions, tabbed content, and redirects.
Works with
Categories
Tests OrchardCore CMS features through browser automation. An agent skill from OrchardCMS/OrchardCore. Orchardcore Tester is an agent skill from OrchardCMS/OrchardCore. Tests OrchardCore CMS features through browser automation.
Orchardcore Tester fits situations like: the user needs to build; test OrchardCore functionality including admin features; content management.
Run `npx skills add OrchardCMS/OrchardCore --skill orchardcore-tester -a claude-code`. Or copy the skill folder (.agents/skills/orchardcore-tester in OrchardCMS/OrchardCore) into .claude/skills/orchardcore-tester in your project. Claude Code loads it when a task matches its description.
Run `npx skills add OrchardCMS/OrchardCore --skill orchardcore-tester -a codex`. Or copy the skill folder (.agents/skills/orchardcore-tester in OrchardCMS/OrchardCore) into .agents/skills/orchardcore-tester 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 OrchardCMS/OrchardCore --skill orchardcore-tester -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/orchardcore-tester, .gemini/skills/orchardcore-tester, .github/skills/orchardcore-tester and .opencode/skills/orchardcore-tester in your project.
Going by SKILL.md and its folder, Orchardcore Tester needs the command-line tools its instructions call (dotnet and curl).
SKILL.md contains no URLs. Its commands use curl, 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.
Orchardcore Tester is published under the BSD-3-Clause licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.6k tokens (SKILL.md is roughly 11k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 6.6k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Orchardcore Tester: Agent Browser (davekilleen/Dex, 494 stars), Aspire (microsoft/aspire.dev, 195 stars), Dotnet Testing (novotnyllc/dotnet-artisan, 232 stars) and Skyvern Browser Automation (Skyvern-AI/skyvern, 23k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
OrchardCMS (a GitHub organization) maintains it in OrchardCMS/OrchardCore, which has 8,193 GitHub stars. The repository holds 17 skills in this directory. The repository was last updated on October 10, 2026.
Source: OrchardCMS/OrchardCore on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.