Simple, vibe-codable business automation.

Eliminate operational friction.

automations/example.ts
import { t, automation } from "grease.sh"
import { gmail, cursor, slack } from "grease.sh/components"

export default automation("Triage customer tickets", () => {
  const email = gmail.onNewEmail({
    account: "support",
    label: "customer",
  })

  const triage = cursor.runCloudAgent({
    prompt: t`Triage this ticket: ${email.body}`,
    target: "support-triage",
  })

  slack.sendMessage({
    channel: "#support",
    text: t`Ticket: ${triage.summary}`,
  })
})

Primed for
vibe-coding

Your automations are just TypeScript, so you can build them with your favorite LLMs and upload them to GitHub.

Fast by default

Steps run when their inputs are ready. Parallelism emerges naturally. No extra orchestration work.

Durable and long-running

Run automations for seconds, hours, or days with state preserved, so every step can pick up exactly where it left off.