A fleet of AI agents in your own Cloudflare account
A self-hosted team of AI agents that routes each job to the right role and waits for approval before changing anything outside itself.
Giving an AI agent real work means giving it real access: your email, your issue tracker, your repositories. I wanted that access to live somewhere I already control, with a person still deciding what actually goes out the door.
That idea became powerhouse, a fleet of AI agents for a team that runs entirely in its own Cloudflare account. There is no powerhouse server between you and Cloudflare, and the project itself is free. Running it uses your own accounts.
One prompt, routed to a role
Using it starts with a single box. You type what needs doing, and a fast decision model picks the right role in under a second. If you would rather choose, Cmd+K lets you pick one yourself.
A role is where the real configuration lives. Each one has a purpose, instructions, a model, tools, allowed sites, connections, and skills. You can start from the defaults or a library that includes a researcher, a competitor watcher, a site QA tester, a product manager, and support replies. The role editor also suggests skills from a bundled set of 32.
Jobs run on Claude or GPT through your AI Gateway by default, with open-weight models on Workers AI as an alternative for an org or a single role. Each job shows up as a pill with its current step and estimated cost, and everyone in the org sees the same live state.
Real tools, with a person in the loop
Agents can read pages, search the web, drive a real browser with screenshots and takeover, and send email. Linear, Notion, Atlassian, Sentry, GitHub, or any remote MCP server can be connected once and allowed for the roles that need them. Optional tools stay off until you turn them on.
The approval step is what makes that comfortable. Emails and writes to connected accounts wait for a person, with the full details shown. For roles with connections, so do browser actions and reading sites outside the role’s allowed list. Web pages, search results, and connection results are marked as untrusted for the model, because anything an agent reads could be trying to steer it.
Sign-in goes through Cloudflare Access, so only the people you allow can get in. Provider keys stay on your AI Gateway, where powerhouse never sees them. Setup asks for a Cloudflare API token once and never saves it.
Meeting people where they already work
powerhouse has no Slack or other chat integrations, and that is a deliberate decision rather than a gap. Once an admin turns on its MCP server, members can start jobs and read results from Claude, ChatGPT, or Cursor. Approvals still happen only in powerhouse.
Scheduled jobs and push notifications cover the rest. A job can run every day, on weekdays, or every few hours in your time zone, and your devices hear about it when a job needs you, fails, or finishes a scheduled run.
Easy to start, easy to leave
There are a few ways to set it up: a Deploy to Cloudflare button with a short guided setup, a coding agent following the repository’s instructions, or node setup.mjs. Cloudflare’s free tier runs everything except the browser tool and open-weight models, which need Workers Paid. Zero Trust is the one step you have to turn on yourself.
Leaving matters as much as starting. node setup.mjs --remove lists exactly what it found, asks you to type the Worker’s name, and then deletes it in order. Updates arrive as a pull request or a single command, and they never overwrite the roles you already have.
powerhouse is available now, and its roadmap will follow what teams ask for. My goal is modest: let a team hand real work to agents without handing their accounts to anyone else.
Back to all posts