{"id":"c49b9f5e-2cd1-4e3b-a6d0-fe243bcc176b","entityType":"agent","slug":"clawhub-oomol-oo-cloudflare-r2","name":"Cloudflare R2","canonicalUrl":"https://www.xpersona.co/agent/clawhub-oomol-oo-cloudflare-r2","canonicalPath":"/agent/clawhub-oomol-oo-cloudflare-r2","generatedAt":"2026-10-11T03:54:54.226Z","source":"CLAWHUB","claimStatus":"UNCLAIMED","verificationTier":"NONE","summary":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T00:19:06.054Z","emptyReason":null},"description":"Cloudflare R2 (cloudflare.com). Use this skill for ANY Cloudflare R2 request — reading, creating, updating, and deleting data. Whenever a task involves Cloudflare R2, use this skill instead of calling the API directly.","descriptionLabel":"Source description","evidenceSummary":"Capability contract not published. No trust telemetry is available yet. 1.2K downloads reported by the source. Last updated 10/11/2026.","installCommand":"clawhub skill install s1790xw8jww1c6hgm8aqy9q25187t1rg:oo-cloudflare-r2","sourceUrl":"https://clawhub.ai/oomol/oo-cloudflare-r2","homepage":"https://clawhub.ai/oomol/skills/oo-cloudflare-r2","primaryLinks":[{"label":"View on ClawHub","url":"https://clawhub.ai/oomol/oo-cloudflare-r2","kind":"source"},{"label":"Homepage","url":"https://clawhub.ai/oomol/skills/oo-cloudflare-r2","kind":"homepage"}],"safetyScore":84,"overallRank":62,"popularityScore":62,"trustScore":null,"claimedByName":null,"isOwner":false,"seoDescription":"Cloudflare R2 technical dossier on Xpersona with agent coverage, OPENCLEW support, and live trust metadata."},"coverage":{"evidence":{"source":"public-profile","verified":false,"confidence":"medium","updatedAt":"2026-10-11T00:19:06.054Z","emptyReason":null},"protocols":[{"protocol":"OPENCLEW","label":"OpenClaw","status":"self-declared","notes":"Declared in the public agent profile."}],"capabilities":[],"verifiedCount":0,"selfDeclaredCount":1,"capabilityMatrix":{"rows":[{"key":"OPENCLEW","type":"protocol","support":"unknown","confidenceSource":"profile","notes":"Listed on profile"}],"flattenedTokens":"protocol:OPENCLEW|unknown|profile"}},"adoption":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T00:19:06.054Z","emptyReason":null},"stars":null,"forks":null,"downloads":1221,"packageName":null,"latestVersion":"1.0.10","tractionLabel":"1.2K downloads"},"release":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T00:19:05.996Z","emptyReason":null},"lastUpdatedAt":"2026-10-11T00:19:06.054Z","lastCrawledAt":"2026-10-11T00:19:05.996Z","lastIndexedAt":null,"nextCrawlAt":"2026-10-12T00:19:05.996Z","lastVerifiedAt":null,"highlights":[{"version":"1.0.10","createdAt":"2026-09-20T03:12:28.203Z","changelog":"- Operate Cloudflare R2 through the OOMOL-connected `oo` CLI. - Inspect live action schemas before running requests. - Manage buckets, objects, domains, lifecycle, CORS, locks, metrics, and notifications. - Support uploads, downloads, presigned URLs, temporary credentials, Sippy, and background jobs. - Require confirmation for write and destructive operations. Source: `oomol-lab/skills@792ad44`","fileCount":3,"zipByteSize":4403},{"version":"1.0.9","createdAt":"2026-09-15T05:52:28.606Z","changelog":"- Operate Cloudflare R2 through the OOMOL-connected `oo` CLI without handling raw credentials. - Inspect live action schemas before building requests and run actions with validated JSON payloads. - Manage buckets, objects, domains, lifecycle, CORS, object lock, local uploads, Sippy, and event notifications. - Retrieve account metrics, bucket details, object listings, job status, managed domains, and pre-signed URLs. - Apply confirmation safeguards for state-changing and destructive operations. Source: `oomol-lab/skills@75bac03`","fileCount":3,"zipByteSize":4589},{"version":"1.0.7","createdAt":"2026-09-08T02:20:35.818Z","changelog":"- Cloudflare R2 skill for managing buckets, objects, and account-level storage via the OOMOL-connected `cloudflare_r2` connector. - Uses the `oo` CLI to inspect each action’s live schema first, then run the matching connector call with JSON payloads. - Supports core read flows like listing accounts, buckets, objects, metrics, jobs, CORS, lifecycle, lock, domains, and Sippy status. - Supports write operations for creating, updating, and configuring buckets, objects, custom domains, notifications, local uploads, and access settings. - Includes presigned URL generation and temporary access credential workflows for controlled direct access to R2 data. - Separates safe reads from `[write]` and `[destructive]` actions, with explicit confirmation required before state-changing or deleting operations. Source: `oomol-lab/skills@c00d078`","fileCount":3,"zipByteSize":4406},{"version":"1.0.6","createdAt":"2026-09-03T08:21:52.953Z","changelog":"- Operates **Cloudflare R2** through an OOMOL-connected account using the `oo` CLI, with credentials handled server-side. - Supports common R2 workflows: list accounts, list buckets, and inspect buckets or bucket CORS settings. - Can manage storage resources: create, update, and delete buckets, plus replace or remove bucket-level CORS policies. - Handles object operations: upload content to a bucket, download an object through connector transit storage, and generate presigned URLs for GET, PUT, or HEAD access. - Follows a schema-first workflow, so each action should be inspected with `oo connector schema` before sending payloads. Source: `oomol-lab/skills@d46aad3`","fileCount":3,"zipByteSize":3549},{"version":"1.0.5","createdAt":"2026-09-01T03:32:09.880Z","changelog":"- Adds the `oo-cloudflare-r2` skill for managing Cloudflare R2 through an OOMOL-connected account. - Supports core bucket workflows: create, inspect, list, update, and delete buckets. - Includes object download and pre-signed URL generation for GET, PUT, and HEAD access. - Covers bucket-level CORS management with read, replace, and delete operations. - Uses the `oo` CLI with live schema inspection so requests match each action’s current contract. Source: `oomol-lab/skills@d4033b2`","fileCount":3,"zipByteSize":3487},{"version":"1.0.4","createdAt":"2026-08-25T04:50:13.437Z","changelog":"- Cloudflare R2 skill for operating buckets and objects through an OOMOL-connected account using the `oo` CLI. - Supports read actions for account and bucket discovery, including listing accounts, listing buckets, and fetching bucket details. - Supports object transfer via `download_object`, which stages a selected R2 object through connector transit storage. - Supports bucket administration, including create, update, and delete operations, plus bucket-level CORS policy management. - Encourages safe usage by requiring the live connector schema before building payloads and explicit confirmation for write and destructive actions. Source: `oomol-lab/skills@3e4b3ff`","fileCount":3,"zipByteSize":3344},{"version":"1.0.3","createdAt":"2026-06-23T09:16:03.724Z","changelog":"- Operates Cloudflare R2 through the OOMOL `cloudflare_r2` connector and `oo` CLI. - Lists Cloudflare accounts and R2 buckets available to the connected credential. - Retrieves bucket details and bucket-level CORS policies. - Creates, updates, and deletes R2 buckets with explicit write/destructive safety guidance. - Replaces or removes bucket CORS policies while relying on live connector schemas for payload accuracy. Source: `oomol-lab/skills@22ace01`","fileCount":3,"zipByteSize":3394},{"version":"1.0.2","createdAt":"2026-06-09T10:11:36.085Z","changelog":"- Operates Cloudflare R2 through the OOMOL `cloudflare_r2` connector using the `oo` CLI. - Supports bucket lifecycle workflows: create, list, fetch, update, and delete R2 buckets. - Manages bucket-level CORS policies, including fetch, replace, and delete operations. - Uses live connector schemas before each action so payloads match current Cloudflare R2 requirements. - Keeps credentials server-side through OOMOL and documents auth, connection, and billing recovery paths. Source: `oomol-lab/skills@146ef20`","fileCount":3,"zipByteSize":3367}]},"execution":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No published capability contract is available yet."},"installCommand":"clawhub skill install s1790xw8jww1c6hgm8aqy9q25187t1rg:oo-cloudflare-r2","setupComplexity":"low","setupSteps":["Install using `clawhub skill install s1790xw8jww1c6hgm8aqy9q25187t1rg:oo-cloudflare-r2` in an isolated environment before connecting it to live workloads.","No published capability contract is available yet, so validate auth and request/response behavior manually.","Review the upstream CLAWHUB listing at https://clawhub.ai/oomol/oo-cloudflare-r2 before using production credentials."],"contract":{"contractStatus":"missing","authModes":[],"requires":[],"forbidden":[],"supportsMcp":false,"supportsA2a":false,"supportsStreaming":false,"inputSchemaRef":null,"outputSchemaRef":null,"dataRegion":null,"contractUpdatedAt":null,"sourceUpdatedAt":null,"freshnessSeconds":null},"invocationGuide":{"preferredApi":{"snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-oomol-oo-cloudflare-r2/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-oomol-oo-cloudflare-r2/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-oomol-oo-cloudflare-r2/trust"},"curlExamples":["curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-oomol-oo-cloudflare-r2/snapshot\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-oomol-oo-cloudflare-r2/contract\"","curl -s \"https://www.xpersona.co/api/v1/agents/clawhub-oomol-oo-cloudflare-r2/trust\""],"jsonRequestTemplate":{"query":"summarize this repo","constraints":{"maxLatencyMs":2000,"protocolPreference":["OPENCLEW"]}},"jsonResponseTemplate":{"ok":true,"result":{"summary":"...","confidence":0.9},"meta":{"source":"CLAWHUB","generatedAt":"2026-10-11T03:54:54.223Z"}},"retryPolicy":{"maxAttempts":3,"backoffMs":[500,1500,3500],"retryableConditions":["HTTP_429","HTTP_503","NETWORK_TIMEOUT"]}},"endpoints":{"dossierUrl":"https://www.xpersona.co/api/v1/agents/clawhub-oomol-oo-cloudflare-r2/dossier","snapshotUrl":"https://www.xpersona.co/api/v1/agents/clawhub-oomol-oo-cloudflare-r2/snapshot","contractUrl":"https://www.xpersona.co/api/v1/agents/clawhub-oomol-oo-cloudflare-r2/contract","trustUrl":"https://www.xpersona.co/api/v1/agents/clawhub-oomol-oo-cloudflare-r2/trust"}},"reliability":{"evidence":{"source":"runtime-metrics","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No trust, reliability, or runtime telemetry is available."},"trust":{"status":"unavailable","handshakeStatus":"UNKNOWN","verificationFreshnessHours":null,"reputationScore":null,"p95LatencyMs":null,"successRate30d":null,"fallbackRate":null,"attempts30d":null,"trustUpdatedAt":null,"trustConfidence":"unknown","sourceUpdatedAt":null,"freshnessSeconds":null},"decisionGuardrails":{"doNotUseIf":["Contract metadata is missing or unavailable for deterministic execution."],"safeUseWhen":[],"riskFlags":["missing_or_unavailable_contract","trust_data_unavailable","schema_references_missing"],"operationalConfidence":"low"},"executionMetrics":{"observedLatencyMsP50":null,"observedLatencyMsP95":null,"estimatedCostUsd":null,"uptime30d":null,"rateLimitRpm":null,"rateLimitBurst":null,"lastVerifiedAt":null,"verificationSource":null},"runtimeMetrics":{"successRate":null,"avgLatencyMs":null,"avgCostUsd":null,"hallucinationRate":null,"retryRate":null,"disputeRate":null,"p50Latency":null,"p95Latency":null,"lastUpdated":null}},"benchmarks":{"evidence":{"source":"no-benchmark-data","verified":false,"confidence":"low","updatedAt":null,"emptyReason":"No benchmark suites or observed failure patterns are available."},"suites":[],"failurePatterns":[]},"artifacts":{"evidence":{"source":"CLAWHUB","verified":false,"confidence":"medium","updatedAt":"2026-10-11T00:19:06.054Z","emptyReason":null},"readme":"Skill: Cloudflare R2\n\nOwner: oomol\n\nSummary: Cloudflare R2 (cloudflare.com). Use this skill for ANY Cloudflare R2 request — reading, creating, updating, and deleting data. Whenever a task involves Cloudflare R2, use this skill instead of calling the API directly.\n\nTags: latest:1.0.10\n\nVersion history:\n\nv1.0.10 | 2026-09-20T03:12:28.203Z | user\n\n- Operate Cloudflare R2 through the OOMOL-connected `oo` CLI.\n- Inspect live action schemas before running requests.\n- Manage buckets, objects, domains, lifecycle, CORS, locks, metrics, and notifications.\n- Support uploads, downloads, presigned URLs, temporary credentials, Sippy, and background jobs.\n- Require confirmation for write and destructive operations.\n\nSource: `oomol-lab/skills@792ad44`\n\nv1.0.9 | 2026-09-15T05:52:28.606Z | user\n\n- Operate Cloudflare R2 through the OOMOL-connected `oo` CLI without handling raw credentials.\n- Inspect live action schemas before building requests and run actions with validated JSON payloads.\n- Manage buckets, objects, domains, lifecycle, CORS, object lock, local uploads, Sippy, and event notifications.\n- Retrieve account metrics, bucket details, object listings, job status, managed domains, and pre-signed URLs.\n- Apply confirmation safeguards for state-changing and destructive operations.\n\nSource: `oomol-lab/skills@75bac03`\n\nv1.0.7 | 2026-09-08T02:20:35.818Z | user\n\n- Cloudflare R2 skill for managing buckets, objects, and account-level storage via the OOMOL-connected `cloudflare_r2` connector.\n- Uses the `oo` CLI to inspect each action’s live schema first, then run the matching connector call with JSON payloads.\n- Supports core read flows like listing accounts, buckets, objects, metrics, jobs, CORS, lifecycle, lock, domains, and Sippy status.\n- Supports write operations for creating, updating, and configuring buckets, objects, custom domains, notifications, local uploads, and access settings.\n- Includes presigned URL generation and temporary access credential workflows for controlled direct access to R2 data.\n- Separates safe reads from `[write]` and `[destructive]` actions, with explicit confirmation required before state-changing or deleting operations.\n\nSource: `oomol-lab/skills@c00d078`\n\nv1.0.6 | 2026-09-03T08:21:52.953Z | user\n\n- Operates **Cloudflare R2** through an OOMOL-connected account using the `oo` CLI, with credentials handled server-side.\n- Supports common R2 workflows: list accounts, list buckets, and inspect buckets or bucket CORS settings.\n- Can manage storage resources: create, update, and delete buckets, plus replace or remove bucket-level CORS policies.\n- Handles object operations: upload content to a bucket, download an object through connector transit storage, and generate presigned URLs for GET, PUT, or HEAD access.\n- Follows a schema-first workflow, so each action should be inspected with `oo connector schema` before sending payloads.\n\nSource: `oomol-lab/skills@d46aad3`\n\nv1.0.5 | 2026-09-01T03:32:09.880Z | user\n\n- Adds the `oo-cloudflare-r2` skill for managing Cloudflare R2 through an OOMOL-connected account.\n- Supports core bucket workflows: create, inspect, list, update, and delete buckets.\n- Includes object download and pre-signed URL generation for GET, PUT, and HEAD access.\n- Covers bucket-level CORS management with read, replace, and delete operations.\n- Uses the `oo` CLI with live schema inspection so requests match each action’s current contract.\n\nSource: `oomol-lab/skills@d4033b2`\n\nv1.0.4 | 2026-08-25T04:50:13.437Z | user\n\n- Cloudflare R2 skill for operating buckets and objects through an OOMOL-connected account using the `oo` CLI.\n- Supports read actions for account and bucket discovery, including listing accounts, listing buckets, and fetching bucket details.\n- Supports object transfer via `download_object`, which stages a selected R2 object through connector transit storage.\n- Supports bucket administration, including create, update, and delete operations, plus bucket-level CORS policy management.\n- Encourages safe usage by requiring the live connector schema before building payloads and explicit confirmation for write and destructive actions.\n\nSource: `oomol-lab/skills@3e4b3ff`\n\nv1.0.3 | 2026-06-23T09:16:03.724Z | user\n\n- Operates Cloudflare R2 through the OOMOL `cloudflare_r2` connector and `oo` CLI.\n- Lists Cloudflare accounts and R2 buckets available to the connected credential.\n- Retrieves bucket details and bucket-level CORS policies.\n- Creates, updates, and deletes R2 buckets with explicit write/destructive safety guidance.\n- Replaces or removes bucket CORS policies while relying on live connector schemas for payload accuracy.\n\nSource: `oomol-lab/skills@22ace01`\n\nv1.0.2 | 2026-06-09T10:11:36.085Z | user\n\n- Operates Cloudflare R2 through the OOMOL `cloudflare_r2` connector using the `oo` CLI.\n- Supports bucket lifecycle workflows: create, list, fetch, update, and delete R2 buckets.\n- Manages bucket-level CORS policies, including fetch, replace, and delete operations.\n- Uses live connector schemas before each action so payloads match current Cloudflare R2 requirements.\n- Keeps credentials server-side through OOMOL and documents auth, connection, and billing recovery paths.\n\nSource: `oomol-lab/skills@146ef20`\n\nv1.0.1 | 2026-06-09T03:49:58.938Z | user\n\n- Provides OOMOL `oo` CLI access to Cloudflare R2 through the `cloudflare_r2` connector.\n- Supports bucket lifecycle operations: create, list, get, update, and delete buckets.\n- Manages bucket-level CORS policies, including fetch, replace, and delete actions.\n- Requires live schema inspection before each action so payloads match current connector contracts.\n- Includes safety guidance for confirming write and delete operations before changing R2 state.\n\nSource: `oomol-lab/skills@e3717ff`\n\nv1.0.0 | 2026-06-03T11:14:06.687Z | user\n\n- Introduces `oo-cloudflare-r2`, an OOMOL skill for operating Cloudflare R2 through the `cloudflare_r2` connector and `oo` CLI.\n- Supports core bucket lifecycle workflows: create, list, inspect, update, and delete R2 buckets.\n- Adds bucket-level CORS policy management, including fetching, replacing, and deleting CORS policies.\n- Uses live connector schemas before action execution so payloads stay aligned with upstream Cloudflare R2 contract changes.\n- Keeps credentials server-side through OOMOL-connected accounts, avoiding direct handling of raw Cloudflare tokens.\n- Includes safety guidance that distinguishes read actions from write and destructive operations requiring explicit user confirmation.\n\nArchive index:\n\nArchive v1.0.10: 3 files, 4403 bytes\n\nFiles: skill-card.md (2091b), SKILL.md (7472b), _meta.json (136b)\n\nFile v1.0.10:SKILL.md\n\n---\nname: oo-cloudflare-r2\ndescription: \"Cloudflare R2 (cloudflare.com). Use this skill for ANY Cloudflare R2 request — reading, creating, updating, and deleting data. Whenever a task involves Cloudflare R2, use this skill instead of calling the API directly.\"\nallowed-tools: [Bash(oo *)]\nmetadata:\n  title: \"Cloudflare R2\"\n  author: \"OOMOL\"\n  version: \"1.0.10\"\n  services: [\"cloudflare_r2\"]\n  icon: \"https://static.oomol.com/logo/third-party/Cloudflare.svg\"\n---\n\n# Cloudflare R2\n\nOperate **Cloudflare R2** through your OOMOL-connected account. This skill calls the `cloudflare_r2` connector with the [oo CLI](https://github.com/oomol-lab/oo-cli); OOMOL injects credentials server-side, so you never handle raw tokens.\n\n## Running an action\n\nAssume the user has already installed the oo CLI, signed in, and connected Cloudflare R2. **Do not run `oo auth login` or open the connection URL proactively — just run the action.** Fall back to [First-time setup](#first-time-setup) only when a command actually fails with an auth or connection error.\n\n**1. Inspect the contract** to get the authoritative input/output schema before building a payload:\n\n```bash\noo connector schema \"cloudflare_r2\" --action \"<action_name>\"\n```\n\n**2. Run the action** with a JSON payload that matches the input schema:\n\n```bash\noo connector run \"cloudflare_r2\" --action \"<action_name>\" --data '<json>' --json\n```\n\n- `--data` takes a JSON object string or `@path/to/file.json`; omit it to send `{}`.\n- The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`; the execution id lives under `meta.executionId`.\n\nEach action is listed below with a one-line description; actions that change state carry a `[write]` or `[destructive]` tag. Before constructing `--data`, fetch the action's live schema with `oo connector schema` to get its authoritative input fields.\n\n## Available actions\n\n- `add_custom_domain` — Attach a custom domain from a Cloudflare zone to an R2 bucket. [write]\n- `create_bucket` — Create an R2 bucket in a Cloudflare account. [write]\n- `create_event_notification_rules` — Add event notification rules that send R2 bucket events to a Cloudflare Queue. [write]\n- `create_temporary_access_credentials` — Create short-lived S3-compatible credentials scoped to one R2 bucket and optionally to prefixes or objects. [write]\n- `delete_bucket` — Delete an R2 bucket by name. [destructive]\n- `delete_bucket_cors_policy` — Delete the bucket-level CORS policy for an R2 bucket. [destructive]\n- `delete_custom_domain` — Detach a custom domain from an R2 bucket. [destructive]\n- `delete_event_notification_rules` — Delete event notification rules bound to one queue. Deletes every rule for the queue when ruleIds is omitted. [destructive]\n- `delete_object` — Delete one R2 object by key. [destructive]\n- `delete_objects` — Delete a list of R2 objects by key in one request. [destructive]\n- `delete_objects_by_prefix` — Start a background job that deletes every object under a key prefix, or empties the whole bucket. [destructive]\n- `disable_sippy` — Disable Sippy on an R2 bucket. [destructive]\n- `download_object` — Download one R2 object and upload it to connector transit storage.\n- `enable_sippy` — Enable Sippy so that objects missing from the R2 bucket are copied on demand from a source bucket on AWS S3, Google Cloud Storage, an S3-compatible service, or Azure Blob Storage. [write]\n- `generate_presigned_url` — Generate a pre-signed R2 URL for one GET, PUT, or HEAD request using a custom API token credential.\n- `get_account_metrics` — Get object count and storage usage metrics across all R2 buckets in the account. Metrics may lag behind the latest data.\n- `get_bucket` — Get one R2 bucket by name.\n- `get_bucket_cors_policy` — Fetch the bucket-level CORS policy for an R2 bucket.\n- `get_bucket_job` — Get the current status of one R2 bucket background job.\n- `get_bucket_lifecycle` — Get the object lifecycle rules of an R2 bucket.\n- `get_bucket_local_uploads` — Get whether local uploads are enabled, which writes objects to the nearest region before replicating to the primary region.\n- `get_bucket_lock` — Get the object lock rules of an R2 bucket.\n- `get_custom_domain` — Get the settings of one custom domain attached to an R2 bucket.\n- `get_event_notification_rules` — Get the event notification rules that send R2 bucket events to one queue.\n- `get_managed_domain` — Get the r2.dev managed domain and its public access state for an R2 bucket.\n- `get_sippy_config` — Get the Sippy incremental migration configuration of an R2 bucket.\n- `list_accounts` — List Cloudflare accounts visible to the current credential.\n- `list_bucket_jobs` — List background jobs for an R2 bucket, such as prefix delete jobs.\n- `list_buckets` — List the R2 buckets in a Cloudflare account.\n- `list_custom_domains` — List the custom domains attached to an R2 bucket.\n- `list_event_notification_rules` — List every event notification rule of an R2 bucket grouped by target queue.\n- `list_objects` — List objects in an R2 bucket with optional prefix, delimiter grouping, and cursor pagination.\n- `put_object` — Upload one R2 object from a public URL, plain text, or base64-encoded content. [destructive]\n- `update_bucket` — Update mutable R2 bucket properties such as default storage class or jurisdiction. [write]\n- `update_bucket_cors_policy` — Replace the bucket-level CORS policy for an R2 bucket. [destructive]\n- `update_bucket_lifecycle` — Replace the object lifecycle rules of an R2 bucket with the given rule set. [destructive]\n- `update_bucket_local_uploads` — Enable or disable local uploads for an R2 bucket. [destructive]\n- `update_bucket_lock` — Replace the object lock rules of an R2 bucket with the given rule set. [destructive]\n- `update_custom_domain` — Update the public access, TLS version, or cipher settings of a custom domain. [write]\n- `update_managed_domain` — Enable or disable public access to an R2 bucket through its r2.dev domain. [destructive]\n\n## Safety\n\n- Untagged actions are reads (get / list / search) — safe to run directly.\n- **Actions tagged `[write]` change Cloudflare R2 state — confirm the exact payload and effect with the user before running.**\n- **Actions tagged `[destructive]` remove or overwrite data — always confirm the target and get explicit approval first.**\n\n## First-time setup\n\nThese are **one-time** steps — do not repeat them on every call. Run a step only when a command fails for the matching reason.\n\n- **`oo: command not found`** — install the oo CLI (other platforms: <https://cli.oomol.com/install-guide.md>):\n\n  ```bash\n  curl -fsSL https://cli.oomol.com/install.sh | bash    # macOS / Linux\n  ```\n\n  ```powershell\n  irm https://cli.oomol.com/install.ps1 | iex           # Windows PowerShell\n  ```\n\n- **Not signed in / authentication error** — sign in to your OOMOL account once:\n\n  ```bash\n  oo auth login\n  ```\n\n- **`scope_missing` / `credential_expired` / `app_not_ready` / `app_not_found`** — Cloudflare R2 is not connected, or the connection expired or lacks a scope. Connect once (auth type: custom credential, OAuth2) at:\n\n  ```text\n  https://console.oomol.com/app-connections?provider=cloudflare_r2\n  ```\n\n- **HTTP 402 / `OOMOL_INSUFFICIENT_CREDIT`** — billing stop. Recharge at `https://console.oomol.com/billing/token-recharge` before retrying.\n\n## Resources\n\n- Cloudflare R2 homepage: https://www.cloudflare.com\n\nFile v1.0.10:_meta.json\n\n{\n  \"ownerId\": \"kn74pwknhp75yqaa9z083s2pqx87z5g4\",\n  \"slug\": \"oo-cloudflare-r2\",\n  \"version\": \"1.0.10\",\n  \"publishedAt\": 1789873948203\n}\n\nFile v1.0.10:skill-card.md\n\n## Description:\n\nCloudflare R2 helps agents operate Cloudflare R2 through OOMOL's oo CLI for reading, creating, updating, and deleting storage resources.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[oomol](https://clawhub.ai/user/oomol)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and operators use this skill to manage Cloudflare R2 buckets, objects, access settings, domains, lifecycle rules, CORS, locks, metrics, notifications, temporary credentials, presigned URLs, and related background jobs from an agent workflow.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: First-time setup may pipe a remote installer directly into a shell.\n\nMitigation: Review the OOMOL CLI installer before running it and prefer a verified package or signed release when available.\n\nRisk: The skill can change or delete Cloudflare R2 storage data.\n\nMitigation: Confirm the exact bucket, object, action, and payload before allowing write or destructive operations.\n\nRisk: Connector action payloads may drift from the skill text.\n\nMitigation: Inspect the live connector schema before constructing or running an action payload.\n\n## Reference(s):\n\n- [Cloudflare R2 homepage](https://www.cloudflare.com)\n- [OOMOL oo CLI](https://github.com/oomol-lab/oo-cli)\n- [ClawHub skill page](https://clawhub.ai/oomol/skills/oo-cloudflare-r2)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Shell commands, Configuration, JSON]\n\n**Output Format:** [Markdown with inline shell commands and JSON payloads]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Uses live connector schemas before actions and returns connector responses containing data and execution metadata.]\n\n## Skill Version(s):\n\n1.0.10 (source: server release metadata and skill frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.9: 3 files, 4589 bytes\n\nFiles: skill-card.md (2539b), SKILL.md (7437b), _meta.json (135b)\n\nFile v1.0.9:SKILL.md\n\n---\nname: oo-cloudflare-r2\ndescription: \"Cloudflare R2 (cloudflare.com). Use this skill for ANY Cloudflare R2 request — reading, creating, updating, and deleting data. Whenever a task involves Cloudflare R2, use this skill instead of calling the API directly.\"\nallowed-tools: [Bash(oo *)]\nmetadata:\n  title: \"Cloudflare R2\"\n  author: \"OOMOL\"\n  version: \"1.0.9\"\n  services: [\"cloudflare_r2\"]\n  icon: \"https://static.oomol.com/logo/third-party/Cloudflare.svg\"\n---\n\n# Cloudflare R2\n\nOperate **Cloudflare R2** through your OOMOL-connected account. This skill calls the `cloudflare_r2` connector with the [oo CLI](https://github.com/oomol-lab/oo-cli); OOMOL injects credentials server-side, so you never handle raw tokens.\n\n## Running an action\n\nAssume the user has already installed the oo CLI, signed in, and connected Cloudflare R2. **Do not run `oo auth login` or open the connection URL proactively — just run the action.** Fall back to [First-time setup](#first-time-setup) only when a command actually fails with an auth or connection error.\n\n**1. Inspect the contract** to get the authoritative input/output schema before building a payload:\n\n```bash\noo connector schema \"cloudflare_r2\" --action \"<action_name>\"\n```\n\n**2. Run the action** with a JSON payload that matches the input schema:\n\n```bash\noo connector run \"cloudflare_r2\" --action \"<action_name>\" --data '<json>' --json\n```\n\n- `--data` takes a JSON object string or `@path/to/file.json`; omit it to send `{}`.\n- The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`; the execution id lives under `meta.executionId`.\n\nEach action is listed below with a one-line description; actions that change state carry a `[write]` or `[destructive]` tag. Before constructing `--data`, fetch the action's live schema with `oo connector schema` to get its authoritative input fields.\n\n## Available actions\n\n- `add_custom_domain` — Attach a custom domain from a Cloudflare zone to an R2 bucket. [write]\n- `create_bucket` — Create an R2 bucket in a Cloudflare account. [write]\n- `create_event_notification_rules` — Add event notification rules that send R2 bucket events to a Cloudflare Queue. [write]\n- `create_temporary_access_credentials` — Create short-lived S3-compatible credentials scoped to one R2 bucket and optionally to prefixes or objects. [write]\n- `delete_bucket` — Delete an R2 bucket by name. [destructive]\n- `delete_bucket_cors_policy` — Delete the bucket-level CORS policy for an R2 bucket. [destructive]\n- `delete_custom_domain` — Detach a custom domain from an R2 bucket. [destructive]\n- `delete_event_notification_rules` — Delete event notification rules bound to one queue. Deletes every rule for the queue when ruleIds is omitted. [destructive]\n- `delete_object` — Delete one R2 object by key. [destructive]\n- `delete_objects` — Delete a list of R2 objects by key in one request. [destructive]\n- `delete_objects_by_prefix` — Start a background job that deletes every object under a key prefix, or empties the whole bucket. [destructive]\n- `disable_sippy` — Disable Sippy on an R2 bucket. [write]\n- `download_object` — Download one R2 object and upload it to connector transit storage.\n- `enable_sippy` — Enable Sippy so that objects missing from the R2 bucket are copied on demand from a source bucket on AWS S3, Google Cloud Storage, an S3-compatible service, or Azure Blob Storage. [write]\n- `generate_presigned_url` — Generate a pre-signed R2 URL for one GET, PUT, or HEAD request using a custom API token credential.\n- `get_account_metrics` — Get object count and storage usage metrics across all R2 buckets in the account. Metrics may lag behind the latest data.\n- `get_bucket` — Get one R2 bucket by name.\n- `get_bucket_cors_policy` — Fetch the bucket-level CORS policy for an R2 bucket.\n- `get_bucket_job` — Get the current status of one R2 bucket background job.\n- `get_bucket_lifecycle` — Get the object lifecycle rules of an R2 bucket.\n- `get_bucket_local_uploads` — Get whether local uploads are enabled, which writes objects to the nearest region before replicating to the primary region.\n- `get_bucket_lock` — Get the object lock rules of an R2 bucket. [write]\n- `get_custom_domain` — Get the settings of one custom domain attached to an R2 bucket.\n- `get_event_notification_rules` — Get the event notification rules that send R2 bucket events to one queue.\n- `get_managed_domain` — Get the r2.dev managed domain and its public access state for an R2 bucket.\n- `get_sippy_config` — Get the Sippy incremental migration configuration of an R2 bucket.\n- `list_accounts` — List Cloudflare accounts visible to the current credential.\n- `list_bucket_jobs` — List background jobs for an R2 bucket, such as prefix delete jobs.\n- `list_buckets` — List the R2 buckets in a Cloudflare account.\n- `list_custom_domains` — List the custom domains attached to an R2 bucket.\n- `list_event_notification_rules` — List every event notification rule of an R2 bucket grouped by target queue.\n- `list_objects` — List objects in an R2 bucket with optional prefix, delimiter grouping, and cursor pagination.\n- `put_object` — Upload one R2 object from a public URL, plain text, or base64-encoded content. [write]\n- `update_bucket` — Update mutable R2 bucket properties such as default storage class or jurisdiction. [write]\n- `update_bucket_cors_policy` — Replace the bucket-level CORS policy for an R2 bucket. [write]\n- `update_bucket_lifecycle` — Replace the object lifecycle rules of an R2 bucket with the given rule set. [write]\n- `update_bucket_local_uploads` — Enable or disable local uploads for an R2 bucket. [write]\n- `update_bucket_lock` — Replace the object lock rules of an R2 bucket with the given rule set. [write]\n- `update_custom_domain` — Update the public access, TLS version, or cipher settings of a custom domain. [write]\n- `update_managed_domain` — Enable or disable public access to an R2 bucket through its r2.dev domain. [write]\n\n## Safety\n\n- Untagged actions are reads (get / list / search) — safe to run directly.\n- **Actions tagged `[write]` change Cloudflare R2 state — confirm the exact payload and effect with the user before running.**\n- **Actions tagged `[destructive]` remove or overwrite data — always confirm the target and get explicit approval first.**\n\n## First-time setup\n\nThese are **one-time** steps — do not repeat them on every call. Run a step only when a command fails for the matching reason.\n\n- **`oo: command not found`** — install the oo CLI (other platforms: <https://cli.oomol.com/install-guide.md>):\n\n  ```bash\n  curl -fsSL https://cli.oomol.com/install.sh | bash    # macOS / Linux\n  ```\n\n  ```powershell\n  irm https://cli.oomol.com/install.ps1 | iex           # Windows PowerShell\n  ```\n\n- **Not signed in / authentication error** — sign in to your OOMOL account once:\n\n  ```bash\n  oo auth login\n  ```\n\n- **`scope_missing` / `credential_expired` / `app_not_ready` / `app_not_found`** — Cloudflare R2 is not connected, or the connection expired or lacks a scope. Connect once (auth type: custom credential, OAuth2) at:\n\n  ```text\n  https://console.oomol.com/app-connections?provider=cloudflare_r2\n  ```\n\n- **HTTP 402 / `OOMOL_INSUFFICIENT_CREDIT`** — billing stop. Recharge at `https://console.oomol.com/billing/token-recharge` before retrying.\n\n## Resources\n\n- Cloudflare R2 homepage: https://www.cloudflare.com\n\nFile v1.0.9:_meta.json\n\n{\n  \"ownerId\": \"kn74pwknhp75yqaa9z083s2pqx87z5g4\",\n  \"slug\": \"oo-cloudflare-r2\",\n  \"version\": \"1.0.9\",\n  \"publishedAt\": 1789451548606\n}\n\nFile v1.0.9:skill-card.md\n\n## Description:\n\nEnables agents to read, create, update, and delete Cloudflare R2 data through the OOMOL-connected oo CLI instead of calling the Cloudflare R2 API directly.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[oomol](https://clawhub.ai/user/oomol)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and operators use this skill to inspect Cloudflare R2 connector schemas and run validated bucket, object, domain, lifecycle, CORS, object lock, upload, Sippy, event notification, metrics, and pre-signed URL actions through an OOMOL-connected account.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Cloudflare R2 metadata and some object contents may route through OOMOL's third-party connector.\n\nMitigation: Install and use the skill only when that routing is acceptable, and grant the Cloudflare connector the narrowest permissions needed for the task.\n\nRisk: The skill can perform write and destructive storage operations such as deleting buckets, objects, domains, event rules, or policies.\n\nMitigation: Confirm the exact target, payload, and effect with the user before any write action, and require explicit approval before destructive actions.\n\nRisk: The documented setup path includes remote installer commands.\n\nMitigation: Avoid running remote installer commands unless the installer source has been independently trusted and verified.\n\n## Reference(s):\n\n- [ClawHub Skill Page](https://clawhub.ai/oomol/skills/oo-cloudflare-r2)\n- [OOMOL oo CLI](https://github.com/oomol-lab/oo-cli)\n- [Cloudflare R2 Homepage](https://www.cloudflare.com)\n- [OOMOL Cloudflare R2 Connection](https://console.oomol.com/app-connections?provider=cloudflare_r2)\n- [OOMOL CLI Install Guide](https://cli.oomol.com/install-guide.md)\n\n## Skill Output:\n\n**Output Type(s):** [Shell commands, Configuration, JSON, Guidance]\n\n**Output Format:** [Markdown with inline shell commands and JSON payload guidance]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Fetches live connector action schemas before constructing action payloads; state-changing and destructive actions require user confirmation.]\n\n## Skill Version(s):\n\n1.0.9 (source: server evidence release version and artifact metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.7: 3 files, 4406 bytes\n\nFiles: skill-card.md (2153b), SKILL.md (7437b), _meta.json (135b)\n\nFile v1.0.7:SKILL.md\n\n---\nname: oo-cloudflare-r2\ndescription: \"Cloudflare R2 (cloudflare.com). Use this skill for ANY Cloudflare R2 request — reading, creating, updating, and deleting data. Whenever a task involves Cloudflare R2, use this skill instead of calling the API directly.\"\nallowed-tools: [Bash(oo *)]\nmetadata:\n  title: \"Cloudflare R2\"\n  author: \"OOMOL\"\n  version: \"1.0.7\"\n  services: [\"cloudflare_r2\"]\n  icon: \"https://static.oomol.com/logo/third-party/Cloudflare.svg\"\n---\n\n# Cloudflare R2\n\nOperate **Cloudflare R2** through your OOMOL-connected account. This skill calls the `cloudflare_r2` connector with the [oo CLI](https://github.com/oomol-lab/oo-cli); OOMOL injects credentials server-side, so you never handle raw tokens.\n\n## Running an action\n\nAssume the user has already installed the oo CLI, signed in, and connected Cloudflare R2. **Do not run `oo auth login` or open the connection URL proactively — just run the action.** Fall back to [First-time setup](#first-time-setup) only when a command actually fails with an auth or connection error.\n\n**1. Inspect the contract** to get the authoritative input/output schema before building a payload:\n\n```bash\noo connector schema \"cloudflare_r2\" --action \"<action_name>\"\n```\n\n**2. Run the action** with a JSON payload that matches the input schema:\n\n```bash\noo connector run \"cloudflare_r2\" --action \"<action_name>\" --data '<json>' --json\n```\n\n- `--data` takes a JSON object string or `@path/to/file.json`; omit it to send `{}`.\n- The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`; the execution id lives under `meta.executionId`.\n\nEach action is listed below with a one-line description; actions that change state carry a `[write]` or `[destructive]` tag. Before constructing `--data`, fetch the action's live schema with `oo connector schema` to get its authoritative input fields.\n\n## Available actions\n\n- `add_custom_domain` — Attach a custom domain from a Cloudflare zone to an R2 bucket. [write]\n- `create_bucket` — Create an R2 bucket in a Cloudflare account. [write]\n- `create_event_notification_rules` — Add event notification rules that send R2 bucket events to a Cloudflare Queue. [write]\n- `create_temporary_access_credentials` — Create short-lived S3-compatible credentials scoped to one R2 bucket and optionally to prefixes or objects. [write]\n- `delete_bucket` — Delete an R2 bucket by name. [destructive]\n- `delete_bucket_cors_policy` — Delete the bucket-level CORS policy for an R2 bucket. [destructive]\n- `delete_custom_domain` — Detach a custom domain from an R2 bucket. [destructive]\n- `delete_event_notification_rules` — Delete event notification rules bound to one queue. Deletes every rule for the queue when ruleIds is omitted. [destructive]\n- `delete_object` — Delete one R2 object by key. [destructive]\n- `delete_objects` — Delete a list of R2 objects by key in one request. [destructive]\n- `delete_objects_by_prefix` — Start a background job that deletes every object under a key prefix, or empties the whole bucket. [destructive]\n- `disable_sippy` — Disable Sippy on an R2 bucket. [write]\n- `download_object` — Download one R2 object and upload it to connector transit storage.\n- `enable_sippy` — Enable Sippy so that objects missing from the R2 bucket are copied on demand from a source bucket on AWS S3, Google Cloud Storage, an S3-compatible service, or Azure Blob Storage. [write]\n- `generate_presigned_url` — Generate a pre-signed R2 URL for one GET, PUT, or HEAD request using a custom API token credential.\n- `get_account_metrics` — Get object count and storage usage metrics across all R2 buckets in the account. Metrics may lag behind the latest data.\n- `get_bucket` — Get one R2 bucket by name.\n- `get_bucket_cors_policy` — Fetch the bucket-level CORS policy for an R2 bucket.\n- `get_bucket_job` — Get the current status of one R2 bucket background job.\n- `get_bucket_lifecycle` — Get the object lifecycle rules of an R2 bucket.\n- `get_bucket_local_uploads` — Get whether local uploads are enabled, which writes objects to the nearest region before replicating to the primary region.\n- `get_bucket_lock` — Get the object lock rules of an R2 bucket. [write]\n- `get_custom_domain` — Get the settings of one custom domain attached to an R2 bucket.\n- `get_event_notification_rules` — Get the event notification rules that send R2 bucket events to one queue.\n- `get_managed_domain` — Get the r2.dev managed domain and its public access state for an R2 bucket.\n- `get_sippy_config` — Get the Sippy incremental migration configuration of an R2 bucket.\n- `list_accounts` — List Cloudflare accounts visible to the current credential.\n- `list_bucket_jobs` — List background jobs for an R2 bucket, such as prefix delete jobs.\n- `list_buckets` — List the R2 buckets in a Cloudflare account.\n- `list_custom_domains` — List the custom domains attached to an R2 bucket.\n- `list_event_notification_rules` — List every event notification rule of an R2 bucket grouped by target queue.\n- `list_objects` — List objects in an R2 bucket with optional prefix, delimiter grouping, and cursor pagination.\n- `put_object` — Upload one R2 object from a public URL, plain text, or base64-encoded content. [write]\n- `update_bucket` — Update mutable R2 bucket properties such as default storage class or jurisdiction. [write]\n- `update_bucket_cors_policy` — Replace the bucket-level CORS policy for an R2 bucket. [write]\n- `update_bucket_lifecycle` — Replace the object lifecycle rules of an R2 bucket with the given rule set. [write]\n- `update_bucket_local_uploads` — Enable or disable local uploads for an R2 bucket. [write]\n- `update_bucket_lock` — Replace the object lock rules of an R2 bucket with the given rule set. [write]\n- `update_custom_domain` — Update the public access, TLS version, or cipher settings of a custom domain. [write]\n- `update_managed_domain` — Enable or disable public access to an R2 bucket through its r2.dev domain. [write]\n\n## Safety\n\n- Untagged actions are reads (get / list / search) — safe to run directly.\n- **Actions tagged `[write]` change Cloudflare R2 state — confirm the exact payload and effect with the user before running.**\n- **Actions tagged `[destructive]` remove or overwrite data — always confirm the target and get explicit approval first.**\n\n## First-time setup\n\nThese are **one-time** steps — do not repeat them on every call. Run a step only when a command fails for the matching reason.\n\n- **`oo: command not found`** — install the oo CLI (other platforms: <https://cli.oomol.com/install-guide.md>):\n\n  ```bash\n  curl -fsSL https://cli.oomol.com/install.sh | bash    # macOS / Linux\n  ```\n\n  ```powershell\n  irm https://cli.oomol.com/install.ps1 | iex           # Windows PowerShell\n  ```\n\n- **Not signed in / authentication error** — sign in to your OOMOL account once:\n\n  ```bash\n  oo auth login\n  ```\n\n- **`scope_missing` / `credential_expired` / `app_not_ready` / `app_not_found`** — Cloudflare R2 is not connected, or the connection expired or lacks a scope. Connect once (auth type: custom credential, OAuth2) at:\n\n  ```text\n  https://console.oomol.com/app-connections?provider=cloudflare_r2\n  ```\n\n- **HTTP 402 / `OOMOL_INSUFFICIENT_CREDIT`** — billing stop. Recharge at `https://console.oomol.com/billing/token-recharge` before retrying.\n\n## Resources\n\n- Cloudflare R2 homepage: https://www.cloudflare.com\n\nFile v1.0.7:_meta.json\n\n{\n  \"ownerId\": \"kn74pwknhp75yqaa9z083s2pqx87z5g4\",\n  \"slug\": \"oo-cloudflare-r2\",\n  \"version\": \"1.0.7\",\n  \"publishedAt\": 1788834035818\n}\n\nFile v1.0.7:skill-card.md\n\n## Description:\n\nCloudflare R2 connector skill for reading, creating, updating, and deleting buckets, objects, account metrics, access settings, custom domains, notifications, lifecycle settings, and related R2 configuration through the OOMOL oo CLI.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[oomol](https://clawhub.ai/user/oomol)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and operators use this skill to manage Cloudflare R2 storage from an agent through OOMOL's connected cloudflare_r2 connector. It supports inspection, object transfer, bucket configuration, temporary access credentials, and user-confirmed write or destructive operations.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: First-time setup includes running a remote installer directly in a shell without integrity verification.\n\nMitigation: Install the oo CLI manually from a trusted, verified installer path and confirm the installer source before use.\n\nRisk: The skill can perform destructive Cloudflare R2 operations, including bucket deletion and object or prefix deletion.\n\nMitigation: Require explicit user confirmation of the target, payload, and expected effect before approving destructive actions.\n\n## Reference(s):\n\n- [ClawHub Cloudflare R2 Skill](https://clawhub.ai/oomol/skills/oo-cloudflare-r2)\n- [OOMOL oo CLI](https://github.com/oomol-lab/oo-cli)\n- [Cloudflare R2 Homepage](https://www.cloudflare.com)\n\n## Skill Output:\n\n**Output Type(s):** [text, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with inline shell commands and JSON payloads]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Connector actions return JSON responses with data and execution metadata when run.]\n\n## Skill Version(s):\n\n1.0.7 (source: artifact frontmatter and server release metadata)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.6: 3 files, 3549 bytes\n\nFiles: skill-card.md (2313b), SKILL.md (4360b), _meta.json (135b)\n\nFile v1.0.6:SKILL.md\n\n---\nname: oo-cloudflare-r2\ndescription: \"Cloudflare R2 (cloudflare.com). Use this skill for ANY Cloudflare R2 request — reading, creating, updating, and deleting data. Whenever a task involves Cloudflare R2, use this skill instead of calling the API directly.\"\nallowed-tools: [Bash(oo *)]\nmetadata:\n  title: \"Cloudflare R2\"\n  author: \"OOMOL\"\n  version: \"1.0.6\"\n  services: [\"cloudflare_r2\"]\n  icon: \"https://static.oomol.com/logo/third-party/Cloudflare.svg\"\n---\n\n# Cloudflare R2\n\nOperate **Cloudflare R2** through your OOMOL-connected account. This skill calls the `cloudflare_r2` connector with the [oo CLI](https://github.com/oomol-lab/oo-cli); OOMOL injects credentials server-side, so you never handle raw tokens.\n\n## Running an action\n\nAssume the user has already installed the oo CLI, signed in, and connected Cloudflare R2. **Do not run `oo auth login` or open the connection URL proactively — just run the action.** Fall back to [First-time setup](#first-time-setup) only when a command actually fails with an auth or connection error.\n\n**1. Inspect the contract** to get the authoritative input/output schema before building a payload:\n\n```bash\noo connector schema \"cloudflare_r2\" --action \"<action_name>\"\n```\n\n**2. Run the action** with a JSON payload that matches the input schema:\n\n```bash\noo connector run \"cloudflare_r2\" --action \"<action_name>\" --data '<json>' --json\n```\n\n- `--data` takes a JSON object string or `@path/to/file.json`; omit it to send `{}`.\n- The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`; the execution id lives under `meta.executionId`.\n\nEach action is listed below with a one-line description; actions that change state carry a `[write]` or `[destructive]` tag. Before constructing `--data`, fetch the action's live schema with `oo connector schema` to get its authoritative input fields.\n\n## Available actions\n\n- `create_bucket` — Create an R2 bucket in a Cloudflare account. [write]\n- `delete_bucket` — Delete an R2 bucket by name. [destructive]\n- `delete_bucket_cors_policy` — Delete the bucket-level CORS policy for an R2 bucket. [destructive]\n- `download_object` — Download one R2 object and upload it to connector transit storage.\n- `generate_presigned_url` — Generate a pre-signed R2 URL for one GET, PUT, or HEAD request using a custom API token credential.\n- `get_bucket` — Get one R2 bucket by name.\n- `get_bucket_cors_policy` — Fetch the bucket-level CORS policy for an R2 bucket.\n- `list_accounts` — List Cloudflare accounts visible to the current credential.\n- `list_buckets` — List the R2 buckets in a Cloudflare account.\n- `put_object` — Upload one R2 object from a public URL, plain text, or base64-encoded content. [write]\n- `update_bucket` — Update mutable R2 bucket properties such as default storage class or jurisdiction. [write]\n- `update_bucket_cors_policy` — Replace the bucket-level CORS policy for an R2 bucket. [write]\n\n## Safety\n\n- Untagged actions are reads (get / list / search) — safe to run directly.\n- **Actions tagged `[write]` change Cloudflare R2 state — confirm the exact payload and effect with the user before running.**\n- **Actions tagged `[destructive]` remove or overwrite data — always confirm the target and get explicit approval first.**\n\n## First-time setup\n\nThese are **one-time** steps — do not repeat them on every call. Run a step only when a command fails for the matching reason.\n\n- **`oo: command not found`** — install the oo CLI (other platforms: <https://cli.oomol.com/install-guide.md>):\n\n  ```bash\n  curl -fsSL https://cli.oomol.com/install.sh | bash    # macOS / Linux\n  ```\n\n  ```powershell\n  irm https://cli.oomol.com/install.ps1 | iex           # Windows PowerShell\n  ```\n\n- **Not signed in / authentication error** — sign in to your OOMOL account once:\n\n  ```bash\n  oo auth login\n  ```\n\n- **`scope_missing` / `credential_expired` / `app_not_ready` / `app_not_found`** — Cloudflare R2 is not connected, or the connection expired or lacks a scope. Connect once (auth type: custom credential, OAuth2) at:\n\n  ```text\n  https://console.oomol.com/app-connections?provider=cloudflare_r2\n  ```\n\n- **HTTP 402 / `OOMOL_INSUFFICIENT_CREDIT`** — billing stop. Recharge at `https://console.oomol.com/billing/token-recharge` before retrying.\n\n## Resources\n\n- Cloudflare R2 homepage: https://www.cloudflare.com\n\nFile v1.0.6:_meta.json\n\n{\n  \"ownerId\": \"kn74pwknhp75yqaa9z083s2pqx87z5g4\",\n  \"slug\": \"oo-cloudflare-r2\",\n  \"version\": \"1.0.6\",\n  \"publishedAt\": 1788423712953\n}\n\nFile v1.0.6:skill-card.md\n\n## Description:\n\nCloudflare R2 agent skill for listing accounts and buckets, managing buckets and CORS policies, handling object transfers, and generating presigned URLs through an OOMOL-connected account.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[oomol](https://clawhub.ai/user/oomol)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and operators use this skill to manage Cloudflare R2 storage through an OOMOL-connected account, including bucket administration, CORS policy management, object upload and download, and presigned URL generation.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: The fallback setup path can execute a remote oo CLI installer script.\n\nMitigation: Review the official install instructions or verify the installer before execution, and run it only when the publisher and installer source are trusted.\n\nRisk: Bucket, CORS, and object actions can change or delete Cloudflare R2 resources.\n\nMitigation: Confirm the exact target, payload, and expected effect with the user before running write or destructive actions.\n\nRisk: Connector actions depend on the authenticated OOMOL account and connected Cloudflare R2 credential.\n\nMitigation: Use the live connector schema before constructing payloads and limit actions to the intended account, bucket, and object scope.\n\n## Reference(s):\n\n- [ClawHub skill page](https://clawhub.ai/oomol/skills/oo-cloudflare-r2)\n- [OOMOL oo CLI](https://github.com/oomol-lab/oo-cli)\n- [oo CLI install guide](https://cli.oomol.com/install-guide.md)\n- [Cloudflare R2](https://www.cloudflare.com)\n\n## Skill Output:\n\n**Output Type(s):** [text, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown with inline shell commands and JSON payloads]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Uses live connector schemas before action payloads; write and destructive actions require user confirmation.]\n\n## Skill Version(s):\n\n1.0.6 (source: server evidence and skill frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.5: 3 files, 3487 bytes\n\nFiles: skill-card.md (2183b), SKILL.md (4254b), _meta.json (135b)\n\nFile v1.0.5:SKILL.md\n\n---\nname: oo-cloudflare-r2\ndescription: \"Cloudflare R2 (cloudflare.com). Use this skill for ANY Cloudflare R2 request — reading, creating, updating, and deleting data. Whenever a task involves Cloudflare R2, use this skill instead of calling the API directly.\"\nallowed-tools: [Bash(oo *)]\nmetadata:\n  title: \"Cloudflare R2\"\n  author: \"OOMOL\"\n  version: \"1.0.5\"\n  services: [\"cloudflare_r2\"]\n  icon: \"https://static.oomol.com/logo/third-party/Cloudflare.svg\"\n---\n\n# Cloudflare R2\n\nOperate **Cloudflare R2** through your OOMOL-connected account. This skill calls the `cloudflare_r2` connector with the [oo CLI](https://github.com/oomol-lab/oo-cli); OOMOL injects credentials server-side, so you never handle raw tokens.\n\n## Running an action\n\nAssume the user has already installed the oo CLI, signed in, and connected Cloudflare R2. **Do not run `oo auth login` or open the connection URL proactively — just run the action.** Fall back to [First-time setup](#first-time-setup) only when a command actually fails with an auth or connection error.\n\n**1. Inspect the contract** to get the authoritative input/output schema before building a payload:\n\n```bash\noo connector schema \"cloudflare_r2\" --action \"<action_name>\"\n```\n\n**2. Run the action** with a JSON payload that matches the input schema:\n\n```bash\noo connector run \"cloudflare_r2\" --action \"<action_name>\" --data '<json>' --json\n```\n\n- `--data` takes a JSON object string or `@path/to/file.json`; omit it to send `{}`.\n- The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`; the execution id lives under `meta.executionId`.\n\nEach action is listed below with a one-line description; actions that change state carry a `[write]` or `[destructive]` tag. Before constructing `--data`, fetch the action's live schema with `oo connector schema` to get its authoritative input fields.\n\n## Available actions\n\n- `create_bucket` — Create an R2 bucket in a Cloudflare account. [write]\n- `delete_bucket` — Delete an R2 bucket by name. [destructive]\n- `delete_bucket_cors_policy` — Delete the bucket-level CORS policy for an R2 bucket. [destructive]\n- `download_object` — Download one R2 object and upload it to connector transit storage.\n- `generate_presigned_url` — Generate a pre-signed R2 URL for one GET, PUT, or HEAD request using a custom API token credential.\n- `get_bucket` — Get one R2 bucket by name.\n- `get_bucket_cors_policy` — Fetch the bucket-level CORS policy for an R2 bucket.\n- `list_accounts` — List Cloudflare accounts visible to the current credential.\n- `list_buckets` — List the R2 buckets in a Cloudflare account.\n- `update_bucket` — Update mutable R2 bucket properties such as default storage class or jurisdiction. [write]\n- `update_bucket_cors_policy` — Replace the bucket-level CORS policy for an R2 bucket. [write]\n\n## Safety\n\n- Untagged actions are reads (get / list / search) — safe to run directly.\n- **Actions tagged `[write]` change Cloudflare R2 state — confirm the exact payload and effect with the user before running.**\n- **Actions tagged `[destructive]` remove or overwrite data — always confirm the target and get explicit approval first.**\n\n## First-time setup\n\nThese are **one-time** steps — do not repeat them on every call. Run a step only when a command fails for the matching reason.\n\n- **`oo: command not found`** — install the oo CLI (other platforms: <https://cli.oomol.com/install-guide.md>):\n\n  ```bash\n  curl -fsSL https://cli.oomol.com/install.sh | bash    # macOS / Linux\n  ```\n\n  ```powershell\n  irm https://cli.oomol.com/install.ps1 | iex           # Windows PowerShell\n  ```\n\n- **Not signed in / authentication error** — sign in to your OOMOL account once:\n\n  ```bash\n  oo auth login\n  ```\n\n- **`scope_missing` / `credential_expired` / `app_not_ready` / `app_not_found`** — Cloudflare R2 is not connected, or the connection expired or lacks a scope. Connect once (auth type: custom credential, OAuth2) at:\n\n  ```text\n  https://console.oomol.com/app-connections?provider=cloudflare_r2\n  ```\n\n- **HTTP 402 / `OOMOL_INSUFFICIENT_CREDIT`** — billing stop. Recharge at `https://console.oomol.com/billing/token-recharge` before retrying.\n\n## Resources\n\n- Cloudflare R2 homepage: https://www.cloudflare.com\n\nFile v1.0.5:_meta.json\n\n{\n  \"ownerId\": \"kn74pwknhp75yqaa9z083s2pqx87z5g4\",\n  \"slug\": \"oo-cloudflare-r2\",\n  \"version\": \"1.0.5\",\n  \"publishedAt\": 1788233529880\n}\n\nFile v1.0.5:skill-card.md\n\n## Description:\n\nCloudflare R2 (cloudflare.com). Use this skill for ANY Cloudflare R2 request — reading, creating, updating, and deleting data. Whenever a task involves Cloudflare R2, use this skill instead of calling the API directly.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[oomol](https://clawhub.ai/user/oomol)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and operators use this skill to manage Cloudflare R2 buckets, objects, CORS policy, and presigned access through an OOMOL-connected account.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Bucket creation, updates, CORS changes, and deletion can expose, alter, or remove Cloudflare R2 resources.\n\nMitigation: Confirm the exact target, payload, and expected effect with the user before running write or destructive actions.\n\nRisk: Object downloads and presigned URL generation can expose cloud storage data.\n\nMitigation: Review the requested bucket, object key, URL method, and authorization intent before downloading objects or generating presigned URLs.\n\nRisk: The skill depends on an installed, signed-in oo CLI and a connected Cloudflare R2 account.\n\nMitigation: Run setup or connection steps only after an action fails with a matching CLI, authentication, connection, or billing error.\n\n## Reference(s):\n\n- [ClawHub Skill Page](https://clawhub.ai/oomol/skills/oo-cloudflare-r2)\n- [OOMOL oo CLI](https://github.com/oomol-lab/oo-cli)\n- [Cloudflare](https://www.cloudflare.com)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Shell commands, Configuration]\n\n**Output Format:** [Markdown guidance with inline shell commands and JSON payloads]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Uses live connector schema inspection before running Cloudflare R2 actions.]\n\n## Skill Version(s):\n\n1.0.5 (source: frontmatter and server release evidence)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.4: 3 files, 3344 bytes\n\nFiles: skill-card.md (2072b), SKILL.md (4123b), _meta.json (135b)\n\nFile v1.0.4:SKILL.md\n\n---\nname: oo-cloudflare-r2\ndescription: \"Cloudflare R2 (cloudflare.com). Use this skill for ANY Cloudflare R2 request — reading, creating, updating, and deleting data. Whenever a task involves Cloudflare R2, use this skill instead of calling the API directly.\"\nallowed-tools: [Bash(oo *)]\nmetadata:\n  title: \"Cloudflare R2\"\n  author: \"OOMOL\"\n  version: \"1.0.4\"\n  services: [\"cloudflare_r2\"]\n  icon: \"https://static.oomol.com/logo/third-party/Cloudflare.svg\"\n---\n\n# Cloudflare R2\n\nOperate **Cloudflare R2** through your OOMOL-connected account. This skill calls the `cloudflare_r2` connector with the [oo CLI](https://github.com/oomol-lab/oo-cli); OOMOL injects credentials server-side, so you never handle raw tokens.\n\n## Running an action\n\nAssume the user has already installed the oo CLI, signed in, and connected Cloudflare R2. **Do not run `oo auth login` or open the connection URL proactively — just run the action.** Fall back to [First-time setup](#first-time-setup) only when a command actually fails with an auth or connection error.\n\n**1. Inspect the contract** to get the authoritative input/output schema before building a payload:\n\n```bash\noo connector schema \"cloudflare_r2\" --action \"<action_name>\"\n```\n\n**2. Run the action** with a JSON payload that matches the input schema:\n\n```bash\noo connector run \"cloudflare_r2\" --action \"<action_name>\" --data '<json>' --json\n```\n\n- `--data` takes a JSON object string or `@path/to/file.json`; omit it to send `{}`.\n- The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`; the execution id lives under `meta.executionId`.\n\nEach action is listed below with a one-line description; actions that change state carry a `[write]` or `[destructive]` tag. Before constructing `--data`, fetch the action's live schema with `oo connector schema` to get its authoritative input fields.\n\n## Available actions\n\n- `create_bucket` — Create an R2 bucket in a Cloudflare account. [write]\n- `delete_bucket` — Delete an R2 bucket by name. [destructive]\n- `delete_bucket_cors_policy` — Delete the bucket-level CORS policy for an R2 bucket. [destructive]\n- `download_object` — Download one R2 object and upload it to connector transit storage.\n- `get_bucket` — Get one R2 bucket by name.\n- `get_bucket_cors_policy` — Fetch the bucket-level CORS policy for an R2 bucket.\n- `list_accounts` — List Cloudflare accounts visible to the current credential.\n- `list_buckets` — List the R2 buckets in a Cloudflare account.\n- `update_bucket` — Update mutable R2 bucket properties such as default storage class or jurisdiction. [write]\n- `update_bucket_cors_policy` — Replace the bucket-level CORS policy for an R2 bucket. [write]\n\n## Safety\n\n- Untagged actions are reads (get / list / search) — safe to run directly.\n- **Actions tagged `[write]` change Cloudflare R2 state — confirm the exact payload and effect with the user before running.**\n- **Actions tagged `[destructive]` remove or overwrite data — always confirm the target and get explicit approval first.**\n\n## First-time setup\n\nThese are **one-time** steps — do not repeat them on every call. Run a step only when a command fails for the matching reason.\n\n- **`oo: command not found`** — install the oo CLI (other platforms: <https://cli.oomol.com/install-guide.md>):\n\n  ```bash\n  curl -fsSL https://cli.oomol.com/install.sh | bash    # macOS / Linux\n  ```\n\n  ```powershell\n  irm https://cli.oomol.com/install.ps1 | iex           # Windows PowerShell\n  ```\n\n- **Not signed in / authentication error** — sign in to your OOMOL account once:\n\n  ```bash\n  oo auth login\n  ```\n\n- **`scope_missing` / `credential_expired` / `app_not_ready` / `app_not_found`** — Cloudflare R2 is not connected, or the connection expired or lacks a scope. Connect once (auth type: custom credential, OAuth2) at:\n\n  ```text\n  https://console.oomol.com/app-connections?provider=cloudflare_r2\n  ```\n\n- **HTTP 402 / `OOMOL_INSUFFICIENT_CREDIT`** — billing stop. Recharge at `https://console.oomol.com/billing/token-recharge` before retrying.\n\n## Resources\n\n- Cloudflare R2 homepage: https://www.cloudflare.com\n\nFile v1.0.4:_meta.json\n\n{\n  \"ownerId\": \"kn74pwknhp75yqaa9z083s2pqx87z5g4\",\n  \"slug\": \"oo-cloudflare-r2\",\n  \"version\": \"1.0.4\",\n  \"publishedAt\": 1787633413437\n}\n\nFile v1.0.4:skill-card.md\n\n## Description:\n\nCloudflare R2 skill for reading, creating, updating, and deleting R2 data through an OOMOL-connected account instead of direct API calls.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[oomol](https://clawhub.ai/user/oomol)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and operators use this skill to inspect Cloudflare R2 accounts and buckets, download objects through connector transit storage, and manage bucket settings or CORS policies through an OOMOL-connected account.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: Write actions can change Cloudflare R2 bucket state.\n\nMitigation: Confirm the exact action payload and expected effect before approving create, update, or CORS replacement operations.\n\nRisk: Destructive actions can delete buckets or bucket-level CORS policies.\n\nMitigation: Require explicit approval of the target account, bucket, and destructive operation before execution.\n\nRisk: Payloads may be incorrect if they are built from stale assumptions.\n\nMitigation: Fetch the live connector schema before constructing each action payload.\n\n## Reference(s):\n\n- [ClawHub Cloudflare R2 skill](https://clawhub.ai/oomol/skills/oo-cloudflare-r2)\n- [oo CLI](https://github.com/oomol-lab/oo-cli)\n- [Cloudflare R2 homepage](https://www.cloudflare.com)\n\n## Skill Output:\n\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance]\n\n**Output Format:** [Markdown guidance with inline shell commands and JSON payload examples]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Commands use live connector schemas before constructing JSON payloads; connector responses are JSON.]\n\n## Skill Version(s):\n\n1.0.4 (source: server release evidence and skill frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment.\n\nArchive v1.0.3: 3 files, 3394 bytes\n\nFiles: skill-card.md (2512b), SKILL.md (4032b), _meta.json (135b)\n\nFile v1.0.3:SKILL.md\n\n---\nname: oo-cloudflare-r2\ndescription: \"Cloudflare R2 (cloudflare.com). Use this skill for ANY Cloudflare R2 request — reading, creating, updating, and deleting data. Whenever a task involves Cloudflare R2, use this skill instead of calling the API directly.\"\nallowed-tools: [Bash(oo *)]\nmetadata:\n  title: \"Cloudflare R2\"\n  author: \"OOMOL\"\n  version: \"1.0.3\"\n  services: [\"cloudflare_r2\"]\n  icon: \"https://static.oomol.com/logo/third-party/Cloudflare.svg\"\n---\n\n# Cloudflare R2\n\nOperate **Cloudflare R2** through your OOMOL-connected account. This skill calls the `cloudflare_r2` connector with the [oo CLI](https://github.com/oomol-lab/oo-cli); OOMOL injects credentials server-side, so you never handle raw tokens.\n\n## Running an action\n\nAssume the user has already installed the oo CLI, signed in, and connected Cloudflare R2. **Do not run `oo auth login` or open the connection URL proactively — just run the action.** Fall back to [First-time setup](#first-time-setup) only when a command actually fails with an auth or connection error.\n\n**1. Inspect the contract** to get the authoritative input/output schema before building a payload:\n\n```bash\noo connector schema \"cloudflare_r2\" --action \"<action_name>\"\n```\n\n**2. Run the action** with a JSON payload that matches the input schema:\n\n```bash\noo connector run \"cloudflare_r2\" --action \"<action_name>\" --data '<json>' --json\n```\n\n- `--data` takes a JSON object string or `@path/to/file.json`; omit it to send `{}`.\n- The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`; the execution id lives under `meta.executionId`.\n\nEach action is listed below with a one-line description; actions that change state carry a `[write]` or `[destructive]` tag. Before constructing `--data`, fetch the action's live schema with `oo connector schema` to get its authoritative input fields.\n\n## Available actions\n\n- `create_bucket` — Create an R2 bucket in a Cloudflare account. [write]\n- `delete_bucket` — Delete an R2 bucket by name. [destructive]\n- `delete_bucket_cors_policy` — Delete the bucket-level CORS policy for an R2 bucket. [destructive]\n- `get_bucket` — Get one R2 bucket by name.\n- `get_bucket_cors_policy` — Fetch the bucket-level CORS policy for an R2 bucket.\n- `list_accounts` — List Cloudflare accounts visible to the current credential.\n- `list_buckets` — List the R2 buckets in a Cloudflare account.\n- `update_bucket` — Update mutable R2 bucket properties such as default storage class or jurisdiction. [write]\n- `update_bucket_cors_policy` — Replace the bucket-level CORS policy for an R2 bucket. [write]\n\n## Safety\n\n- Untagged actions are reads (get / list / search) — safe to run directly.\n- **Actions tagged `[write]` change Cloudflare R2 state — confirm the exact payload and effect with the user before running.**\n- **Actions tagged `[destructive]` remove or overwrite data — always confirm the target and get explicit approval first.**\n\n## First-time setup\n\nThese are **one-time** steps — do not repeat them on every call. Run a step only when a command fails for the matching reason.\n\n- **`oo: command not found`** — install the oo CLI (other platforms: <https://cli.oomol.com/install-guide.md>):\n\n  ```bash\n  curl -fsSL https://cli.oomol.com/install.sh | bash    # macOS / Linux\n  ```\n\n  ```powershell\n  irm https://cli.oomol.com/install.ps1 | iex           # Windows PowerShell\n  ```\n\n- **Not signed in / authentication error** — sign in to your OOMOL account once:\n\n  ```bash\n  oo auth login\n  ```\n\n- **`scope_missing` / `credential_expired` / `app_not_ready` / `app_not_found`** — Cloudflare R2 is not connected, or the connection expired or lacks a scope. Connect once (auth type: custom credential, OAuth2) at:\n\n  ```text\n  https://console.oomol.com/app-connections?provider=cloudflare_r2\n  ```\n\n- **HTTP 402 / `OOMOL_INSUFFICIENT_CREDIT`** — billing stop. Recharge at `https://console.oomol.com/billing/token-recharge` before retrying.\n\n## Resources\n\n- Cloudflare R2 homepage: https://www.cloudflare.com\n\nFile v1.0.3:_meta.json\n\n{\n  \"ownerId\": \"kn74pwknhp75yqaa9z083s2pqx87z5g4\",\n  \"slug\": \"oo-cloudflare-r2\",\n  \"version\": \"1.0.3\",\n  \"publishedAt\": 1782206163724\n}\n\nFile v1.0.3:skill-card.md\n\n## Description: <br>\nCloudflare R2 (cloudflare.com). Use this skill for ANY Cloudflare R2 request: reading, creating, updating, and deleting data. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[oomol](https://clawhub.ai/user/oomol) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and operators use this skill to manage Cloudflare R2 accounts, buckets, bucket details, and bucket-level CORS policies through an OOMOL-connected Cloudflare R2 account. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Write-capable Cloudflare R2 actions can create or modify buckets and CORS policies. <br>\nMitigation: Confirm the exact payload and intended effect with the user before running actions tagged as write. <br>\nRisk: Destructive Cloudflare R2 actions can delete buckets or bucket CORS policies. <br>\nMitigation: Confirm the target resource and obtain explicit user approval before running actions tagged as destructive. <br>\nRisk: Connector payload assumptions can be wrong if the live Cloudflare R2 action schema changes. <br>\nMitigation: Inspect the live connector schema for the selected action before constructing or running a payload. <br>\nRisk: Security confidence is limited by the available scanner evidence. <br>\nMitigation: Review the skill instructions and metadata for requested tools, credentials, network access, file access, and write-capable behavior before installation. <br>\n\n\n## Reference(s): <br>\n- [ClawHub skill page](https://clawhub.ai/oomol/skills/oo-cloudflare-r2) <br>\n- [OOMOL publisher profile](https://clawhub.ai/user/oomol) <br>\n- [oo CLI](https://github.com/oomol-lab/oo-cli) <br>\n- [Cloudflare R2 homepage](https://www.cloudflare.com) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown with inline shell commands and JSON payload guidance] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Uses live connector schemas before constructing Cloudflare R2 action payloads.] <br>\n\n## Skill Version(s): <br>\n1.0.3 (source: server release evidence and skill frontmatter) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.2: 3 files, 3367 bytes\n\nFiles: skill-card.md (2423b), SKILL.md (3950b), _meta.json (135b)\n\nFile v1.0.2:SKILL.md\n\n---\nname: oo-cloudflare-r2\ndescription: \"Cloudflare R2 (cloudflare.com). Use this skill for ANY Cloudflare R2 request — reading, creating, updating, and deleting data. Whenever a task involves Cloudflare R2, use this skill instead of calling the API directly.\"\nallowed-tools: [Bash(oo *)]\nmetadata:\n  title: \"Cloudflare R2\"\n  author: \"OOMOL\"\n  version: \"1.0.2\"\n  services: [\"cloudflare_r2\"]\n  icon: \"https://static.oomol.com/logo/third-party/Cloudflare.svg\"\n---\n\n# Cloudflare R2\n\nOperate **Cloudflare R2** through your OOMOL-connected account. This skill calls the `cloudflare_r2` connector with the [oo CLI](https://github.com/oomol-lab/oo-cli); OOMOL injects credentials server-side, so you never handle raw tokens.\n\n## Running an action\n\nAssume the user has already installed the oo CLI, signed in, and connected Cloudflare R2. **Do not run `oo auth login` or open the connection URL proactively — just run the action.** Fall back to [First-time setup](#first-time-setup) only when a command actually fails with an auth or connection error.\n\n**1. Inspect the contract** to get the authoritative input/output schema before building a payload:\n\n```bash\noo connector schema \"cloudflare_r2\" --action \"<action_name>\"\n```\n\n**2. Run the action** with a JSON payload that matches the input schema:\n\n```bash\noo connector run \"cloudflare_r2\" --action \"<action_name>\" --data '<json>' --json\n```\n\n- `--data` takes a JSON object string or `@path/to/file.json`; omit it to send `{}`.\n- The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`; the execution id lives under `meta.executionId`.\n\nEach action is listed below with a one-line description; actions that change state carry a `[write]` or `[destructive]` tag. Before constructing `--data`, fetch the action's live schema with `oo connector schema` to get its authoritative input fields.\n\n## Available actions\n\n- `create_bucket` — Create an R2 bucket in a Cloudflare account. [write]\n- `delete_bucket` — Delete an R2 bucket by name. [destructive]\n- `delete_bucket_cors_policy` — Delete the bucket-level CORS policy for an R2 bucket. [destructive]\n- `get_bucket` — Get one R2 bucket by name.\n- `get_bucket_cors_policy` — Fetch the bucket-level CORS policy for an R2 bucket.\n- `list_buckets` — List the R2 buckets in a Cloudflare account.\n- `update_bucket` — Update mutable R2 bucket properties such as default storage class or jurisdiction. [write]\n- `update_bucket_cors_policy` — Replace the bucket-level CORS policy for an R2 bucket. [write]\n\n## Safety\n\n- Untagged actions are reads (get / list / search) — safe to run directly.\n- **Actions tagged `[write]` change Cloudflare R2 state — confirm the exact payload and effect with the user before running.**\n- **Actions tagged `[destructive]` remove or overwrite data — always confirm the target and get explicit approval first.**\n\n## First-time setup\n\nThese are **one-time** steps — do not repeat them on every call. Run a step only when a command fails for the matching reason.\n\n- **`oo: command not found`** — install the oo CLI (other platforms: <https://cli.oomol.com/install-guide.md>):\n\n  ```bash\n  curl -fsSL https://cli.oomol.com/install.sh | bash    # macOS / Linux\n  ```\n\n  ```powershell\n  irm https://cli.oomol.com/install.ps1 | iex           # Windows PowerShell\n  ```\n\n- **Not signed in / authentication error** — sign in to your OOMOL account once:\n\n  ```bash\n  oo auth login\n  ```\n\n- **`scope_missing` / `credential_expired` / `app_not_ready` / `app_not_found`** — Cloudflare R2 is not connected, or the connection expired or lacks a scope. Connect once (auth type: custom credential, OAuth2) at:\n\n  ```text\n  https://console.oomol.com/app-connections?provider=cloudflare_r2\n  ```\n\n- **HTTP 402 / `OOMOL_INSUFFICIENT_CREDIT`** — billing stop. Recharge at `https://console.oomol.com/billing/token-recharge` before retrying.\n\n## Resources\n\n- Cloudflare R2 homepage: https://www.cloudflare.com\n\nFile v1.0.2:_meta.json\n\n{\n  \"ownerId\": \"kn74pwknhp75yqaa9z083s2pqx87z5g4\",\n  \"slug\": \"oo-cloudflare-r2\",\n  \"version\": \"1.0.2\",\n  \"publishedAt\": 1780999896085\n}\n\nFile v1.0.2:skill-card.md\n\n## Description: <br>\nCloudflare R2 (cloudflare.com). Use this skill for Cloudflare R2 requests, including reading, creating, updating, and deleting bucket data through the OOMOL connector. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[oomol](https://clawhub.ai/user/oomol) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers, engineers, and operators use this skill to manage Cloudflare R2 buckets and bucket-level CORS policies from an agent session through the OOMOL Cloudflare R2 connector. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill can propose write or destructive Cloudflare R2 operations such as bucket deletion or CORS policy replacement. <br>\nMitigation: Review the target resource, payload, and expected effect with the user before approving write or destructive oo CLI commands. <br>\nRisk: The oo CLI installer commands are privileged setup steps. <br>\nMitigation: Use the official install guide or inspect and verify the installer before running it. <br>\nRisk: The skill depends on OOMOL account authentication, connector authorization, and available billing credit. <br>\nMitigation: Run authentication, connection, or billing recovery only after a matching command failure indicates it is needed. <br>\n\n\n## Reference(s): <br>\n- [Cloudflare R2 homepage](https://www.cloudflare.com) <br>\n- [oo CLI](https://github.com/oomol-lab/oo-cli) <br>\n- [oo CLI install guide](https://cli.oomol.com/install-guide.md) <br>\n- [ClawHub skill page](https://clawhub.ai/oomol/oo-cloudflare-r2) <br>\n- [OOMOL publisher profile](https://clawhub.ai/user/oomol) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown with inline shell commands and JSON payload guidance] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May produce oo CLI connector commands and JSON request payloads for Cloudflare R2 actions.] <br>\n\n## Skill Version(s): <br>\n1.0.2 (source: frontmatter and server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.1: 11 files, 7782 bytes\n\nFiles: actions/create_bucket.md (772b), actions/delete_bucket_cors_policy.md (857b), actions/delete_bucket.md (772b), actions/get_bucket_cors_policy.md (694b), actions/get_bucket.md (608b), actions/list_buckets.md (636b), actions/update_bucket_cors_policy.md (842b), actions/update_bucket.md (810b), skill-card.md (2178b), SKILL.md (4207b), _meta.json (135b)\n\nFile v1.0.1:SKILL.md\n\n---\nname: oo-cloudflare-r2\ndescription: \"Cloudflare R2 (cloudflare.com). Use this skill for ANY Cloudflare R2 request — reading, creating, updating, and deleting data. Whenever a task involves Cloudflare R2, use this skill instead of calling the API directly.\"\nallowed-tools: [Bash(oo *)]\nmetadata:\n  title: \"Cloudflare R2\"\n  author: \"OOMOL\"\n  version: \"1.0.1\"\n  service: \"cloudflare_r2\"\n  categories: \"Storage, Developer Tools\"\n  homepage: \"https://www.cloudflare.com\"\n  icon: \"https://static.oomol.com/logo/third-party/Cloudflare.svg\"\n---\n\n# Cloudflare R2\n\nOperate **Cloudflare R2** through your OOMOL-connected account. This skill calls the `cloudflare_r2` connector with the [oo CLI](https://github.com/oomol-lab/oo-cli); OOMOL injects credentials server-side, so you never handle raw tokens.\n\nCategory: Storage, Developer Tools. Exposes 8 action(s).\n\n## Running an action\n\nAssume the user has already installed the oo CLI, signed in, and connected Cloudflare R2. **Do not run `oo auth login` or open the connection URL proactively — just run the action.** Fall back to [First-time setup](#first-time-setup) only when a command actually fails with an auth or connection error.\n\n**1. Inspect the contract** to get the authoritative input/output schema before building a payload:\n\n```bash\noo connector schema \"cloudflare_r2\" --action \"<action_name>\"\n```\n\n**2. Run the action** with a JSON payload that matches the input schema:\n\n```bash\noo connector run \"cloudflare_r2\" --action \"<action_name>\" --data '<json>' --json\n```\n\n- `--data` takes a JSON object string or `@path/to/file.json`; omit it to send `{}`.\n- The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`; the execution id lives under `meta.executionId`.\n\nEach action below links to a reference file with its purpose and exact commands. Read the linked file, then fetch the live schema with `oo connector schema` before constructing `--data`.\n\n## Available actions\n\n- [`create_bucket`](actions/create_bucket.md) — Create an R2 bucket in a Cloudflare account.\n- [`delete_bucket`](actions/delete_bucket.md) — Delete an R2 bucket by name.\n- [`delete_bucket_cors_policy`](actions/delete_bucket_cors_policy.md) — Delete the bucket-level CORS policy for an R2 bucket.\n- [`get_bucket`](actions/get_bucket.md) — Get one R2 bucket by name.\n- [`get_bucket_cors_policy`](actions/get_bucket_cors_policy.md) — Fetch the bucket-level CORS policy for an R2 bucket.\n- [`list_buckets`](actions/list_buckets.md) — List the R2 buckets in a Cloudflare account.\n- [`update_bucket`](actions/update_bucket.md) — Update mutable R2 bucket properties such as default storage class or jurisdiction.\n- [`update_bucket_cors_policy`](actions/update_bucket_cors_policy.md) — Replace the bucket-level CORS policy for an R2 bucket.\n\n## Safety\n\n- Read actions (get / list / search) are safe to run directly.\n- **Create, update, send, or post actions change Cloudflare R2 state — confirm the exact payload and effect with the user before running.**\n- **Delete or remove actions are destructive — always confirm the target and get explicit approval first.**\n\n## First-time setup\n\nThese are **one-time** steps — do not repeat them on every call. Run a step only when a command fails for the matching reason.\n\n- **`oo: command not found`** — install the oo CLI (other platforms: <https://cli.oomol.com/install-guide.md>):\n\n  ```bash\n  curl -fsSL https://cli.oomol.com/install.sh | bash    # macOS / Linux\n  ```\n\n  ```powershell\n  irm https://cli.oomol.com/install.ps1 | iex           # Windows PowerShell\n  ```\n\n- **Not signed in / authentication error** — sign in to your OOMOL account once:\n\n  ```bash\n  oo auth login\n  ```\n\n- **`scope_missing` / `credential_expired` / `app_not_ready` / `app_not_found`** — Cloudflare R2 is not connected, or the connection expired or lacks a scope. Connect once (auth type: custom credential, OAuth2) at:\n\n  ```text\n  https://console.oomol.com/app-connections?provider=cloudflare_r2\n  ```\n\n- **HTTP 402 / `OOMOL_INSUFFICIENT_CREDIT`** — billing stop. Recharge at `https://console.oomol.com/billing/token-recharge` before retrying.\n\n## Resources\n\n- Cloudflare R2 homepage: https://www.cloudflare.com\n\nFile v1.0.1:_meta.json\n\n{\n  \"ownerId\": \"kn74pwknhp75yqaa9z083s2pqx87z5g4\",\n  \"slug\": \"oo-cloudflare-r2\",\n  \"version\": \"1.0.1\",\n  \"publishedAt\": 1780976998938\n}\n\nFile v1.0.1:actions/create_bucket.md\n\n# Cloudflare R2 · `create_bucket`\n\nCreate an R2 bucket in a Cloudflare account.\n\n- **Service**: `cloudflare_r2`\n- **Action**: `create_bucket`\n- **Action id**: `cloudflare_r2.create_bucket`\n\n## Inspect the schema\n\nAlways fetch the authoritative input/output schema before building a payload — fields and defaults can change upstream:\n\n```bash\noo connector schema \"cloudflare_r2\" --action \"create_bucket\"\n```\n\n## Run\n\n```bash\noo connector run \"cloudflare_r2\" --action \"create_bucket\" --data '{}' --json\n```\n\nReplace `{}` with a JSON object that matches the input schema. The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`.\n\n> **Write action.** This changes Cloudflare R2 state. Confirm the exact payload and intended effect with the user before running.\n\nFile v1.0.1:actions/delete_bucket_cors_policy.md\n\n# Cloudflare R2 · `delete_bucket_cors_policy`\n\nDelete the bucket-level CORS policy for an R2 bucket.\n\n- **Service**: `cloudflare_r2`\n- **Action**: `delete_bucket_cors_policy`\n- **Action id**: `cloudflare_r2.delete_bucket_cors_policy`\n\n## Inspect the schema\n\nAlways fetch the authoritative input/output schema before building a payload — fields and defaults can change upstream:\n\n```bash\noo connector schema \"cloudflare_r2\" --action \"delete_bucket_cors_policy\"\n```\n\n## Run\n\n```bash\noo connector run \"cloudflare_r2\" --action \"delete_bucket_cors_policy\" --data '{}' --json\n```\n\nReplace `{}` with a JSON object that matches the input schema. The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`.\n\n> **Destructive action.** This removes or overwrites Cloudflare R2 data. Always confirm the target and get explicit user approval before running.\n\nFile v1.0.1:actions/delete_bucket.md\n\n# Cloudflare R2 · `delete_bucket`\n\nDelete an R2 bucket by name.\n\n- **Service**: `cloudflare_r2`\n- **Action**: `delete_bucket`\n- **Action id**: `cloudflare_r2.delete_bucket`\n\n## Inspect the schema\n\nAlways fetch the authoritative input/output schema before building a payload — fields and defaults can change upstream:\n\n```bash\noo connector schema \"cloudflare_r2\" --action \"delete_bucket\"\n```\n\n## Run\n\n```bash\noo connector run \"cloudflare_r2\" --action \"delete_bucket\" --data '{}' --json\n```\n\nReplace `{}` with a JSON object that matches the input schema. The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`.\n\n> **Destructive action.** This removes or overwrites Cloudflare R2 data. Always confirm the target and get explicit user approval before running.\n\nFile v1.0.1:actions/get_bucket_cors_policy.md\n\n# Cloudflare R2 · `get_bucket_cors_policy`\n\nFetch the bucket-level CORS policy for an R2 bucket.\n\n- **Service**: `cloudflare_r2`\n- **Action**: `get_bucket_cors_policy`\n- **Action id**: `cloudflare_r2.get_bucket_cors_policy`\n\n## Inspect the schema\n\nAlways fetch the authoritative input/output schema before building a payload — fields and defaults can change upstream:\n\n```bash\noo connector schema \"cloudflare_r2\" --action \"get_bucket_cors_policy\"\n```\n\n## Run\n\n```bash\noo connector run \"cloudflare_r2\" --action \"get_bucket_cors_policy\" --data '{}' --json\n```\n\nReplace `{}` with a JSON object that matches the input schema. The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`.\n\nFile v1.0.1:actions/get_bucket.md\n\n# Cloudflare R2 · `get_bucket`\n\nGet one R2 bucket by name.\n\n- **Service**: `cloudflare_r2`\n- **Action**: `get_bucket`\n- **Action id**: `cloudflare_r2.get_bucket`\n\n## Inspect the schema\n\nAlways fetch the authoritative input/output schema before building a payload — fields and defaults can change upstream:\n\n```bash\noo connector schema \"cloudflare_r2\" --action \"get_bucket\"\n```\n\n## Run\n\n```bash\noo connector run \"cloudflare_r2\" --action \"get_bucket\" --data '{}' --json\n```\n\nReplace `{}` with a JSON object that matches the input schema. The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`.\n\nFile v1.0.1:actions/list_buckets.md\n\n# Cloudflare R2 · `list_buckets`\n\nList the R2 buckets in a Cloudflare account.\n\n- **Service**: `cloudflare_r2`\n- **Action**: `list_buckets`\n- **Action id**: `cloudflare_r2.list_buckets`\n\n## Inspect the schema\n\nAlways fetch the authoritative input/output schema before building a payload — fields and defaults can change upstream:\n\n```bash\noo connector schema \"cloudflare_r2\" --action \"list_buckets\"\n```\n\n## Run\n\n```bash\noo connector run \"cloudflare_r2\" --action \"list_buckets\" --data '{}' --json\n```\n\nReplace `{}` with a JSON object that matches the input schema. The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`.\n\nFile v1.0.1:actions/update_bucket_cors_policy.md\n\n# Cloudflare R2 · `update_bucket_cors_policy`\n\nReplace the bucket-level CORS policy for an R2 bucket.\n\n- **Service**: `cloudflare_r2`\n- **Action**: `update_bucket_cors_policy`\n- **Action id**: `cloudflare_r2.update_bucket_cors_policy`\n\n## Inspect the schema\n\nAlways fetch the authoritative input/output schema before building a payload — fields and defaults can change upstream:\n\n```bash\noo connector schema \"cloudflare_r2\" --action \"update_bucket_cors_policy\"\n```\n\n## Run\n\n```bash\noo connector run \"cloudflare_r2\" --action \"update_bucket_cors_policy\" --data '{}' --json\n```\n\nReplace `{}` with a JSON object that matches the input schema. The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`.\n\n> **Write action.** This changes Cloudflare R2 state. Confirm the exact payload and intended effect with the user before running.\n\nFile v1.0.1:actions/update_bucket.md\n\n# Cloudflare R2 · `update_bucket`\n\nUpdate mutable R2 bucket properties such as default storage class or jurisdiction.\n\n- **Service**: `cloudflare_r2`\n- **Action**: `update_bucket`\n- **Action id**: `cloudflare_r2.update_bucket`\n\n## Inspect the schema\n\nAlways fetch the authoritative input/output schema before building a payload — fields and defaults can change upstream:\n\n```bash\noo connector schema \"cloudflare_r2\" --action \"update_bucket\"\n```\n\n## Run\n\n```bash\noo connector run \"cloudflare_r2\" --action \"update_bucket\" --data '{}' --json\n```\n\nReplace `{}` with a JSON object that matches the input schema. The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`.\n\n> **Write action.** This changes Cloudflare R2 state. Confirm the exact payload and intended effect with the user before running.\n\nFile v1.0.1:skill-card.md\n\n## Description: <br>\nCloudflare R2 helps agents read, create, update, and delete Cloudflare R2 buckets and CORS policies through the OOMOL oo CLI connector. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[oomol](https://clawhub.ai/user/oomol) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and operators use this skill to manage Cloudflare R2 buckets and bucket-level CORS policies from an agent session through an OOMOL-connected account. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: The skill can change Cloudflare R2 state through bucket creation, bucket updates, and CORS policy replacement. <br>\nMitigation: Confirm the exact payload and intended effect with the user before running write actions. <br>\nRisk: The skill can delete buckets or bucket-level CORS policies. <br>\nMitigation: Require explicit user approval for the specific target before running destructive actions. <br>\nRisk: The skill depends on the OOMOL oo CLI and an OOMOL-connected Cloudflare R2 account. <br>\nMitigation: Install and use it only when the user trusts OOMOL and intends to grant the agent access through that connected account. <br>\n\n\n## Reference(s): <br>\n- [Cloudflare R2 Homepage](https://www.cloudflare.com) <br>\n- [oo CLI](https://github.com/oomol-lab/oo-cli) <br>\n- [ClawHub Skill Page](https://clawhub.ai/oomol/oo-cloudflare-r2) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [Text, Markdown, Shell commands, Configuration, Guidance] <br>\n**Output Format:** [Markdown with inline shell commands and JSON command responses] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [Actions inspect the live connector schema before constructing JSON payloads.] <br>\n\n## Skill Version(s): <br>\n1.0.1 (source: server release metadata and skill frontmatter) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>\n\nArchive v1.0.0: 11 files, 7764 bytes\n\nFiles: actions/create_bucket.md (772b), actions/delete_bucket_cors_policy.md (857b), actions/delete_bucket.md (772b), actions/get_bucket_cors_policy.md (694b), actions/get_bucket.md (608b), actions/list_buckets.md (636b), actions/update_bucket_cors_policy.md (842b), actions/update_bucket.md (810b), skill-card.md (2123b), SKILL.md (4199b), _meta.json (135b)\n\nFile v1.0.0:SKILL.md\n\n---\nname: oo-cloudflare-r2\ndescription: \"Cloudflare R2 (cloudflare.com). Use this skill for ANY Cloudflare R2 request — reading, creating, updating, and deleting data. Whenever a task involves Cloudflare R2, use this skill instead of calling the API directly.\"\nallowed-tools: [Bash(oo *)]\nmetadata:\n  title: \"Cloudflare R2\"\n  author: \"OOMOL\"\n  version: \"1.0.0\"\n  service: \"cloudflare_r2\"\n  categories: \"Storage, Developer Tools\"\n  homepage: \"https://www.cloudflare.com\"\n  icon: \"https://static.oomol.com/logo/third-party/Cloudflare.svg\"\n---\n\n# Cloudflare R2\n\nOperate **Cloudflare R2** through your OOMOL-connected account. This skill calls the `cloudflare_r2` connector with the [oo CLI](https://github.com/oomol-lab/oo-cli); OOMOL injects credentials server-side, so you never handle raw tokens.\n\nCategory: Storage, Developer Tools. Exposes 8 action(s).\n\n## Running an action\n\nAssume the user has already installed the oo CLI, signed in, and connected Cloudflare R2. **Do not run `oo auth login` or open the connection URL proactively — just run the action.** Fall back to [First-time setup](#first-time-setup) only when a command actually fails with an auth or connection error.\n\n**1. Inspect the contract** to get the authoritative input/output schema before building a payload:\n\n```bash\noo connector schema \"cloudflare_r2\" --action \"<action_name>\"\n```\n\n**2. Run the action** with a JSON payload that matches the input schema:\n\n```bash\noo connector run \"cloudflare_r2\" --action \"<action_name>\" --data '<json>' --json\n```\n\n- `--data` takes a JSON object string or `@path/to/file.json`; omit it to send `{}`.\n- The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`; the execution id lives under `meta.executionId`.\n\nEach action below links to a reference file with its purpose and exact commands. Read the linked file, then fetch the live schema with `oo connector schema` before constructing `--data`.\n\n## Available actions\n\n- [`create_bucket`](actions/create_bucket.md) — Create an R2 bucket in a Cloudflare account.\n- [`delete_bucket`](actions/delete_bucket.md) — Delete an R2 bucket by name.\n- [`delete_bucket_cors_policy`](actions/delete_bucket_cors_policy.md) — Delete the bucket-level CORS policy for an R2 bucket.\n- [`get_bucket`](actions/get_bucket.md) — Get one R2 bucket by name.\n- [`get_bucket_cors_policy`](actions/get_bucket_cors_policy.md) — Fetch the bucket-level CORS policy for an R2 bucket.\n- [`list_buckets`](actions/list_buckets.md) — List the R2 buckets in a Cloudflare account.\n- [`update_bucket`](actions/update_bucket.md) — Update mutable R2 bucket properties such as default storage class or jurisdiction.\n- [`update_bucket_cors_policy`](actions/update_bucket_cors_policy.md) — Replace the bucket-level CORS policy for an R2 bucket.\n\n## Safety\n\n- Read actions (get / list / search) are safe to run directly.\n- **Create, update, send, or post actions change Cloudflare R2 state — confirm the exact payload and effect with the user before running.**\n- **Delete or remove actions are destructive — always confirm the target and get explicit approval first.**\n\n## First-time setup\n\nThese are **one-time** steps — do not repeat them on every call. Run a step only when a command fails for the matching reason.\n\n- **`oo: command not found`** — install the oo CLI (other platforms: <https://cli.oomol.com/install-guide.md>):\n\n  ```bash\n  curl -fsSL https://cli.oomol.com/install.sh | bash    # macOS / Linux\n  ```\n\n  ```powershell\n  irm https://cli.oomol.com/install.ps1 | iex           # Windows PowerShell\n  ```\n\n- **Not signed in / authentication error** — sign in to your OOMOL account once:\n\n  ```bash\n  oo auth login\n  ```\n\n- **`scope_missing` / `credential_expired` / `app_not_ready` / `app_not_found`** — Cloudflare R2 is not connected, or the connection expired or lacks a scope. Connect once (auth type: custom credential) at:\n\n  ```text\n  https://console.oomol.com/app-connections?provider=cloudflare_r2\n  ```\n\n- **HTTP 402 / `OOMOL_INSUFFICIENT_CREDIT`** — billing stop. Recharge at `https://console.oomol.com/billing/token-recharge` before retrying.\n\n## Resources\n\n- Cloudflare R2 homepage: https://www.cloudflare.com\n\nFile v1.0.0:_meta.json\n\n{\n  \"ownerId\": \"kn74pwknhp75yqaa9z083s2pqx87z5g4\",\n  \"slug\": \"oo-cloudflare-r2\",\n  \"version\": \"1.0.0\",\n  \"publishedAt\": 1780485246687\n}\n\nFile v1.0.0:actions/create_bucket.md\n\n# Cloudflare R2 · `create_bucket`\n\nCreate an R2 bucket in a Cloudflare account.\n\n- **Service**: `cloudflare_r2`\n- **Action**: `create_bucket`\n- **Action id**: `cloudflare_r2.create_bucket`\n\n## Inspect the schema\n\nAlways fetch the authoritative input/output schema before building a payload — fields and defaults can change upstream:\n\n```bash\noo connector schema \"cloudflare_r2\" --action \"create_bucket\"\n```\n\n## Run\n\n```bash\noo connector run \"cloudflare_r2\" --action \"create_bucket\" --data '{}' --json\n```\n\nReplace `{}` with a JSON object that matches the input schema. The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`.\n\n> **Write action.** This changes Cloudflare R2 state. Confirm the exact payload and intended effect with the user before running.\n\nFile v1.0.0:actions/delete_bucket_cors_policy.md\n\n# Cloudflare R2 · `delete_bucket_cors_policy`\n\nDelete the bucket-level CORS policy for an R2 bucket.\n\n- **Service**: `cloudflare_r2`\n- **Action**: `delete_bucket_cors_policy`\n- **Action id**: `cloudflare_r2.delete_bucket_cors_policy`\n\n## Inspect the schema\n\nAlways fetch the authoritative input/output schema before building a payload — fields and defaults can change upstream:\n\n```bash\noo connector schema \"cloudflare_r2\" --action \"delete_bucket_cors_policy\"\n```\n\n## Run\n\n```bash\noo connector run \"cloudflare_r2\" --action \"delete_bucket_cors_policy\" --data '{}' --json\n```\n\nReplace `{}` with a JSON object that matches the input schema. The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`.\n\n> **Destructive action.** This removes or overwrites Cloudflare R2 data. Always confirm the target and get explicit user approval before running.\n\nFile v1.0.0:actions/delete_bucket.md\n\n# Cloudflare R2 · `delete_bucket`\n\nDelete an R2 bucket by name.\n\n- **Service**: `cloudflare_r2`\n- **Action**: `delete_bucket`\n- **Action id**: `cloudflare_r2.delete_bucket`\n\n## Inspect the schema\n\nAlways fetch the authoritative input/output schema before building a payload — fields and defaults can change upstream:\n\n```bash\noo connector schema \"cloudflare_r2\" --action \"delete_bucket\"\n```\n\n## Run\n\n```bash\noo connector run \"cloudflare_r2\" --action \"delete_bucket\" --data '{}' --json\n```\n\nReplace `{}` with a JSON object that matches the input schema. The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`.\n\n> **Destructive action.** This removes or overwrites Cloudflare R2 data. Always confirm the target and get explicit user approval before running.\n\nFile v1.0.0:actions/get_bucket_cors_policy.md\n\n# Cloudflare R2 · `get_bucket_cors_policy`\n\nFetch the bucket-level CORS policy for an R2 bucket.\n\n- **Service**: `cloudflare_r2`\n- **Action**: `get_bucket_cors_policy`\n- **Action id**: `cloudflare_r2.get_bucket_cors_policy`\n\n## Inspect the schema\n\nAlways fetch the authoritative input/output schema before building a payload — fields and defaults can change upstream:\n\n```bash\noo connector schema \"cloudflare_r2\" --action \"get_bucket_cors_policy\"\n```\n\n## Run\n\n```bash\noo connector run \"cloudflare_r2\" --action \"get_bucket_cors_policy\" --data '{}' --json\n```\n\nReplace `{}` with a JSON object that matches the input schema. The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`.\n\nFile v1.0.0:actions/get_bucket.md\n\n# Cloudflare R2 · `get_bucket`\n\nGet one R2 bucket by name.\n\n- **Service**: `cloudflare_r2`\n- **Action**: `get_bucket`\n- **Action id**: `cloudflare_r2.get_bucket`\n\n## Inspect the schema\n\nAlways fetch the authoritative input/output schema before building a payload — fields and defaults can change upstream:\n\n```bash\noo connector schema \"cloudflare_r2\" --action \"get_bucket\"\n```\n\n## Run\n\n```bash\noo connector run \"cloudflare_r2\" --action \"get_bucket\" --data '{}' --json\n```\n\nReplace `{}` with a JSON object that matches the input schema. The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`.\n\nFile v1.0.0:actions/list_buckets.md\n\n# Cloudflare R2 · `list_buckets`\n\nList the R2 buckets in a Cloudflare account.\n\n- **Service**: `cloudflare_r2`\n- **Action**: `list_buckets`\n- **Action id**: `cloudflare_r2.list_buckets`\n\n## Inspect the schema\n\nAlways fetch the authoritative input/output schema before building a payload — fields and defaults can change upstream:\n\n```bash\noo connector schema \"cloudflare_r2\" --action \"list_buckets\"\n```\n\n## Run\n\n```bash\noo connector run \"cloudflare_r2\" --action \"list_buckets\" --data '{}' --json\n```\n\nReplace `{}` with a JSON object that matches the input schema. The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`.\n\nFile v1.0.0:actions/update_bucket_cors_policy.md\n\n# Cloudflare R2 · `update_bucket_cors_policy`\n\nReplace the bucket-level CORS policy for an R2 bucket.\n\n- **Service**: `cloudflare_r2`\n- **Action**: `update_bucket_cors_policy`\n- **Action id**: `cloudflare_r2.update_bucket_cors_policy`\n\n## Inspect the schema\n\nAlways fetch the authoritative input/output schema before building a payload — fields and defaults can change upstream:\n\n```bash\noo connector schema \"cloudflare_r2\" --action \"update_bucket_cors_policy\"\n```\n\n## Run\n\n```bash\noo connector run \"cloudflare_r2\" --action \"update_bucket_cors_policy\" --data '{}' --json\n```\n\nReplace `{}` with a JSON object that matches the input schema. The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`.\n\n> **Write action.** This changes Cloudflare R2 state. Confirm the exact payload and intended effect with the user before running.\n\nFile v1.0.0:actions/update_bucket.md\n\n# Cloudflare R2 · `update_bucket`\n\nUpdate mutable R2 bucket properties such as default storage class or jurisdiction.\n\n- **Service**: `cloudflare_r2`\n- **Action**: `update_bucket`\n- **Action id**: `cloudflare_r2.update_bucket`\n\n## Inspect the schema\n\nAlways fetch the authoritative input/output schema before building a payload — fields and defaults can change upstream:\n\n```bash\noo connector schema \"cloudflare_r2\" --action \"update_bucket\"\n```\n\n## Run\n\n```bash\noo connector run \"cloudflare_r2\" --action \"update_bucket\" --data '{}' --json\n```\n\nReplace `{}` with a JSON object that matches the input schema. The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`.\n\n> **Write action.** This changes Cloudflare R2 state. Confirm the exact payload and intended effect with the user before running.\n\nFile v1.0.0:skill-card.md\n\n## Description: <br>\nOperates Cloudflare R2 through an OOMOL-connected account for reading, creating, updating, and deleting bucket resources. <br>\n\nThis skill is ready for commercial/non-commercial use. <br>\n\n## Publisher: <br>\n[oomol](https://clawhub.ai/user/oomol) <br>\n\n### License/Terms of Use: <br>\nMIT-0 <br>\n\n\n## Use Case: <br>\nDevelopers and operators use this skill to manage Cloudflare R2 buckets and bucket CORS policies through the oo CLI with OOMOL-connected credentials. <br>\n\n### Deployment Geography for Use: <br>\nGlobal <br>\n\n## Known Risks and Mitigations: <br>\nRisk: Automated security evidence is a low-confidence clean result. <br>\nMitigation: Review the displayed actions, requested credentials, and install commands before installing or running the skill. <br>\nRisk: Create, update, and delete actions can change or remove Cloudflare R2 bucket state. <br>\nMitigation: Confirm the exact action, target bucket, payload, and intended effect with the user before running write or destructive commands. <br>\nRisk: Connector schemas can change upstream. <br>\nMitigation: Fetch the live action schema with oo connector schema before constructing or submitting any payload. <br>\n\n\n## Reference(s): <br>\n- [Cloudflare R2 homepage](https://www.cloudflare.com) <br>\n- [ClawHub listing](https://clawhub.ai/oomol/oo-cloudflare-r2) <br>\n- [OOMOL publisher profile](https://clawhub.ai/user/oomol) <br>\n\n\n## Skill Output: <br>\n**Output Type(s):** [text, markdown, shell commands, configuration, guidance] <br>\n**Output Format:** [Markdown with inline shell commands and JSON payloads] <br>\n**Output Parameters:** [1D] <br>\n**Other Properties Related to Output:** [May produce JSON responses from oo connector commands when actions are executed.] <br>\n\n## Skill Version(s): <br>\n1.0.0 (source: frontmatter and server release evidence) <br>\n\n## Ethical Considerations: <br>\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment. <br>","readmeExcerpt":"Skill: Cloudflare R2 Owner: oomol Summary: Cloudflare R2 (cloudflare.com). Use this skill for ANY Cloudflare R2 request — reading, creating, updating, and deleting data. Whenever a task involves Cloudflare R2, use this skill instead of calling the API directly. Tags: latest:1.0.10 Version history: v1.0.10 | 2026-09-20T03:12:28.203Z | user - Operate Cloudflare R2 through the OOMOL-connected oo CLI. - Inspect live acti","codeSnippets":[],"executableExamples":[{"language":"bash","snippet":"oo connector schema \"cloudflare_r2\" --action \"<action_name>\""},{"language":"bash","snippet":"oo connector run \"cloudflare_r2\" --action \"<action_name>\" --data '<json>' --json"},{"language":"bash","snippet":"curl -fsSL https://cli.oomol.com/install.sh | bash    # macOS / Linux"},{"language":"bash","snippet":"curl -fsSL https://cli.oomol.com/install.sh | bash    # macOS / Linux"},{"language":"powershell","snippet":"irm https://cli.oomol.com/install.ps1 | iex           # Windows PowerShell"},{"language":"bash","snippet":"oo auth login"}],"parameters":null,"dependencies":[],"permissions":[],"extractedFiles":[{"path":"SKILL.md","content":"---\nname: oo-cloudflare-r2\ndescription: \"Cloudflare R2 (cloudflare.com). Use this skill for ANY Cloudflare R2 request — reading, creating, updating, and deleting data. Whenever a task involves Cloudflare R2, use this skill instead of calling the API directly.\"\nallowed-tools: [Bash(oo *)]\nmetadata:\n  title: \"Cloudflare R2\"\n  author: \"OOMOL\"\n  version: \"1.0.10\"\n  services: [\"cloudflare_r2\"]\n  icon: \"https://static.oomol.com/logo/third-party/Cloudflare.svg\"\n---\n\n# Cloudflare R2\n\nOperate **Cloudflare R2** through your OOMOL-connected account. This skill calls the `cloudflare_r2` connector with the [oo CLI](https://github.com/oomol-lab/oo-cli); OOMOL injects credentials server-side, so you never handle raw tokens.\n\n## Running an action\n\nAssume the user has already installed the oo CLI, signed in, and connected Cloudflare R2. **Do not run `oo auth login` or open the connection URL proactively — just run the action.** Fall back to [First-time setup](#first-time-setup) only when a command actually fails with an auth or connection error.\n\n**1. Inspect the contract** to get the authoritative input/output schema before building a payload:\n\n```bash\noo connector schema \"cloudflare_r2\" --action \"<action_name>\"\n```\n\n**2. Run the action** with a JSON payload that matches the input schema:\n\n```bash\noo connector run \"cloudflare_r2\" --action \"<action_name>\" --data '<json>' --json\n```\n\n- `--data` takes a JSON object string or `@path/to/file.json`; omit it to send `{}`.\n- The response is `{ \"data\": ..., \"meta\": { \"executionId\": \"...\" } }`; the execution id lives under `meta.executionId`.\n\nEach action is listed below with a one-line description; actions that change state carry a `[write]` or `[destructive]` tag. Before constructing `--data`, fetch the action's live schema with `oo connector schema` to get its authoritative input fields.\n\n## Available actions\n\n- `add_custom_domain` — Attach a custom domain from a Cloudflare zone to an R2 bucket. [write]\n- `create_bucket` — Create an R2 bucket in a Cloudflare account. [write]\n- `create_event_notification_rules` — Add event notification rules that send R2 bucket events to a Cloudflare Queue. [write]\n- `create_temporary_access_credentials` — Create short-lived S3-compatible credentials scoped to one R2 bucket and optionally to prefixes or objects. [write]\n- `delete_bucket` — Delete an R2 bucket by name. [destructive]\n- `delete_bucket_cors_policy` — Delete the bucket-level CORS policy for an R2 bucket. [destructive]\n- `delete_custom_domain` — Detach a custom domain from an R2 bucket. [destructive]\n- `delete_event_notification_rules` — Delete event notification rules bound to one queue. Deletes every rule for the queue when ruleIds is omitted. [destructive]\n- `delete_object` — Delete one R2 object by key. [destructive]\n- `delete_objects` — Delete a list of R2 objects by key in one request. [destructive]\n- `delete_objects_by_prefix` — Start a background job that deletes every object under a key prefix, or empties the whole b"},{"path":"_meta.json","content":"{\n  \"ownerId\": \"kn74pwknhp75yqaa9z083s2pqx87z5g4\",\n  \"slug\": \"oo-cloudflare-r2\",\n  \"version\": \"1.0.10\",\n  \"publishedAt\": 1789873948203\n}"},{"path":"skill-card.md","content":"## Description:\n\nCloudflare R2 helps agents operate Cloudflare R2 through OOMOL's oo CLI for reading, creating, updating, and deleting storage resources.\n\nThis skill is ready for commercial/non-commercial use.\n\n## Publisher:\n\n[oomol](https://clawhub.ai/user/oomol)\n\n### License/Terms of Use:\n\nMIT-0\n\n## Use Case:\n\nDevelopers and operators use this skill to manage Cloudflare R2 buckets, objects, access settings, domains, lifecycle rules, CORS, locks, metrics, notifications, temporary credentials, presigned URLs, and related background jobs from an agent workflow.\n\n### Deployment Geography for Use:\n\nGlobal\n\n## Known Risks and Mitigations:\n\nRisk: First-time setup may pipe a remote installer directly into a shell.\n\nMitigation: Review the OOMOL CLI installer before running it and prefer a verified package or signed release when available.\n\nRisk: The skill can change or delete Cloudflare R2 storage data.\n\nMitigation: Confirm the exact bucket, object, action, and payload before allowing write or destructive operations.\n\nRisk: Connector action payloads may drift from the skill text.\n\nMitigation: Inspect the live connector schema before constructing or running an action payload.\n\n## Reference(s):\n\n- [Cloudflare R2 homepage](https://www.cloudflare.com)\n- [OOMOL oo CLI](https://github.com/oomol-lab/oo-cli)\n- [ClawHub skill page](https://clawhub.ai/oomol/skills/oo-cloudflare-r2)\n\n## Skill Output:\n\n**Output Type(s):** [Guidance, Shell commands, Configuration, JSON]\n\n**Output Format:** [Markdown with inline shell commands and JSON payloads]\n\n**Output Parameters:** [1D]\n\n**Other Properties Related to Output:** [Uses live connector schemas before actions and returns connector responses containing data and execution metadata.]\n\n## Skill Version(s):\n\n1.0.10 (source: server release metadata and skill frontmatter)\n\n## Ethical Considerations:\n\nUsers should evaluate whether this skill is appropriate for their environment, review any generated or modified files before relying on them, and apply their organization's safety, security, and compliance requirements before deployment."}],"languages":[],"docsSourceLabel":"CLAWHUB","editorialOverview":null,"editorialQuality":{"score":100,"threshold":65,"status":"thin","wordCount":1687,"uniquenessScore":37,"reasons":["uniqueness-below-45"]}},"media":{"evidence":{"source":"no-media","verified":false,"confidence":"low","updatedAt":"2026-10-11T00:19:06.054Z","emptyReason":"No screenshots, media assets, or demo links are available."},"primaryImageUrl":null,"mediaAssetCount":0,"assets":[],"demoUrl":null},"ownerResources":{"evidence":{"source":"unclaimed","verified":false,"confidence":"low","updatedAt":"2026-10-11T00:19:06.054Z","emptyReason":"This page has not been claimed by the agent owner."},"hasCustomPage":false,"customPageUpdatedAt":null,"customLinks":[],"structuredLinks":{"docsUrl":null,"demoUrl":null,"supportUrl":null,"pricingUrl":null,"statusUrl":null},"customPage":null},"relatedAgents":{"evidence":{"source":"protocol-neighbors","verified":false,"confidence":"medium","updatedAt":"2026-10-11T03:54:54.226Z","emptyReason":null},"items":[{"id":"8ebccd8e-3863-4187-8355-c3f14e1f9edf","entityType":"agent","canonicalPath":"/agent/iofficeai-aionui","slug":"iofficeai-aionui","name":"AionUi","description":"Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!","url":"https://github.com/iOfficeAI/AionUi","homepage":"https://www.aionui.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-10-09T19:11:12.944Z","createdAt":"2026-02-25T03:38:16.584Z","downloads":null},{"id":"b917f68a-ebff-438e-84f8-3f4b2494c0bc","entityType":"agent","canonicalPath":"/agent/activepieces-activepieces","slug":"activepieces-activepieces","name":"activepieces","description":"AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents","url":"https://github.com/activepieces/activepieces","homepage":"https://www.activepieces.com","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-15T02:22:12.426Z","createdAt":"2026-02-25T03:38:12.412Z","downloads":null},{"id":"5cb26759-3a39-483f-94cf-276a98c13bb8","entityType":"agent","canonicalPath":"/agent/cherryhq-cherry-studio","slug":"cherryhq-cherry-studio","name":"cherry-studio","description":"AI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs","url":"https://github.com/CherryHQ/cherry-studio","homepage":"https://cherry-ai.com","source":"GITHUB_REPOS","protocols":["MCP","OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-04-11T14:38:40.986Z","createdAt":"2026-02-25T03:38:19.379Z","downloads":null},{"id":"6f6582d0-5d76-4f0f-b81d-86520247950b","entityType":"agent","canonicalPath":"/agent/copilotkit-copilotkit","slug":"copilotkit-copilotkit","name":"CopilotKit","description":"The Frontend for Agents & Generative UI. React + Angular","url":"https://github.com/CopilotKit/CopilotKit","homepage":"https://docs.copilotkit.ai","source":"GITHUB_REPOS","protocols":["OPENCLAW"],"capabilities":[],"safetyScore":100,"overallRank":70,"updatedAt":"2026-03-25T09:50:57.846Z","createdAt":"2026-02-25T03:39:14.617Z","downloads":null}],"links":{"hub":"/agent","source":"/agent/source/clawhub","protocols":[{"label":"OpenClaw","href":"/agent/protocol/openclew"}]}}}