Official agent skill

Azure Resource Manager Playwright Dotnet

by microsoft in microsoft/skills

Azure Resource Manager SDK for Microsoft Playwright Testing in .NET.

OfficialMITAuto-check passedTesting & QA

Install Azure Resource Manager Playwright Dotnet

skills CLI
$ npx skills add microsoft/skills --skill azure-resource-manager-playwright-dotnet -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install microsoft/skills azure-resource-manager-playwright-dotnet --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/microsoft/skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.github/plugins/azure-sdk-dotnet/skills/azure-resource-manager-playwright-dotnet .claude/skills/azure-resource-manager-playwright-dotnet && rm -rf skills-src

Use ~/.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/

Facts

Skill name
azure-resource-manager-playwright-dotnet
GitHub stars
3.1k
Used in
5 other repos
Token cost
~2.6k tokens
SKILL.md length
312 words
Files
1
Skills in repo
150
Repo updated
First seen
Licence
MIT

At a glance

Azure Resource Manager SDK for Microsoft Playwright Testing in .NET.

  • Works in 7 steps: Create Playwright Workspace → Get Existing Workspace → List Workspaces → …
  • MANAGEMENT PLANE operations: creating/managing Playwright Testing workspaces
  • SKILL.md covers Installation, Environment Variables, Authentication and Resource Hierarchy, plus 9 more sections
  • Calls dotnet; reaches learn.microsoft.com; needs AZURE_TOKEN_CREDENTIALS and AZURE_CLIENT_SECRET

What it does

Azure Resource Manager Playwright Dotnet is an agent skill from microsoft/skills, published by the product's own GitHub organization. Azure Resource Manager SDK for Microsoft Playwright Testing in .NET. Use for MANAGEMENT PLANE operations: creating/managing Playwright Testing workspaces, checking name availability, and managing workspace quotas via Azure Resource Manager. NOT for running Playwright tests - use Azure.Developer.MicrosoftPlaywrightTesting.NUnit for that. Triggers: "Playwright workspace", "create Playwright Testing workspace", "manage Playwright resources", "ARM Playwright", "PlaywrightWorkspaceResource", "provision Playwright…

Its SKILL.md is about 2.6k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Testing & QA, covering Browser testing. It works with Playwright, Microsoft Azure and .NET. The repository describes itself as: Skills, MCP servers, Custom Agents, Agents.md for SDKs to ground Coding Agents. The licence is MIT.

When your agent uses it

  • MANAGEMENT PLANE operations: creating/managing Playwright Testing workspaces
  • Checking name availability
  • Managing workspace quotas via Azure Resource Manager

Example prompts

  • “Playwright workspace”
  • “create Playwright Testing workspace”
  • “manage Playwright resources”
  • “/azure-resource-manager-playwright-dotnet”

Requirements

  • A credential in AZURE_CLIENT_SECRET

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Create Playwright Workspace
  2. Get Existing Workspace
  3. List Workspaces
  4. Update Workspace
  5. Check Name Availability
  6. Get Quota Information
  7. Delete Workspace

What it can do on your machine

Read from SKILL.md and the folder at commit 3898ec8. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • dotnet

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Hosts in commands or code, which the agent is likely to contact:

    • learn.microsoft.com

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • AZURE_TOKEN_CREDENTIALS
    • AZURE_CLIENT_SECRET

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Azure Resource Manager Playwright Dotnet loads about 2.6k tokens when it runs. Until then it costs about 141 tokens; SKILL.md has 312 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~141
When it runs · the whole SKILL.md, loaded when a task matches
~2.6k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from microsoft/skills at commit 3898ec8, republished under its MIT licence (© microsoft). 312 words, ~2,626 tokens.

