[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M717Z446VH9YFGVGPMAPAP3B":3,"skill-same:01M717Z446VH9YFGVGPMAPAP3B":57},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":31,"linkOnly":32,"markdownContent":33,"markdownBody":34,"frontMatter":35,"refName":37,"commitSha":38,"skillDirectory":39,"forksCount":14,"repositoryHtmlUrl":40,"repositoryHomepageUrl":6,"ownerHtmlUrl":41,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":42,"install":43,"resources":56},"01M717Z446VH9YFGVGPMAPAP3B","azure-mgmt-apimanagement-dotnet",null,"Azure Resource Manager SDK for API Management in .NET.","sapsapshen\u002Fai-memory-router","sapsapshen","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F20347959?v=4","01M6XDQEF1DP50DKF37H81J3J5","shenmian","01M6XDQEJPE41Y3DT2763X8ZJN",0,"MIT","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fazure-mgmt-apimanagement-dotnet\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30],"dotnet","azure","azure mgmt apimanagement dotnet","sdk","api","management","community","azure resource manager","manager","for","unknown","2026","2026-11-10 10:12:30",false,"---\nname: azure-mgmt-apimanagement-dotnet\ndescription: Azure Resource Manager SDK for API Management in .NET.\nrisk: unknown\nsource: community\ndate_added: '2026-02-27'\n---\n\n# Azure.ResourceManager.ApiManagement (.NET)\n\nManagement plane SDK for provisioning and managing Azure API Management resources via Azure Resource Manager.\n\n> **⚠️ Management vs Data Plane**\n> - **This SDK (Azure.ResourceManager.ApiManagement)**: Create services, APIs, products, subscriptions, policies, users, groups\n> - **Data Plane**: Direct API calls to your APIM gateway endpoints\n\n## Installation\n\n```bash\ndotnet add package Azure.ResourceManager.ApiManagement\ndotnet add package Azure.Identity\n```\n\n**Current Version**: v1.3.0\n\n## Environment Variables\n\n```bash\nAZURE_SUBSCRIPTION_ID=\u003Cyour-subscription-id>\n# For service principal auth (optional)\nAZURE_TENANT_ID=\u003Ctenant-id>\nAZURE_CLIENT_ID=\u003Cclient-id>\nAZURE_CLIENT_SECRET=\u003Cclient-secret>\n```\n\n## Authentication\n\n```csharp\nusing Azure.Identity;\nusing Azure.ResourceManager;\nusing Azure.ResourceManager.ApiManagement;\n\n\u002F\u002F Always use DefaultAzureCredential\nvar credential = new DefaultAzureCredential();\nvar armClient = new ArmClient(credential);\n\n\u002F\u002F Get subscription\nvar subscriptionId = Environment.GetEnvironmentVariable(\"AZURE_SUBSCRIPTION_ID\");\nvar subscription = armClient.GetSubscriptionResource(\n    new ResourceIdentifier($\"\u002Fsubscriptions\u002F{subscriptionId}\"));\n```\n\n## Resource Hierarchy\n\n```\nArmClient\n└── SubscriptionResource\n    └── ResourceGroupResource\n        └── ApiManagementServiceResource\n            ├── ApiResource\n            │   ├── ApiOperationResource\n            │   │   └── ApiOperationPolicyResource\n            │   ├── ApiPolicyResource\n            │   ├── ApiSchemaResource\n            │   └── ApiDiagnosticResource\n            ├── ApiManagementProductResource\n            │   ├── ProductApiResource\n            │   ├── ProductGroupResource\n            │   └── ProductPolicyResource\n            ├── ApiManagementSubscriptionResource\n            ├── ApiManagementPolicyResource\n            ├── ApiManagementUserResource\n            ├── ApiManagementGroupResource\n            ├── ApiManagementBackendResource\n            ├── ApiManagementGatewayResource\n            ├── ApiManagementCertificateResource\n            ├── ApiManagementNamedValueResource\n            └── ApiManagementLoggerResource\n```\n\n## Core Workflow\n\n### 1. Create API Management Service\n\n```csharp\nusing Azure.ResourceManager.ApiManagement;\nusing Azure.ResourceManager.ApiManagement.Models;\n\n\u002F\u002F Get resource group\nvar resourceGroup = await subscription\n    .GetResourceGroupAsync(\"my-resource-group\");\n\n\u002F\u002F Define service\nvar serviceData = new ApiManagementServiceData(\n    location: AzureLocation.EastUS,\n    sku: new ApiManagementServiceSkuProperties(\n        ApiManagementServiceSkuType.Developer, \n        capacity: 1),\n    publisherEmail: \"admin@contoso.com\",\n    publisherName: \"Contoso\");\n\n\u002F\u002F Create service (long-running operation - can take 30+ minutes)\nvar serviceCollection = resourceGroup.Value.GetApiManagementServices();\nvar operation = await serviceCollection.CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    \"my-apim-service\",\n    serviceData);\n\nApiManagementServiceResource service = operation.Value;\n```\n\n### 2. Create an API\n\n```csharp\nvar apiData = new ApiCreateOrUpdateContent\n{\n    DisplayName = \"My API\",\n    Path = \"myapi\",\n    Protocols = { ApiOperationInvokableProtocol.Https },\n    ServiceUri = new Uri(\"https:\u002F\u002Fbackend.contoso.com\u002Fapi\")\n};\n\nvar apiCollection = service.GetApis();\nvar apiOperation = await apiCollection.CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    \"my-api\",\n    apiData);\n\nApiResource api = apiOperation.Value;\n```\n\n### 3. Create a Product\n\n```csharp\nvar productData = new ApiManagementProductData\n{\n    DisplayName = \"Starter\",\n    Description = \"Starter tier with limited access\",\n    IsSubscriptionRequired = true,\n    IsApprovalRequired = false,\n    SubscriptionsLimit = 1,\n    State = ApiManagementProductState.Published\n};\n\nvar productCollection = service.GetApiManagementProducts();\nvar productOperation = await productCollection.CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    \"starter\",\n    productData);\n\nApiManagementProductResource product = productOperation.Value;\n\n\u002F\u002F Add API to product\nawait product.GetProductApis().CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    \"my-api\");\n```\n\n### 4. Create a Subscription\n\n```csharp\nvar subscriptionData = new ApiManagementSubscriptionCreateOrUpdateContent\n{\n    DisplayName = \"My Subscription\",\n    Scope = $\"\u002Fproducts\u002F{product.Data.Name}\",\n    State = ApiManagementSubscriptionState.Active\n};\n\nvar subscriptionCollection = service.GetApiManagementSubscriptions();\nvar subOperation = await subscriptionCollection.CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    \"my-subscription\",\n    subscriptionData);\n\nApiManagementSubscriptionResource subscription = subOperation.Value;\n\n\u002F\u002F Get subscription keys\nvar keys = await subscription.GetSecretsAsync();\nConsole.WriteLine($\"Primary Key: {keys.Value.PrimaryKey}\");\n```\n\n### 5. Set API Policy\n\n```csharp\nvar policyXml = @\"\n\u003Cpolicies>\n    \u003Cinbound>\n        \u003Crate-limit calls=\"\"100\"\" renewal-period=\"\"60\"\" \u002F>\n        \u003Cset-header name=\"\"X-Custom-Header\"\" exists-action=\"\"override\"\">\n            \u003Cvalue>CustomValue\u003C\u002Fvalue>\n        \u003C\u002Fset-header>\n        \u003Cbase \u002F>\n    \u003C\u002Finbound>\n    \u003Cbackend>\n        \u003Cbase \u002F>\n    \u003C\u002Fbackend>\n    \u003Coutbound>\n        \u003Cbase \u002F>\n    \u003C\u002Foutbound>\n    \u003Con-error>\n        \u003Cbase \u002F>\n    \u003C\u002Fon-error>\n\u003C\u002Fpolicies>\";\n\nvar policyData = new PolicyContractData\n{\n    Value = policyXml,\n    Format = PolicyContentFormat.Xml\n};\n\nawait api.GetApiPolicy().CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    policyData);\n```\n\n### 6. Backup and Restore\n\n```csharp\n\u002F\u002F Backup\nvar backupParams = new ApiManagementServiceBackupRestoreContent(\n    storageAccount: \"mystorageaccount\",\n    containerName: \"apim-backups\",\n    backupName: \"backup-2024-01-15\")\n{\n    AccessType = StorageAccountAccessType.SystemAssignedManagedIdentity\n};\n\nawait service.BackupAsync(WaitUntil.Completed, backupParams);\n\n\u002F\u002F Restore\nawait service.RestoreAsync(WaitUntil.Completed, backupParams);\n```\n\n## Key Types Reference\n\n| Type | Purpose |\n|------|---------|\n| `ArmClient` | Entry point for all ARM operations |\n| `ApiManagementServiceResource` | Represents an APIM service instance |\n| `ApiManagementServiceCollection` | Collection for service CRUD |\n| `ApiResource` | Represents an API |\n| `ApiManagementProductResource` | Represents a product |\n| `ApiManagementSubscriptionResource` | Represents a subscription |\n| `ApiManagementPolicyResource` | Service-level policy |\n| `ApiPolicyResource` | API-level policy |\n| `ApiManagementUserResource` | Represents a user |\n| `ApiManagementGroupResource` | Represents a group |\n| `ApiManagementBackendResource` | Represents a backend service |\n| `ApiManagementGatewayResource` | Represents a self-hosted gateway |\n\n## SKU Types\n\n| SKU | Purpose | Capacity |\n|-----|---------|----------|\n| `Developer` | Development\u002Ftesting (no SLA) | 1 |\n| `Basic` | Entry-level production | 1-2 |\n| `Standard` | Medium workloads | 1-4 |\n| `Premium` | High availability, multi-region | 1-12 per region |\n| `Consumption` | Serverless, pay-per-call | N\u002FA |\n\n## Best Practices\n\n1. **Use `WaitUntil.Completed`** for operations that must finish before proceeding\n2. **Use `WaitUntil.Started`** for long operations like service creation (30+ min)\n3. **Always use `DefaultAzureCredential`** — never hardcode keys\n4. **Handle `RequestFailedException`** for ARM API errors\n5. **Use `CreateOrUpdateAsync`** for idempotent operations\n6. **Navigate hierarchy** via `Get*` methods (e.g., `service.GetApis()`)\n7. **Policy format** — Use XML format for policies; JSON is also supported\n8. **Service creation** — Developer SKU is fastest for testing (~15-30 min)\n\n## Error Handling\n\n```csharp\nusing Azure;\n\ntry\n{\n    var operation = await serviceCollection.CreateOrUpdateAsync(\n        WaitUntil.Completed, serviceName, serviceData);\n}\ncatch (RequestFailedException ex) when (ex.Status == 409)\n{\n    Console.WriteLine(\"Service already exists\");\n}\ncatch (RequestFailedException ex) when (ex.Status == 400)\n{\n    Console.WriteLine($\"Bad request: {ex.Message}\");\n}\ncatch (RequestFailedException ex)\n{\n    Console.WriteLine($\"ARM Error: {ex.Status} - {ex.ErrorCode}: {ex.Message}\");\n}\n```\n\n## Reference Files\n\n| File | When to Read |\n|------|--------------|\n| references\u002Fservice-management.md | Service CRUD, SKUs, networking, backup\u002Frestore |\n| references\u002Fapis-operations.md | APIs, operations, schemas, versioning |\n| references\u002Fproducts-subscriptions.md | Products, subscriptions, access control |\n| references\u002Fpolicies.md | Policy XML patterns, scopes, common policies |\n\n## Related Resources\n\n| Resource | Purpose |\n|----------|---------|\n| [API Management Documentation](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fapi-management\u002F) | Official Azure docs |\n| [Policy Reference](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fapi-management\u002Fapi-management-policies) | Complete policy reference |\n| [SDK Reference](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fdotnet\u002Fapi\u002Fazure.resourcemanager.apimanagement) | .NET API reference |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n","# Azure.ResourceManager.ApiManagement (.NET)\n\nManagement plane SDK for provisioning and managing Azure API Management resources via Azure Resource Manager.\n\n> **⚠️ Management vs Data Plane**\n> - **This SDK (Azure.ResourceManager.ApiManagement)**: Create services, APIs, products, subscriptions, policies, users, groups\n> - **Data Plane**: Direct API calls to your APIM gateway endpoints\n\n## Installation\n\n```bash\ndotnet add package Azure.ResourceManager.ApiManagement\ndotnet add package Azure.Identity\n```\n\n**Current Version**: v1.3.0\n\n## Environment Variables\n\n```bash\nAZURE_SUBSCRIPTION_ID=\u003Cyour-subscription-id>\n# For service principal auth (optional)\nAZURE_TENANT_ID=\u003Ctenant-id>\nAZURE_CLIENT_ID=\u003Cclient-id>\nAZURE_CLIENT_SECRET=\u003Cclient-secret>\n```\n\n## Authentication\n\n```csharp\nusing Azure.Identity;\nusing Azure.ResourceManager;\nusing Azure.ResourceManager.ApiManagement;\n\n\u002F\u002F Always use DefaultAzureCredential\nvar credential = new DefaultAzureCredential();\nvar armClient = new ArmClient(credential);\n\n\u002F\u002F Get subscription\nvar subscriptionId = Environment.GetEnvironmentVariable(\"AZURE_SUBSCRIPTION_ID\");\nvar subscription = armClient.GetSubscriptionResource(\n    new ResourceIdentifier($\"\u002Fsubscriptions\u002F{subscriptionId}\"));\n```\n\n## Resource Hierarchy\n\n```\nArmClient\n└── SubscriptionResource\n    └── ResourceGroupResource\n        └── ApiManagementServiceResource\n            ├── ApiResource\n            │   ├── ApiOperationResource\n            │   │   └── ApiOperationPolicyResource\n            │   ├── ApiPolicyResource\n            │   ├── ApiSchemaResource\n            │   └── ApiDiagnosticResource\n            ├── ApiManagementProductResource\n            │   ├── ProductApiResource\n            │   ├── ProductGroupResource\n            │   └── ProductPolicyResource\n            ├── ApiManagementSubscriptionResource\n            ├── ApiManagementPolicyResource\n            ├── ApiManagementUserResource\n            ├── ApiManagementGroupResource\n            ├── ApiManagementBackendResource\n            ├── ApiManagementGatewayResource\n            ├── ApiManagementCertificateResource\n            ├── ApiManagementNamedValueResource\n            └── ApiManagementLoggerResource\n```\n\n## Core Workflow\n\n### 1. Create API Management Service\n\n```csharp\nusing Azure.ResourceManager.ApiManagement;\nusing Azure.ResourceManager.ApiManagement.Models;\n\n\u002F\u002F Get resource group\nvar resourceGroup = await subscription\n    .GetResourceGroupAsync(\"my-resource-group\");\n\n\u002F\u002F Define service\nvar serviceData = new ApiManagementServiceData(\n    location: AzureLocation.EastUS,\n    sku: new ApiManagementServiceSkuProperties(\n        ApiManagementServiceSkuType.Developer, \n        capacity: 1),\n    publisherEmail: \"admin@contoso.com\",\n    publisherName: \"Contoso\");\n\n\u002F\u002F Create service (long-running operation - can take 30+ minutes)\nvar serviceCollection = resourceGroup.Value.GetApiManagementServices();\nvar operation = await serviceCollection.CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    \"my-apim-service\",\n    serviceData);\n\nApiManagementServiceResource service = operation.Value;\n```\n\n### 2. Create an API\n\n```csharp\nvar apiData = new ApiCreateOrUpdateContent\n{\n    DisplayName = \"My API\",\n    Path = \"myapi\",\n    Protocols = { ApiOperationInvokableProtocol.Https },\n    ServiceUri = new Uri(\"https:\u002F\u002Fbackend.contoso.com\u002Fapi\")\n};\n\nvar apiCollection = service.GetApis();\nvar apiOperation = await apiCollection.CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    \"my-api\",\n    apiData);\n\nApiResource api = apiOperation.Value;\n```\n\n### 3. Create a Product\n\n```csharp\nvar productData = new ApiManagementProductData\n{\n    DisplayName = \"Starter\",\n    Description = \"Starter tier with limited access\",\n    IsSubscriptionRequired = true,\n    IsApprovalRequired = false,\n    SubscriptionsLimit = 1,\n    State = ApiManagementProductState.Published\n};\n\nvar productCollection = service.GetApiManagementProducts();\nvar productOperation = await productCollection.CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    \"starter\",\n    productData);\n\nApiManagementProductResource product = productOperation.Value;\n\n\u002F\u002F Add API to product\nawait product.GetProductApis().CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    \"my-api\");\n```\n\n### 4. Create a Subscription\n\n```csharp\nvar subscriptionData = new ApiManagementSubscriptionCreateOrUpdateContent\n{\n    DisplayName = \"My Subscription\",\n    Scope = $\"\u002Fproducts\u002F{product.Data.Name}\",\n    State = ApiManagementSubscriptionState.Active\n};\n\nvar subscriptionCollection = service.GetApiManagementSubscriptions();\nvar subOperation = await subscriptionCollection.CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    \"my-subscription\",\n    subscriptionData);\n\nApiManagementSubscriptionResource subscription = subOperation.Value;\n\n\u002F\u002F Get subscription keys\nvar keys = await subscription.GetSecretsAsync();\nConsole.WriteLine($\"Primary Key: {keys.Value.PrimaryKey}\");\n```\n\n### 5. Set API Policy\n\n```csharp\nvar policyXml = @\"\n\u003Cpolicies>\n    \u003Cinbound>\n        \u003Crate-limit calls=\"\"100\"\" renewal-period=\"\"60\"\" \u002F>\n        \u003Cset-header name=\"\"X-Custom-Header\"\" exists-action=\"\"override\"\">\n            \u003Cvalue>CustomValue\u003C\u002Fvalue>\n        \u003C\u002Fset-header>\n        \u003Cbase \u002F>\n    \u003C\u002Finbound>\n    \u003Cbackend>\n        \u003Cbase \u002F>\n    \u003C\u002Fbackend>\n    \u003Coutbound>\n        \u003Cbase \u002F>\n    \u003C\u002Foutbound>\n    \u003Con-error>\n        \u003Cbase \u002F>\n    \u003C\u002Fon-error>\n\u003C\u002Fpolicies>\";\n\nvar policyData = new PolicyContractData\n{\n    Value = policyXml,\n    Format = PolicyContentFormat.Xml\n};\n\nawait api.GetApiPolicy().CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    policyData);\n```\n\n### 6. Backup and Restore\n\n```csharp\n\u002F\u002F Backup\nvar backupParams = new ApiManagementServiceBackupRestoreContent(\n    storageAccount: \"mystorageaccount\",\n    containerName: \"apim-backups\",\n    backupName: \"backup-2024-01-15\")\n{\n    AccessType = StorageAccountAccessType.SystemAssignedManagedIdentity\n};\n\nawait service.BackupAsync(WaitUntil.Completed, backupParams);\n\n\u002F\u002F Restore\nawait service.RestoreAsync(WaitUntil.Completed, backupParams);\n```\n\n## Key Types Reference\n\n| Type | Purpose |\n|------|---------|\n| `ArmClient` | Entry point for all ARM operations |\n| `ApiManagementServiceResource` | Represents an APIM service instance |\n| `ApiManagementServiceCollection` | Collection for service CRUD |\n| `ApiResource` | Represents an API |\n| `ApiManagementProductResource` | Represents a product |\n| `ApiManagementSubscriptionResource` | Represents a subscription |\n| `ApiManagementPolicyResource` | Service-level policy |\n| `ApiPolicyResource` | API-level policy |\n| `ApiManagementUserResource` | Represents a user |\n| `ApiManagementGroupResource` | Represents a group |\n| `ApiManagementBackendResource` | Represents a backend service |\n| `ApiManagementGatewayResource` | Represents a self-hosted gateway |\n\n## SKU Types\n\n| SKU | Purpose | Capacity |\n|-----|---------|----------|\n| `Developer` | Development\u002Ftesting (no SLA) | 1 |\n| `Basic` | Entry-level production | 1-2 |\n| `Standard` | Medium workloads | 1-4 |\n| `Premium` | High availability, multi-region | 1-12 per region |\n| `Consumption` | Serverless, pay-per-call | N\u002FA |\n\n## Best Practices\n\n1. **Use `WaitUntil.Completed`** for operations that must finish before proceeding\n2. **Use `WaitUntil.Started`** for long operations like service creation (30+ min)\n3. **Always use `DefaultAzureCredential`** — never hardcode keys\n4. **Handle `RequestFailedException`** for ARM API errors\n5. **Use `CreateOrUpdateAsync`** for idempotent operations\n6. **Navigate hierarchy** via `Get*` methods (e.g., `service.GetApis()`)\n7. **Policy format** — Use XML format for policies; JSON is also supported\n8. **Service creation** — Developer SKU is fastest for testing (~15-30 min)\n\n## Error Handling\n\n```csharp\nusing Azure;\n\ntry\n{\n    var operation = await serviceCollection.CreateOrUpdateAsync(\n        WaitUntil.Completed, serviceName, serviceData);\n}\ncatch (RequestFailedException ex) when (ex.Status == 409)\n{\n    Console.WriteLine(\"Service already exists\");\n}\ncatch (RequestFailedException ex) when (ex.Status == 400)\n{\n    Console.WriteLine($\"Bad request: {ex.Message}\");\n}\ncatch (RequestFailedException ex)\n{\n    Console.WriteLine($\"ARM Error: {ex.Status} - {ex.ErrorCode}: {ex.Message}\");\n}\n```\n\n## Reference Files\n\n| File | When to Read |\n|------|--------------|\n| references\u002Fservice-management.md | Service CRUD, SKUs, networking, backup\u002Frestore |\n| references\u002Fapis-operations.md | APIs, operations, schemas, versioning |\n| references\u002Fproducts-subscriptions.md | Products, subscriptions, access control |\n| references\u002Fpolicies.md | Policy XML patterns, scopes, common policies |\n\n## Related Resources\n\n| Resource | Purpose |\n|----------|---------|\n| [API Management Documentation](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fapi-management\u002F) | Official Azure docs |\n| [Policy Reference](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fapi-management\u002Fapi-management-policies) | Complete policy reference |\n| [SDK Reference](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fdotnet\u002Fapi\u002Fazure.resourcemanager.apimanagement) | .NET API reference |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n",{"name":5,"risk":29,"source":25,"date_added":36,"description":7},"2026-02-27","main","7a38d8e7073e61c16eda85681cb32fb68a8657a5","skills-store\u002Fglobal\u002Fazure-mgmt-apimanagement-dotnet","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router","https:\u002F\u002Fgithub.com\u002Fsapsapshen","2026-04-14 21:12:12",{"source":8,"skillName":5,"commands":44,"prompt":54,"zipAvailable":55},[45,48,51],{"tool":46,"command":47},"npx","npx skills add sapsapshen\u002Fai-memory-router --skill azure-mgmt-apimanagement-dotnet",{"tool":49,"command":50},"bunx","bunx skills add sapsapshen\u002Fai-memory-router --skill azure-mgmt-apimanagement-dotnet",{"tool":52,"command":53},"pnpm","pnpm dlx skills add sapsapshen\u002Fai-memory-router --skill azure-mgmt-apimanagement-dotnet","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fglobal\u002Fazure-mgmt-apimanagement-dotnet\u002FSKILL.md",true,[],[58,82,107,117,130,149],{"skillNo":59,"name":60,"nameZh":6,"description":61,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":62,"categories":63,"keywords":69,"publishedAt":31},"01M71ATQRKG48SH06FQ697T5G9","wechat-search","Search WeChat Official Account articles using OpenClaw's web search and fetch capabilities with compliance-focused design.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fwechat-search-release\u002FSKILL.md",[64],{"categoryNo":65,"categoryName":66,"taxonomyType":67,"taxonomyTypeDesc":68},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[70,71,72,73,74,75,76,77,78,79,80,81],"wechat search","wechat","search","capabilities","openclaw","design","web search","compliance","web","official","fetch","with",{"skillNo":83,"name":84,"nameZh":6,"description":85,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":88,"publishedAt":31},"01M71ATNAVGZB35PFYM2GC5N00","trend-tap","Real-time trending topics aggregator across 7 platforms (X\u002FTwitter, Reddit, Google Trends, Hacker News, Zhihu, Bilibili, Weibo). Trigger: when user says 'trend', 'trends', 'trend tap', '热点', '热搜', or asks what is trending\u002Fhot. Do NOT use web_search — this skill already fetches live data from all platforms with zero API keys.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftrend-tap\u002FSKILL.md",[],[89,90,91,92,93,94,72,95,96,97,98,99,100,101,102,103,104,105,106,23],"trend","trend tap","tap","api keys","Bash","time","trending","hacker","aggregator","do","when","brew","live","data","google","install","read","across",{"skillNo":108,"name":109,"nameZh":6,"description":110,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":111,"categories":112,"keywords":113,"publishedAt":31},"01M71ATJ9AM5KM15AA8PS302EB","trend-radar","Real-time trending topics aggregator across 7 platforms (X\u002FTwitter, Reddit, Google Trends, Hacker News, Zhihu, Bilibili, Weibo). Trigger: when user says 'trend', 'trends', 'trend pulse', '热点', '热搜', or asks what is trending\u002Fhot. Do NOT use web_search — this skill already fetches live data from all platforms with zero API keys.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftrend-radar\u002FSKILL.md",[],[114,115,89,100,101,102,103,93,72,105,116,106,23,99,97,96,95,104,94,92],"trend radar","radar","pulse",{"skillNo":118,"name":119,"nameZh":6,"description":120,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":123,"publishedAt":31},"01M71ATGF095N3EJM9G8SD0BB5","tech-news-daily","每日科技新闻汇——从全球多个 RSS 源抓取最新科技新闻，翻译（英→中）、去重、排版成每日简报。当用户询问科技新闻、科技新鲜事、每日科技、技术动态、Daily Tech News 或类似表达时触发此技能。","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftech-news-daily\u002FSKILL.md",[],[124,125,126,127,128,129],"news","tech","tech news daily","daily","rss","翻译",{"skillNo":131,"name":132,"nameZh":6,"description":133,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":134,"categories":135,"keywords":141,"publishedAt":31},"01M71ATFAEAMQ17M70NQNY7SR8","summarize","Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fsummarize\u002FSKILL.md",[136],{"categoryNo":137,"categoryName":138,"taxonomyType":139,"taxonomyTypeDesc":140},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",[132,78,142,143,144,81,100,145,146,147,91,148,104],"Audio","cli","youtube","images","https","files","pdfs",{"skillNo":150,"name":151,"nameZh":6,"description":152,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":153,"categories":154,"keywords":155,"publishedAt":31},"01M71ATDNS3R0M4H936PACQAWZ","sonoscli","Control Sonos speakers (discover\u002Fstatus\u002Fplay\u002Fvolume\u002Fgroup).","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fsonoscli\u002FSKILL.md",[],[151,156,157,158,104,159,146,160,161,162,163,164],"status","play","go","latest","github","discover","control","cmd","volume"]