Porch

The customer facing layer for your background AI agents

Hosted progress and approvals for background AI agents — your customer watches, answers, and steers as your agent runs. One SDK call, five minutes to ship.

Get started — free
porch.so/t/demo
Acme Corp
Pending

Cold outreach — Q3 SMB campaign

Starting shortly.

Live Activity

Waiting for activity.

  1. Identify
  2. Personalize
  3. Approve batch
  4. Send
How it works

From SDK to live URL in minutes.

01

Create a track.

One function call. Name it, list the steps.

02

Stream. Or ask.

Each step lands live. Each ask waits for your customer.

03

Send the link.

Email, Slack, SMS — whatever channel you already use to reach them.

Plug into your existing stack.

The track URL drops into any channel — Resend email, Slack DM, SMS, your CRM. No new sender to set up.

Or skip the wiring — signed webhooks fire the moment a track lands or an ask opens.

Why this matters

The customer-facing surface, already built.

Background agents go dark.

Yours runs for minutes; your client sees a spinner. They reload. They wonder if it broke. Porch is the page they see instead — progress when it’s working, asks when it pauses.

The week-of-work you keep deferring.

Status page. Approval flow. Mobile layout. Dark mode. Per client. Per agent. Forever. Or you ship Porch instead.

One SDK call. Whole surface.

Hosted page, real-time updates, approval cards, activity feed, mobile, dark mode, embed iframe. Already there. Your client sees “Merge 12 duplicates?” — not “Your AI is working.”

Install

Two ways to integrate.

Have your coding agent wire it up via MCP, or drop the SDK in yourself. Either way you’re surfacing progress and approvals to your customer in minutes, not an afternoon.

One terminal command. Your coding agent picks it up and wires Porch into your project — SDK install, first track, everything.

claude mcp add --transport http porch https://porch.so/mcp
Pricing

Simple pricing for founders.

Flat monthly. No per-seat. No per-track overages. Hitting a cap sends you an email; it doesn’t break your production.

FAQ

Common questions, answered.

How is this different from chat agents like ChatGPT or Claude?

Chat agents work in the foreground — you ask, they answer, you wait. Background agents work on their own. Porch is the page for the background kind — the 5-minute imports, the 20-minute reports, the overnight migrations.

What does the customer see when my agent pauses for input?

An approval card on the status page. Question above, buttons below. They tap one. Your track.ask() call resolves with their answer.

Does it work with any agent framework?

Yes. LangChain, Vercel AI SDK, OpenAI Agents SDK, LangGraph, custom agents, Python, Node, cURL. If it can make an HTTP request, it works.

What if the customer doesn't answer?

You set the deadline; we enforce it. Default is 30 minutes, max 24 hours. After that, track.ask() returns { status: "timeout" } and your agent decides what to do next.

What goes in the step titles and logs?

Whatever’s useful to your customer. Keep secrets and PII out — step titles and log messages are stored on our servers. Self-hosting is available on enterprise.

Can I customize the status page?

Logo and accent color on paid tiers. Custom domain on Starter and up. That’s it on purpose — we ship the craft, you drop in your brand.

What happens when a track finishes?

It stays at its URL. Indefinitely on paid plans, 30 days on Free. Great for sharing results later or attaching to support tickets.

Can I embed the status page in my app?

Yes. Every status page works in an iframe. The SDK also ships a React component if you want it inline.

What about the setup — is it really 5 minutes?

Sign up, copy your API key, npm install, drop in createTrack() or install via MCP. Five minutes is the promise. If it takes longer, tell us.

Is this an observability tool?

No. Observability tools (Langfuse, AgentOps, LangSmith) show you how your agents are performing. Porch shows your customer how their specific task is going. Different surface, different buyer. Porch sits next to your observability stack, not instead of it.