Download SKILL.mdSave it as .claude/skills/azure-resource-manager-playwright-dotnet/SKILL.md (or your agent's skills folder).
name
azure-resource-manager-playwright-dotnet
description
Azure Resource Manager SDK for Microsoft Playwright Testing in .NET. Use for MANAGEMENT PLANE operations: creating/managing Playwright Testing workspaces, checking name availability, and managing workspace quotas via Azure Resource Manager. NOT for running Playwright tests - use Azure.Developer.MicrosoftPlaywrightTesting.NUnit for that. Triggers: "Playwright workspace", "create Playwright Testing workspace", "manage Playwright resources", "ARM Playwright", "PlaywrightWorkspaceResource", "provision Playwright Testing".
license
MIT
metadata.author
Microsoft
metadata.version
1.0.0
metadata.package
Azure.ResourceManager.Playwright

Azure.ResourceManager.Playwright (.NET)

Management plane SDK for provisioning and managing Microsoft Playwright Testing workspaces via Azure Resource Manager.

⚠️ Management vs Test Execution

  • This SDK (Azure.ResourceManager.Playwright): Create workspaces, manage quotas, check name availability
  • Test Execution SDK (Azure.Developer.MicrosoftPlaywrightTesting.NUnit): Run Playwright tests at scale on cloud browsers

Installation

bash
dotnet add package Azure.ResourceManager.Playwright
dotnet add package Azure.Identity

Current Versions: Stable v1.0.0, Preview v1.0.0-beta.1

Environment Variables

bash
AZURE_SUBSCRIPTION_ID=<your-subscription-id>  # Required: Azure subscription ID
AZURE_TOKEN_CREDENTIALS=prod  # Required only if DefaultAzureCredential is used in production
AZURE_TENANT_ID=<tenant-id>  # For service principal auth (optional)
AZURE_CLIENT_ID=<client-id>  # For service principal auth (optional)
AZURE_CLIENT_SECRET=<client-secret>  # For service principal auth (optional)

Authentication

csharp
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.Playwright;

// Local dev: DefaultAzureCredential. Production: set AZURE_TOKEN_CREDENTIALS=prod or AZURE_TOKEN_CREDENTIALS=<specific_credential>
var credential = new DefaultAzureCredential(
    DefaultAzureCredential.DefaultEnvironmentVariableName
);
// Or use a specific credential directly in production:
// See https://learn.microsoft.com/dotnet/api/overview/azure/identity-readme?view=azure-dotnet#credential-classes
// var credential = new ManagedIdentityCredential();
var armClient = new ArmClient(credential);

// Get subscription
var subscriptionId = Environment.GetEnvironmentVariable("AZURE_SUBSCRIPTION_ID");
var subscription = armClient.GetSubscriptionResource(
    new ResourceIdentifier($"/subscriptions/{subscriptionId}"));

Resource Hierarchy

ArmClient
└── SubscriptionResource
    ├── PlaywrightQuotaResource (subscription-level quotas)
    └── ResourceGroupResource
        └── PlaywrightWorkspaceResource
            └── PlaywrightWorkspaceQuotaResource (workspace-level quotas)

Core Workflow

1. Create Playwright Workspace
csharp
using Azure.ResourceManager.Playwright;
using Azure.ResourceManager.Playwright.Models;

// Get resource group
var resourceGroup = await subscription
    .GetResourceGroupAsync("my-resource-group");

// Define workspace
var workspaceData = new PlaywrightWorkspaceData(AzureLocation.WestUS3)
{
    // Optional: Configure regional affinity and local auth
    RegionalAffinity = PlaywrightRegionalAffinity.Enabled,
    LocalAuth = PlaywrightLocalAuth.Enabled,
    Tags =
    {
        ["Team"] = "Dev Exp",
        ["Environment"] = "Production"
    }
};

// Create workspace (long-running operation)
var workspaceCollection = resourceGroup.Value.GetPlaywrightWorkspaces();
var operation = await workspaceCollection.CreateOrUpdateAsync(
    WaitUntil.Completed,
    "my-playwright-workspace",
    workspaceData);

PlaywrightWorkspaceResource workspace = operation.Value;

// Get the data plane URI for running tests
Console.WriteLine($"Data Plane URI: {workspace.Data.DataplaneUri}");
Console.WriteLine($"Workspace ID: {workspace.Data.WorkspaceId}");
2. Get Existing Workspace
csharp
// Get by name
var workspace = await workspaceCollection.GetAsync("my-playwright-workspace");

// Or check if exists first
bool exists = await workspaceCollection.ExistsAsync("my-playwright-workspace");
if (exists)
{
    var existingWorkspace = await workspaceCollection.GetAsync("my-playwright-workspace");
    Console.WriteLine($"Workspace found: {existingWorkspace.Value.Data.Name}");
}
3. List Workspaces
csharp
// List in resource group
await foreach (var workspace in workspaceCollection.GetAllAsync())
{
    Console.WriteLine($"Workspace: {workspace.Data.Name}");
    Console.WriteLine($"  Location: {workspace.Data.Location}");
    Console.WriteLine($"  State: {workspace.Data.ProvisioningState}");
    Console.WriteLine($"  Data Plane URI: {workspace.Data.DataplaneUri}");
}

// List across subscription
await foreach (var workspace in subscription.GetPlaywrightWorkspacesAsync())
{
    Console.WriteLine($"Workspace: {workspace.Data.Name}");
}
4. Update Workspace
csharp
var patch = new PlaywrightWorkspacePatch
{
    Tags =
    {
        ["Team"] = "Dev Exp",
        ["Environment"] = "Staging",
        ["UpdatedAt"] = DateTime.UtcNow.ToString("o")
    }
};

var updatedWorkspace = await workspace.Value.UpdateAsync(patch);
5. Check Name Availability
csharp
using Azure.ResourceManager.Playwright.Models;

var checkRequest = new PlaywrightCheckNameAvailabilityContent
{
    Name = "my-new-workspace",
    ResourceType = "Microsoft.LoadTestService/playwrightWorkspaces"
};

var result = await subscription.CheckPlaywrightNameAvailabilityAsync(checkRequest);

if (result.Value.IsNameAvailable == true)
{
    Console.WriteLine("Name is available!");
}
else
{
    Console.WriteLine($"Name unavailable: {result.Value.Message}");
    Console.WriteLine($"Reason: {result.Value.Reason}");
}
6. Get Quota Information
csharp
// Subscription-level quotas
await foreach (var quota in subscription.GetPlaywrightQuotasAsync(AzureLocation.WestUS3))
{
    Console.WriteLine($"Quota: {quota.Data.Name}");
    Console.WriteLine($"  Limit: {quota.Data.Limit}");
    Console.WriteLine($"  Used: {quota.Data.Used}");
}

// Workspace-level quotas
var workspaceQuotas = workspace.Value.GetAllPlaywrightWorkspaceQuota();
await foreach (var quota in workspaceQuotas.GetAllAsync())
{
    Console.WriteLine($"Workspace Quota: {quota.Data.Name}");
}
7. Delete Workspace
csharp
// Delete (long-running operation)
await workspace.Value.DeleteAsync(WaitUntil.Completed);

Key Types Reference

TypePurpose
ArmClientEntry point for all ARM operations
PlaywrightWorkspaceResourceRepresents a Playwright Testing workspace
PlaywrightWorkspaceCollectionCollection for workspace CRUD
PlaywrightWorkspaceDataWorkspace creation/response payload
PlaywrightWorkspacePatchWorkspace update payload
PlaywrightQuotaResourceSubscription-level quota information
PlaywrightWorkspaceQuotaResourceWorkspace-level quota information
PlaywrightExtensionsExtension methods for ARM resources
PlaywrightCheckNameAvailabilityContentName availability check request

Workspace Properties

PropertyDescription
DataplaneUriURI for running tests (e.g., https://api.dataplane.{guid}.domain.com)
WorkspaceIdUnique workspace identifier (GUID)
RegionalAffinityEnable/disable regional affinity for test execution
LocalAuthEnable/disable local authentication (access tokens)
ProvisioningStateCurrent provisioning state (Succeeded, Failed, etc.)

Best Practices

  1. Use WaitUntil.Completed for operations that must finish before proceeding
  2. Use WaitUntil.Started when you want to poll manually or run operations in parallel
  3. Always use DefaultAzureCredential — never hardcode keys
  4. Handle RequestFailedException for ARM API errors
  5. Use CreateOrUpdateAsync for idempotent operations
  6. Navigate hierarchy via Get* methods (e.g., resourceGroup.GetPlaywrightWorkspaces())
  7. Store the DataplaneUri after workspace creation for test execution configuration

Error Handling

csharp
using Azure;

try
{
    var operation = await workspaceCollection.CreateOrUpdateAsync(
        WaitUntil.Completed, workspaceName, workspaceData);
}
catch (RequestFailedException ex) when (ex.Status == 409)
{
    Console.WriteLine("Workspace already exists");
}
catch (RequestFailedException ex) when (ex.Status == 400)
{
    Console.WriteLine($"Bad request: {ex.Message}");
}
catch (RequestFailedException ex)
{
    Console.WriteLine($"ARM Error: {ex.Status} - {ex.ErrorCode}: {ex.Message}");
}

Integration with Test Execution

After creating a workspace, use the DataplaneUri to configure your Playwright tests:

csharp
// 1. Create workspace (this SDK)
var workspace = await workspaceCollection.CreateOrUpdateAsync(
    WaitUntil.Completed, "my-workspace", workspaceData);

// 2. Get the service URL
var serviceUrl = workspace.Value.Data.DataplaneUri;

// 3. Set environment variable for test execution
Environment.SetEnvironmentVariable("PLAYWRIGHT_SERVICE_URL", serviceUrl.ToString());

// 4. Run tests using Azure.Developer.MicrosoftPlaywrightTesting.NUnit
// (separate package for test execution)
SDKPurposeInstall
Azure.ResourceManager.PlaywrightManagement plane (this SDK)dotnet add package Azure.ResourceManager.Playwright
Azure.Developer.MicrosoftPlaywrightTesting.NUnitRun NUnit Playwright tests at scaledotnet add package Azure.Developer.MicrosoftPlaywrightTesting.NUnit --prerelease
Azure.Developer.PlaywrightPlaywright client librarydotnet add package Azure.Developer.Playwright

API Information

  • Resource Provider: Microsoft.LoadTestService
  • Default API Version: 2025-09-01
  • Resource Type: Microsoft.LoadTestService/playwrightWorkspaces

© microsoft, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .github/plugins/azure-sdk-dotnet/skills/azure-resource-manager-playwright-dotnet of microsoft/skills.

Open the folder on GitHubat commit 3898ec8

Used in 5 other repositories

We found 14 copies of this SKILL.md (exact, near-identical or edited) in other folders, from 5 other GitHub owners. This page covers the copy in microsoft/skills, which our catalogue first saw on October 7, 2026.

Compare with similar skills

Azure Resource Manager Playwright Dotnet 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.

Azure Resource Manager Playwright Dotnet compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Azure Resource Manager Playwright Dotnet this skillmicrosoft/skills3.1k5 repos~2.6kAutomated safety check: PassMIT
Playwright Rollmicrosoft/playwright-dotnet3k—~1.9kAutomated safety check: PassMIT
AspireSSWConsulting/SSW.VerticalSliceArchitecture4071 repos~2kAutomated safety check: PassMIT
Dev ServerAzure/cosmos-explorer131—~1.6kAutomated safety check: PassMIT
QA TesterJocysCom/FocusLogger213—~12kAutomated safety check: PassGPL-3.0
Playwright E2E Authoringfmflurry/settings-opencode171—~2.4kAutomated safety check: PassMIT

Similar skills

  • Playwright Roll

    microsoft/playwright-dotnet

    Official

    Roll Playwright .NET to a new version

    3k GitHub stars~1.9k tokensUpdated today
    Testing & QAAuto-check passed
  • Aspire

    SSWConsulting/SSW.VerticalSliceArchitecture

    A skill your agent uses when the user is working with an Aspire distributed application and needs to operate the AppHost or its resources through the Aspire CLI: start, restart, stop, or wait on the…

    407 GitHub starsUsed in 1 repo~2k tokens
    Testing & QAAuto-check passed
  • Dev Server

    Azure/cosmos-explorer

    Official

    Start the local webpack dev server and connect to it with the Playwright browser.

    131 GitHub stars~1.6k tokensUpdated yesterday
    Testing & QAAuto-check passed
  • QA Tester

    JocysCom/FocusLogger

    Create and maintain automated tests in Microsoft-native/.NET projects with a minimal stack — MSTest runner, System.Windows.Automation for Windows desktop, Playwright for real browser smoke.

    213 GitHub stars~12k tokensUpdated 3 mo ago
    Testing & QAAuto-check passed
  • Playwright E2E Authoring

    fmflurry/settings-opencode

    Scaffold and extend Playwright E2E tests for the gc.platform suite (tests/playwright), wiring every artifact to the real frontend (localhost:4200) + real .NET backend — never mocks.

    171 GitHub stars~2.4k tokensUpdated 2 days ago
    Testing & QAAuto-check passed
  • Dotnet Testing

    novotnyllc/dotnet-artisan

    Defines .NET test strategy and implementation patterns across xUnit v3 (Facts, Theories, fixtures, IAsyncLifetime), integration testing (WebApplicationFactory, Testcontainers), Aspire testing…

    233 GitHub stars~972 tokensUpdated yesterday
    Testing & QAAuto-check passed

More from microsoft/skills

All 150 skills in this repo
  • Official

    Covers producer, consumer, and checkpoint-store setup for Azure Event Hubs streaming in Python, with Entra ID auth and partition targeting.

    3.1k GitHub starsUsed in 1 repo~2.3k tokens
    Auto-check passed
  • Official

    Builds podcast-style audio narration from text with Azure OpenAI's GPT Realtime Mini over WebSocket, from a Python FastAPI backend to a React player.

    3.1k GitHub starsUsed in 1 repo~947 tokens
    Auto-check passed
  • Frontend UI Dark TS

    microsoft/skills

    Official

    Build dark-themed React applications using Tailwind CSS with custom theming, glassmorphism effects, and Framer Motion animations.

    3.1k GitHub starsUsed in 5 repos~3.6k tokens
    Auto-check passed
  • Pydantic Models Py

    microsoft/skills

    Official

    Create Pydantic models following the multi-model pattern with Base, Create, Update, Response, and InDB variants.

    3.1k GitHub starsUsed in 5 repos~496 tokens
    Auto-check passed
  • Official

    Reference for building on Microsoft Foundry with the azure-ai-projects Python SDK: project clients, versioned agents, evaluations, connections, datasets and indexes.

    3.1k GitHub stars~2.8k tokensUpdated today
    Auto-check passed
  • Skill Creator

    microsoft/skills

    Official

    Guide for creating effective skills for AI coding agents working with Azure SDKs and Microsoft Foundry services.

    3.1k GitHub starsUsed in 5 repos~17k tokens
    Auto-check passed

Categories

Questions about Azure Resource Manager Playwright Dotnet

What does Azure Resource Manager Playwright Dotnet do?

Azure Resource Manager SDK for Microsoft Playwright Testing in .NET. Azure Resource Manager Playwright Dotnet is an agent skill from microsoft/skills, published by the product's own GitHub organization.NET.

When should I use Azure Resource Manager Playwright Dotnet?

Azure Resource Manager Playwright Dotnet fits situations like: MANAGEMENT PLANE operations: creating/managing Playwright Testing workspaces; checking name availability; managing workspace quotas via Azure Resource Manager.

How do I install Azure Resource Manager Playwright Dotnet in Claude Code?

Run `npx skills add microsoft/skills --skill azure-resource-manager-playwright-dotnet -a claude-code`. Or copy the skill folder (.github/plugins/azure-sdk-dotnet/skills/azure-resource-manager-playwright-dotnet in microsoft/skills) into .claude/skills/azure-resource-manager-playwright-dotnet in your project. Claude Code loads it when a task matches its description.

How do I install Azure Resource Manager Playwright Dotnet in Codex?

Run `npx skills add microsoft/skills --skill azure-resource-manager-playwright-dotnet -a codex`. Or copy the skill folder (.github/plugins/azure-sdk-dotnet/skills/azure-resource-manager-playwright-dotnet in microsoft/skills) into .agents/skills/azure-resource-manager-playwright-dotnet in your project. Codex loads it when a task matches its description.

Can I use Azure Resource Manager Playwright Dotnet in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add microsoft/skills --skill azure-resource-manager-playwright-dotnet -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/azure-resource-manager-playwright-dotnet, .gemini/skills/azure-resource-manager-playwright-dotnet, .github/skills/azure-resource-manager-playwright-dotnet and .opencode/skills/azure-resource-manager-playwright-dotnet in your project.

What does Azure Resource Manager Playwright Dotnet need to run?

Going by SKILL.md and its folder, Azure Resource Manager Playwright Dotnet needs the command-line tools its instructions call (dotnet) and credentials named AZURE_TOKEN_CREDENTIALS and AZURE_CLIENT_SECRET. Our summary lists: A credential in AZURE_CLIENT_SECRET.

Does Azure Resource Manager Playwright Dotnet access the network?

SKILL.md names 1 domain. In commands or code: learn.microsoft.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.

Is Azure Resource Manager Playwright Dotnet safe to install?

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.

What licence does Azure Resource Manager Playwright Dotnet use?

Azure Resource Manager Playwright Dotnet is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Azure Resource Manager Playwright Dotnet use?

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.

What are the alternatives to Azure Resource Manager Playwright Dotnet?

Skills that share tags, products or a category with Azure Resource Manager Playwright Dotnet: Playwright Roll (microsoft/playwright-dotnet, 3k stars), Aspire (SSWConsulting/SSW.VerticalSliceArchitecture, 407 stars), Dev Server (Azure/cosmos-explorer, 131 stars) and QA Tester (JocysCom/FocusLogger, 213 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Azure Resource Manager Playwright Dotnet?

microsoft (a GitHub organization, an official publisher) maintains it in microsoft/skills, which has 3,094 GitHub stars. The repository holds 150 skills in this directory. The repository was last updated on October 9, 2026.

Source: microsoft/skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.