dunops.com/Docsbeta

Getting started

Introduction

DunOps is the AI DevOps agent for VibeCoders. Connect your providers, describe what you want in plain English, and DunOps plans and executes the work — with your approval at every step that matters.


Quick start

From zero to your first deploy in under 10 minutes.

Note

DunOps never executes mutations without your explicit approval. Every action surfaces a plan or diff first — you say yes, then it runs.
1

Create your account

Go to dunops.com/login and enter your email. You'll receive a one-time code — no password stored, ever.
2

Connect GitHub

Navigate to Providers → GitHub and authorize DunOps to read your repositories. We cache your latest commit, package.json, and build config so future deploy flows skip re-auth.
3

Connect Vercel

Navigate to Providers → Vercel and link your team. Read-only to start — mutating actions (deploys, alias changes) stay behind the confirm-before-mutate gate.
4

Say the words

Open a new chat thread and type your intent in plain English:
New chat thread
Deploy main to production

DunOps detects your stack, fetches the latest commit from the connected repo, and shows you a deployment plan before touching anything. Approve it, and it ships.

Save it as a Playbook

Once a flow works, open the canvas and save it as a Playbook. Next time, just run Run "Deploy main" instead of describing the steps again.

What you can say

DunOps understands plain English. Here are some things you can type in a chat thread:

IntentExample prompt
DeployDeploy main to production
DNSPoint api.mysite.com to 104.21.0.1
PromotePromote the staging build to prod
Roll backRoll back the last deploy on mysite.com
StatusIs my Vercel deployment live?

Every mutating action surfaces a plan and diff before execution. You approve it — then it runs.


How it works

agent-loop.ts
// Simplified agent execution model
async function executeIntent(prompt: string, workspace: Workspace) {
  const plan = await agent.plan(prompt, workspace.context);

  // Every mutation requires approval — no exceptions
  const approved = await ui.requestApproval(plan);
  if (!approved) return { status: "cancelled" };

  const result = await agent.execute(plan, workspace.credentials);
  await workspace.log(result); // immutable audit trail

  return result;
}

Warning

Never pass raw infrastructure credentials to the chat. DunOps reads them from your connected providers — you never type them into a message.

Next steps