I'm Jordan. I work @cloudflare on the agent experience team.
I build small tools for AI agents: memory, sandboxes, proof, control surfaces, browser automation, and Cloudflare infrastructure. I write about it at coey.dev.
- write-judge: your coding agent can't delete the test to make it pass. A Pi extension; a small yes/no model judges every edit before it lands.
pi install git:github.com/acoyfellow/write-judge - coil: one thread, one agent, one computer. Pi Durable and a Cloudflare Container in one Durable Object.
- skin: an app that rewrites its own code while you use it, and can't brick itself.
- tardigrade: an agent you can kill, and it comes back. Pi Durable + Durable Objects + Artifacts.
- hark: a voice you talk to. No chat box. Deepgram Flux hears, Workers AI thinks, and it speaks back.
- odds: ask for odds, not prose. Clef decision models in Pi codemode.
- chat-ax: a shared team chat room with a durable fleet of AI agents, on your own Cloudflare account.
- my-ax: a personal AI agent operating environment you self-host on Cloudflare. Chat, desk, recipes, machines, and a factory that classifies GitHub issues. A human still merges.
- loop: one permanent conversation with an agent that builds your interface as you work. Every reply can compile a real Svelte 5 widget next to the chat, and it remembers what you tell it.
- mote: a programmable, local-first Mac control shell. Edit a Svelte file; the native menu-bar interface changes immediately.
- filepath: your own background agent environment. Workspaces, sandboxed filesystems, harness registry, and your own model keys.
- up: put a company's private web online on its own Cloudflare account. A folder becomes an immutable, Access-protected URL.
- hangar: give an agent a task, not your keys. Ready locked boxes on Cloudflare.
- spawn-agent-cloud: spawn an AI agent in Cloudflare, not on your laptop.
- executor-cloudflare: deploy Executor, the open-source agent integration layer, to your own Cloudflare account in one step.
- terrarium: execution, status, receipts, cancellation, and callbacks for bounded delegated agent tasks. One bounded task → one child run → one inspectable result.
- terraloop-mode: no child agents spawn until a contract is locked and a driver loop exists. A Pi extension.
- hold: a job waits. A runner claims once. There is no poll.
- lease: subscribe a pantry recipe to a peer outbox for a bounded time.
- room: disposable URL. Mint a room.
- trick: two URLs. Write yours. Read theirs. Not a chat.
- cell: invoke a named tenant. Get result and evidence. Do not receive source.
- tip: commits and trees. History is the product.
- pantry: a capability-scoped recipe store on Cloudflare Workers + D1. Stores and hands back scripts; never runs them.
- harness-runtime: a runtime contract for agent context, capability, authority, execution, proof, and continuity.
- agent-patterns: a practical library of bounded, steerable agent execution patterns.
- promotion-atom: a deterministic kernel that decides when successful agent work becomes a reusable artifact.
- ralph: processes stories from a PRD, one story per run, with strict checks.
- deja: repository-scoped memory and handoffs for coding agents. Agents learn from failures; deja remembers.
- wake: sessionless work continuity and handoffs for AI coding agents.
- imprint: immutable commit-bound repository context so an LLM can answer, compare, promote, and roll back against exact code versions.
- cache-layer: verified recipe routing for AI agents on Cloudflare.
- rolling-context-lab: a reproducible lab for measuring rolling context compaction in long-running agents.
- pi-fresh-session-handoff: context-threshold hooks, Deja auto-memory, and safe fresh-session handoff for Pi.
- argus: a sourced web research agent that gathers evidence, follows weak spots, and returns a clear report with links.
- orbit: bounded public-source monitor that turns releases and posts into evidence-linked briefs.
- pai-agent: research and analysis agent as a Cloudflare Durable Object with shell access, tool use, and WebSocket streaming.
- swarm: parallel research agents on your own Cloudflare account, across Workers, Durable Objects, and Workers AI.
- effect-agents: five agent patterns proven with Effect v4 — parallelism, streaming cancellation, approvals, typed errors, and MCP exposure.
- parley: two AI models debate until they agree on a plan.
- molt: an agent writes a tool, the loop injects a fault, and the agent repairs it. A separate verifier decides whether it passed — the agent does not.
- ditto: run multiple Cloudflare AI models simultaneously. Merge every output with consensus.
- speedrun: three Workers AI models race to fix the same bug in containers; a referee reruns the tests.
- jido-cartographer: map a public GitHub repo with one Jido agent per source file, on the BEAM.
- benchmarks: tool-calling reliability and latency tracking for Workers AI models.
- lower: one floor lower each experiment, from JavaScript to the math inside models. Claims and receipts.
- echo: drive a browser tab you're already signed into over MCP, without handing an agent your password or session token.
- unsurf: turn any website into a typed API. Scout, replay, auto-heal.
- agentcast: live browser sessions for AI agents. Watch them work in real time.
- machinectl: MCP server that lets AI control your machine from any device.
- chomp: OpenAI-compatible proxy for free LLM providers. Bring your keys. We route the rest.
- mcp-code-mode: wrap a Node/Bun MCP server with fail-closed search and sandboxed multi-tool execution.
- cmux-webchat: drive authenticated web chat UIs through cmux without exporting browser credentials.
- vidframes: cost-aware video frame extraction, vision analysis, and audio transcription via Workers AI.
- image-production-kit: small, deterministic tools for producing high-resolution web image variants and image lightrooms.
- anytool: give your AI agent infinite tools with one API call.
- inbox.dog: Gmail OAuth for AI agents. Read, write, search, and send with one integration.
- firestore-mcp-kit: build secure, typed MCP tools backed by Firestore with explicit Zod schemas.
- getlee: turn any prompt into a link that opens Cloudflare's Agent Lee, ready to send.
- lee: a standalone open-source Agent Lee client built with Svelte, Hono, and Effect 4.
- lee-model: Agent Lee as a model name. An OpenAI-compatible Worker with server-side tools.
- artifacts-lee-skills: team-editable agent skills on Cloudflare Artifacts.
git pushto update. - mulder: add selected read-only API tools to a website with WebMCP.
- predict: a small browser signal for the next useful step on a website.
- jev-code-mode: typed Jev judgments behind two MCP tools, search and execute.
- homerun: turn your laptop into a local HTTP proxy for web automation.
- ralphwiggums: Effect-first browser automation on Cloudflare Workers. Give it a prompt, get a completed task.
- effect-first: a resource for agents that want to write proper Effect programs.
Extensions for Pi, the coding agent — the tools I run my own agents on every day.
- witness: a coding agent shouldn't decide its own work is done. Runs a real check against what the agent produced and blocks the action if it fails.
- hashline-pi: line-anchored, tag-verified file edits with in-memory preflight and 3-way-merge recovery.
- mutex-pi: cross-process file lock and optimistic stale-read guard for Pi's read, edit, and write tools.
- loops-yaml: session-scoped recurring prompts for Pi and OpenCode, plus tiny scheduled or on-demand command loops.
- auto-thinking-pi: classifies prompt difficulty with a local heuristic and sets the reasoning effort for the next turn — no extra model call.
- edit: a small, approval-first Pi tool for safe, checked code changes.
- pi-ext-durable: a stock Pi extension running inside a Durable Object agent on pi-durable.
- lab: a sandbox that hands you the receipt. Isolated execution on Cloudflare Worker Loaders; every step becomes a shareable trace.
- cloudbox: durable Cloudflare computers for agents — run repos, steer live workspaces, verify results, and return receipts.
- cloudshell: browser-based terminal and dev environment in the cloud. Instant access to a full shell from anywhere.
- cloudterm: DOM-rendered web terminal emulator with custom ANSI parsing and latency prediction.
- mcpu: an MCP control surface for a Cloudflare Artifacts repo. GitHub is only the bootstrap seed; after first deploy, commits live in Artifacts and deploy back to Workers.
- promptlog: Dynamic Worker Loader with sandboxed code execution.
- ffmpeg-container: tiny Cloudflare Containers hello world proving ffmpeg runs at the edge.
- termlab: side-by-side benchmark of web terminal emulators.
- tsc-rs-worker: the TypeScript 7 type checker (tsc-rs) running in memory inside a Cloudflare Worker.
- nix-cf-proof: one devenv.nix gives a git that cannot force-push, on your Mac and in a Cloudflare Container.
- zero-cloudflare-hello: run a Zero native executable on Cloudflare Containers.
- tldraw-sandbox: an infinite canvas with AI-powered code terminals.
- glance: see your projects move. A local-first dashboard that observes work by people and agents as a live feed, color, sound, and a responsive 3D orb.
- desk: a personal app store for tiny edge devices.
git pushinstalls apps; MCP lets agents use the device as an out-of-band human I/O surface. - t2t: local push-to-talk dictation for macOS. Hold Fn to type with on-device Whisper; hold Fn+Ctrl to talk to a local Pi agent.
- living-artifact: physical and digital artifacts and tiny devices, with Cloudflare-hosted firmware OTA and health-gated rollback.
- anvil: animations agents can write. Lottie + three.js in one JSON dialect, on Cloudflare Workers.
- blackbox: replay a Pi agent log as a timeline and see which step Clef scores as the fault.
- lookout: private, view-only live screen streaming on Cloudflare.
- entropy-c: a portable physical-entropy experiment for Cloudflare's NYC office.
- gateproof: a local proof loop. Put the claim in a typed plan; it runs gates — observe, act, assert — until they pass or stop. Workers may change implementation. They may not rewrite
plan.ts. - tollgate: a local HTTP policy gate. Every request meets a rule before it leaves your machine.
- airlock: push a candidate version, run its tests, and make it live only if a signed proof of those tests passes.
- agent-admit: the model proposes. An admitter it does not own decides. Map of where that is live.
- mutant: mutation testing for TypeScript. Finds code your tests run but never actually check.
- keel: a provider-agnostic control plane for verified self-update. A candidate is identified by content and only promoted when its proof checks against trusted keys.
- cloudeval: run model evals, compare results, and ship shareable reports.
- corrections-to-gates: mine your own AI agent-correction exhaust into deterministic $0 gates for the mechanical slice of your corrections.
- visual-diff: framework-agnostic 3-tier visual-diff cascade — structure, computed style, and pixels — for a fail-closed 1:1 verdict.
- semantic-diff: extends visual-diff to a fail-closed 5-tier verdict with accessibility/semantic tiers.
- vitest-visual-diff: compare two live elements through structure, computed style, pixels, and accessibility in Vitest Browser Mode.
- agent-human-bridge: auditable agent and human software-building protocol designed to pass a human safety review.
- repo-audit: deterministic repo scoring across 11 quality dimensions.
- cf-tutorial: 95 questions to prove you know Cloudflare.
- vet: CASA Tier 2 / OWASP ASVS security scanner.
- deadlint: find dead public methods on Workers DurableObject / RpcTarget / Agent classes, plus structural clones. The linter layer above knip/oxlint.
- ascii-smuggler: Unicode smuggling and steganography toolkit for security research.
- gate-review: red-team your gates before implementing them.
- nightglass: an owned, deterministic classifier for whether agent claims are supported by evidence.
- killjoy: crash-test Durable Object agents. Kill at every save point and check what breaks.
- basic: a conformance suite for agent chat. The behaviors every chat app must keep, as Gherkin.
- capability-frontier: a reproducible benchmark for useful coding-agent autonomy under enforced capability limits.
- agent-adversary: fail-closed Rust/Wasm validation for adversarial agent operations.
- self-healing-ci: a bounded reference implementation for authenticated CI repair.
- mutant-nightly: a nightly agent that finds proven test gaps with mutation testing and opens a PR to close them.
- flue-gitlab-test-improver: a nightly Flue agent that adds missing tests to a GitLab repo and opens a draft MR.
- greenlight: gates go in red. Code comes out. Gates turn green.
- exhaust: turn the review comments you wrote into an evidence-linked checklist.
- goodput: evidence-adjusted efficiency for AI-assisted work.
- doclint: returns what an agent understood from your documentation, so you can see what it missed.
- svelte-hono: Svelte 5 SSR and hydration in a Hono Worker, without SvelteKit.
- kumo-compiler: author a component once in canonical React; compile to genuine native Vue, Svelte, and Solid.
- tuiport: real SSH applications built with OpenTUI and deployed in a Cloudflare Container.
- svelte-edge: agent-generated Svelte 5 UI compiled on Cloudflare Workers into inline edge bundles.
- capa: third-party APIs as proof-carrying Cloudflare service bindings.
- UserDO: per-user Durable Objects as data pods.
- JotDB: durable state without migrations. One Durable Object per user, tenant, room, or actor.
- blaze: real-time documents on Cloudflare. Firestore feel, Cloudflare price.
- fleet-pattern: hierarchical Durable Objects with ordered fan-out.
- workflow-live: real-time workflow monitoring on the edge.
- cache-sync: edge cache invalidation that actually scales.
- tiny: real-time collaborative todos with TinyBase + Durable Objects.
- bio: single-button WebAuthn auth on Cloudflare.
- ironalarm: reliable task scheduling for Cloudflare Durable Objects.
- ai-connect: minimal zero-dependency primitive for configuring and calling AI inference endpoints.
- remote: barebones starter for authenticated apps with persistent state on the edge.
- share: temporary, resumable file shares on Cloudflare Workers, Durable Objects, R2, and Turnstile.
- flue-snippets: real, runnable Flue agents on Cloudflare. Every snippet ships an E2E test that deploys, asserts, and tears down.
- think-snippets: live-proven Cloudflare Project Think contracts. Each example deploys to a real Worker, proves its claim against live state, and tears itself down.
- optkit: email subscriber management for Cloudflare Workers.
- facets-stress-test: how far one Durable Object can go as a parent of facets, measured in production.
- kumo-astro-demo: Astro consuming Kumo design-system components directly. No React.
- phoneline: a minimal voice AI agent on Workers, Twilio, and OpenAI Realtime.
- rank: an agentic SEO loop that runs on your own Cloudflare account.
- tax-agent: an AI tax filing agent on Cloudflare Workers.
- vibe-cdn: browser games on Cloudflare's edge.
- arcade: neon hovercraft survival. A browser game built and deployed on Cloudflare.
- heist: a prompt injection game. Get VaultBot (Llama 3.3 70B) to leak the vault.
- zoo: a shared world where each creature runs JavaScript a model wrote from one sentence.
- terra: a multiplayer 3D terrain playground on Workers, Svelte, three.js, and Durable Objects.
- oven: chat a 3D game into existence on Cloudflare.
- food-court: multiplayer food games on Workers + Durable Objects. One repo, many stalls.
- phonesites: build a website in 5 minutes from any device.
- signedseal: self-custody e-signatures.
- formdrift: voice, photo, and document input for web forms.
- formwing: AI outreach from contact forms.
Some favorites from coey.dev/blog.
- Patience: You've Never Controlled Anything: what Memento taught me about prompting agents.
- Campfire: The Oldest Protocol: every storytelling medium had a context window. We've always been writing prompts, we just called them stories.
- Prompts Are Wishes: every prompt is a hypothesis. The guardrails are somewhere else.
- Liquid Primitives: five parts of your stack to hold loosely.
- Worker Loaders as a Place: Dynamic Workers clicked when I stopped thinking about the API and started thinking about the room.
More at coey.dev/blog.
coey.dev · blog · @acoyfellow




