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.
The agent laid out the work. Your move.
We're excited to announce that after months of hard work, version 2 of our product is now generally available to all customers worldwide.
Under the hood: a new actions runtime, attachments, and a faster sync loop…
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.
Template once. Then every cycle: ~10 minutes of review for a batch that used to take the afternoon.
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.
Your agent fills every client's copy from your template — their numbers, their story, their recommendation.
Skim the stack, adjust the line that matters, approve. That's your whole part — judgment, not assembly.
Links stay live after you send — opens and approvals flow back, and your agent handles the follow-up.
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.
▾// 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, … } })
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" }
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