From cloudflare
Use this skill when the user asks about Cloudflare Durable Objects, stateful serverless on Cloudflare, WebSocket coordination, distributed counters or locks, or managing Durable Objects with Pulumi.
npx claudepluginhub nsheaps/ai-mktpl --plugin cloudflareThis skill uses the workspace's default tool permissions.
Durable Objects provide strongly consistent, low-latency coordination and state for Workers. Each object is a single-threaded instance with persistent storage, ideal for WebSocket servers, counters, rate limiters, and collaborative apps.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Searches prompts.chat for AI prompt templates by keyword or category, retrieves by ID with variable handling, and improves prompts via AI. Use for discovering or enhancing prompts.
Guides agent creation for Claude Code plugins with file templates, frontmatter specs (name, description, model), triggering examples, system prompts, and best practices.
Durable Objects provide strongly consistent, low-latency coordination and state for Workers. Each object is a single-threaded instance with persistent storage, ideal for WebSocket servers, counters, rate limiters, and collaborative apps.
cloudflare.WorkersScript with durableObjectBindingsexport class Counter {
state: DurableObjectState;
constructor(state: DurableObjectState) {
this.state = state;
}
async fetch(request: Request): Promise<Response> {
let value = (await this.state.storage.get<number>("count")) ?? 0;
value++;
await this.state.storage.put("count", value);
return new Response(value.toString());
}
}
export default {
async fetch(request: Request, env: Env): Promise<Response> {
const id = env.COUNTER.idFromName("my-counter");
const stub = env.COUNTER.get(id);
return stub.fetch(request);
},
};
[durable_objects]
bindings = [
{ name = "COUNTER", class_name = "Counter" }
]
[[migrations]]
tag = "v1"
new_classes = ["Counter"]
const worker = new cloudflare.WorkersScript("do-worker", {
accountId,
name: "do-worker",
content: workerScript,
module: true,
});
// Durable Object bindings are part of the Worker script resource.
// The class must be exported from the Worker module.
// Migrations are handled via wrangler.toml, not Pulumi.
| Resource | Free | Paid |
|---|---|---|
| Requests | 1M included | $0.15/M |
| Duration | 400K GB-s | $12.50/M GB-s |
| Storage reads | 1M/month | $0.20/M |
| Storage writes | 1M/month | $1.00/M |
| Storage | 1 GB | $0.20/GB/month |