Launching today

leafslip
Forms for everyone, agents and humans
0 followers
Forms for everyone, agents and humans
0 followers
Forms for everyone, agents and humans. Write a form as a plain-text file, or let your agent write one over MCP, and anyone answers from a link: no install, no workspace, no account. When the answer has to come from a named person, leafslip emails them, chases the next if they stay quiet, and hands your agent back a boolean. A request that expires carries no approved key at all. Silence is never yes. Free during the launch beta.









Hi, I'm the solo guy behind leafslip
What broke first: an agent I was running got stuck on a decision it could not make on its own (should I drop this legacy table?) and nothing existed that let it ask a person and pick up the answer. LangGraph's interrupt() pauses the graph cleanly, but leaves you to build the "someone please submit this back to my process" part. Slack approval bots work if your answerer is in your Slack, if the person clicking is the person you asked, and if silence is not read as consent. Most teams end up with a webhook and a hand-rolled page. It works, and it gets the trust rules wrong more often than anyone would like.
What leafslip is: forms for everyone, agents and humans. A form is one plain-text .form file that a person and a program can both read. You write it, or your agent writes it mid-run over MCP, and anyone answers from a link, with no install and no account. When the answer has to come from a named person, the same file becomes an approval request: it emails the first name, chases the next if they stay quiet (or waits for all of them, or a quorum), closes at a deadline, and the run gets back approved: true or false. That's a value it can branch on, not a label it has to string-match.
The rule the whole thing is built on: an expired request carries no "approved" key at all. Not false: absent. There is deliberately no on_timeout: "approve" option, and no code path from a deadline to a decision. On the day something goes wrong, a program cannot mistake silence for a yes.
What it costs: nothing, during the launch beta. Unlimited forms and answers, kept as long as you want, no badge, up to 25 custom domains, and no monthly approval cap. (There is a 10,000-a-month stop, and it exists only to catch a runaway loop.) A paid plan comes after the beta, and /pricing already says what it will be, so the end of the beta won't surprise anybody. Nothing charges a card today.
What it can't do yet: no SSO. No seats. No custom sender domain (approvers see leafslip.app). No SOC 2 and no HIPAA BAA. If any of those is a hard requirement, this isn't the tool for you today. leafslip.app/roadmap is honest about what isn't built.
If you've built this yourself and it works, you're right. The case where leafslip wins is when the approver isn't on your team: a customer signing off on a refund, a legal reviewer at another company, a supplier at a partner. If you never hit that, keep what you built.
To try it: npx @leafslip/cli install finds Claude Code, Cursor, Codex or Gemini on your machine and wires it in. Then ask your agent to "use leafslip to ask whether we should ship".
A question for the room: when an agent you asked to do something real got stuck, what did it stop on, and how did it tell you? I want to hear how it fails today, because I think that answer decides what leafslip ships next.