Works with Claude, ChatGPT, and any agent

Your agent can talk.
Now give it a UI.

rect gives your agent hosted, interactive screens it can create, fill, and read — reports your clients approve inside the page, dashboards that stay current, forms that hand files back. You get a link. It does the rest.

Monthly reportsProposalsQBRsOnboarding kitsContract redlines
One chat thread
Get the v2 launch ready.
Broke it into a board — drag anything you want moved, I'll see it. ↗ launch board
Announcement drafted. Mark it up — I'll rewrite in place. ↗ draft
Rewrote the intro from your note. Pick a hero line and approve the date. ↗ ship it
Scheduled for Nov 12 🚀 Board's live — I'll keep it moving.
One job, four screens — it hands you the right one each step
one thread · four screens
🚀
v2 Launch
Launch board · drag to reprioritize
BOARD
This week
Demo video
Next
Announcement post
Pricing page
Changelog
Done

The agent laid out the work. Your move.

Announcement post
Draft · your markup, its rewrite
DRAFT 2

We're excited to announce that after months of hard work, version 2 of our product is now generally available to all customers worldwide.

💬 you — “cut the throat-clearing, lead with what's new”

Under the hood: a new actions runtime, attachments, and a faster sync loop…

Ship it
Hero line + date · one click
FINAL
AYour agent, live on every screen.
BYour agent can talk. Now give it a UI.
GOES LIVETue, Nov 12 · 9am PT
The division of labor

You do the judgment.
It does the assembly.

rect doesn't take you out of the work — it takes out the work that never needed you. Make your template once; every cycle after that is review and send.

What you never do again

  • Rebuilding the same document with new numbers, client by client
  • Copy-pasting data from dashboards into slides
  • Writing twelve variations of the same summary
  • Sending “did you get a chance to look?” emails

What's still yours

  • Judgment — skim each draft, fix the one sentence that matters
  • The call — you decide what goes out, and when
  • The relationship — you show up with the insight, not the formatting

Template once. Then every cycle: ~10 minutes of review for a batch that used to take the afternoon.

Start above the baseline

Templates your agent can drive today.

Every card is a real template — your agent fills it per client, or your team works in one shared copy. Fork any of them, or let your agent build its own.

For your clients
↑ current

“Send every account their Q2 report”

Client report

Minted per client from one template, each with their own numbers — and the numbers refresh themselves after you send.

Use this template →
Starter
Growth ✓
Scale

“Draft the proposal for tomorrow's call”

Sales proposal

Options side by side, tailored to the account. The client picks right in the view — your agent hears it instantly.

Use this template →
− remove+ add
AcceptReject

“Send the redlined contract back”

Contract redline

The other side accepts or rejects each change inline — no attachment ping-pong, every answer tracked.

Use this template →
For your team

“Track signups this week”

Live dashboard

The chat ends. The numbers don't. Your agent keeps the view fresh and pings you when something moves.

Use this template →

“Plan the launch with the team”

Shared board

One link in Slack. Everyone drags cards; the agent reorganizes, fills gaps, and follows up.

Use this template →
📄drop files here

“Collect everyone's slides for Friday”

File intake

Teammates drop files into the view; your agent reads them straight out and gets to work.

Use this template →
The loop

Set up once. Then: review, send, done.

1

It drafts everything

Your agent fills every client's copy from your template — their numbers, their story, their recommendation.

2

You take ten minutes

Skim the stack, adjust the line that matters, approve. That's your whole part — judgment, not assembly.

3

It follows through

Links stay live after you send — opens and approvals flow back, and your agent handles the follow-up.

Under the hood — for developers

A template is one HTML file with a typed view model and named actions. Any generator can produce it — React and Vite tooling included, never required.

the contract — state in, actions out
// a rect = HTML + a JSON view model + named actions.
// your agent mints copies by changing only the model:
rect_issue({ template: "monthly-report",
  viewModel: { client: "Meridian", roas: 4.1, … } })
views own their rules — agents get real answers
accept(state, input, ctx) {
  if (state.expired) ctx.reject('PROPOSAL_EXPIRED');
  state.accepted = { by: ctx.viewer, at: ctx.now };
}
// → { ok:false, code:"rejected", rejectCode:"PROPOSAL_EXPIRED" }

Your agent is a SaaS now.

Hosted screens. Users who never log in. Rules it can't break. Files in, decisions out. Connect rect to your agent and hand out the link.

MCP endpoint · https://www.rect.sh/api/mcp/rectsh