Add a human checkpoint to any automation, AI agent, or script in minutes. One API call sends the approval email. Your code waits for the decision.
⚠️ DESTRUCTIVE — git push origin main --force
Will overwrite upstream commits · Approve or reject…
DESTRUCTIVE · This action cannot be undone
Command
git push origin main --force
Why Claude wants this
The remote has diverged after a rebase. Force push is needed to sync the branch.
Files (2)
+ export async function POST(req) {
+ await deploy({ force: true })
- // force deploy disabled
… View full diff →
Developer first
const approval = await shonin.request({
action: "Deploy to production",
approver: "cto@company.com",
context: "PR #247 merged, 3 files changed"
})
if (approval.status === "approved") {
await deployToProduction()
}
Simple by design
POST to /v1/approvals with the action description, approver email, and optional context. You get back an approval ID immediately.
A clean, branded email arrives with Approve and Reject buttons. No login required. No account. One click.
Poll the approval by ID or receive a webhook the instant a decision is made. Act on the result however you like.
Pricing
No per-seat fees. No hidden charges. Pay for what you use.
Free
Get started at no cost.
Pro
For teams moving fast.
Team
For production-critical workflows.