Achieve operational harmony with
business automation that's vibe-codable.

workflows/example.ts
import { t, workflow } from "opkitty"
import { gmail, cursor, slack } from "opkitty/components"
export default workflow("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
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 workflows for seconds, hours, or days with state preserved, so every step can pick up exactly where it left off.