Sign in Start free

ShiftLabs

Runbooks and AI agents in code, with a person approving the risky steps

Write workflows in TypeScript or Python and start them from an alert, a cron schedule or an agent. Commands run inside your network through a runner you host, and the steps you mark as risky wait for a yes in Slack.

  • Free1,000 runs a day. No card.
  • Pro · $49 a month250,000 runs a month included.
workflows/restart.ts
import { workflow } from "shiftlabs";

export default workflow<{ deployment: string }>(async ({ payload, step }) => {
  // Runs on your runner, inside your network.
  await step.exec("list pods", { command: ["kubectl", "get", "pods", "-n", "apps"] });
  const decision = await step.waitForApproval("restart", {
    message: `Restart ${payload.deployment}?`,
    approvers: ["role:admin"],
  });
  if (!decision.approved) return { restarted: false, note: decision.note };
  await step.exec("restart", {
    command: ["kubectl", "rollout", "restart", `deployment/${payload.deployment}`, "-n", "apps"],
  });
  return { restarted: true };
});

Start from a pack

See all packs
  • 01 · for NetDevOps

    Network / AWX replacement

    Keep your Ansible playbooks. Add approvals, HA-aware rollouts and config diffs.

  • 02 · for SRE

    SRE runbooks

    From the alert to the fix, with a person approving the risky step.

  • 03 · for platform teams

    Glue automation

    Webhooks between GitHub, Stripe, Slack and Jira, with every request recorded.

How it works

  1. Write the runbook as a workflow

    Start from a template with npx shiftlabs init --template github-actions-runbook, or write one in TypeScript or Python. It lives in your repo like any other code.

  2. Deploy it and connect a trigger

    npx shiftlabs deploy ships your workflows, agents and schedules together. Point an alert's webhook at the trigger URL, set a cron schedule, or hand the workflow to an agent as a tool.

  3. Approve the risky steps from Slack

    The run stops at each approval step and posts Approve and Deny buttons in Slack. Once someone approves, the run carries on. Its timeline shows every step and outbound request.

Start with one runbook

Runs execute in US regions only.