Run more agents,
babysit less.
Pileless is the decision inbox for AI agents. When Claude Code, Codex, or your own agent hits something it shouldn't decide alone, like a deploy, a spend, or a publish, it drops the call into one queue. You decide once, and Pileless sends the answer back so the work keeps moving.
Free beta · quick MCP setup · no card · your agent, your model key.
Free up to 100 decisions a month · Pro from $29/mo · your content stays in your storage, never ours.
Process a sample pile. Four calls your agents might send. Clear them the way you would for real.
@pileless/mcp-server@0.3.0 adds the rank and fill-in decision types. CI green, rollback verified. Agent suggestion: approve, backward-compatible.{
"status": "resolved",
"decision": "approved",
"comment": "Ship it, backward-compatible."
}
The bottleneck isn't the agent. It's the handoff.
Agents can work for hours. One approval, one judgment call, or one missing answer stops the whole run. And today those asks scatter across terminals, Slack threads, and tabs you already closed.
The ask arrives too late
The agent stops at 2:14am. You see it at 9. The job was "running" all night, but no work actually moved.
The ask lands anywhere
A Slack ping, a closed terminal, or a log nobody checks. Blocking questions don't belong scattered across six tools.
You copy decisions by hand
You approve somewhere, paste the answer somewhere else, and hope the agent resumes.
More agents, more places to check
One agent is manageable. Five agents means five places to check for blocked work.
The calls only a human should make.
Every blocking question lands in one prioritized queue. You decide. Pileless returns the structured data, and the agent resumes.
Capture blocked decisions
Agents submit approvals and options into one prioritized queue.
Clear the queue fast
Approve, reject, request changes, pick one, rank options, or edit in place. Keyboard-first when you want speed, visual when context matters.
Decisions return as structured data
Every answer sends a webhook back to the agent: the decision, your notes, the chosen option, the reviewer, and an audit trail. No copy-paste.
How one decision flows
You answer once, and the workflow keeps moving.
1 · Agent hits a boundary
It reaches something it shouldn't do alone: deploy, spend, publish, delete, merge, reply, or choose.
2 · Agent sends the decision
It sends the question, context, options, and a callback URL into a pile.
3 · You answer once
Approve, reject, request changes, pick one, edit in place, or add a note. One pass.
4 · The workflow resumes
Pileless returns a structured payload to your callback. The agent continues.
Use Pileless when an agent needs to:
Built for running more agents than you can watch.
Solo builders
Let long-running Claude Code or Codex agents pause for permission and resume when you decide.
Agent builders
Add a human-approval layer without building queues, auth, a review UI, webhooks, and audit logs yourself.
Not another agent. Not another task board.
Pileless does exactly one job, and stays out of everything else.
Pileless gets the decision made and sends it back. That's it.
Your agents run the work. Pileless routes the decisions.
Pileless runs no AI. Your agent creates the pile, waits, and resumes. We never use your content for training or mining.
Plug in any agent
Wire up over MCP or the API. Your agent calls pile.create and waits for your call. Any model, on your key.
Your storage, always
Your file objects live in your own Cloudflare R2 bucket on every plan, never on Pileless infrastructure. We hold only the decision routing: the question, your answer, and the audit trail.
Secrets stay hidden
Detected API keys and credentials are redacted server-side before a reviewer or agent ever sees them. Default access is least privilege. Every access is audited.
Connect your agent
Setup is one step: connect over MCP. Your first guided pile then arrives from your own agent, so you learn the views and edits by clearing it.
API & webhooks
Drive it directly: create piles, receive each decision on your own callback URL.
from pileless import Pileless p = Pileless() # PILELESS_API_KEY from env pile = p.create_approval( name="Approve deploy?", content="Ship v0.3 to npm. CI green, rollback verified.", reviewer_prompt="Backward-compatible. Ship it?", ) resolution = pile.wait_for_resolution() # agent blocks until you decide