Everything you need to know

Set up once. After that, you plan and you approve — AI does the rest.

AI implements · tests · opens a PRAI merges & ships — ready for your next planPLANAPPROVE

Setup

Once per machine:

npm install -g hub-launch    # or: pnpm add -g hub-launch
hula login                   # authenticate with GitHub + HubLaunch

Once per project:

cd <your-project>
hula init

hula init walks you through configuration interactively and installs the slash commands into your project, so they're available the next time you open your coding agent (e.g. Claude Code). It's safe to re-run any time — your keys and settings are preserved — and you should re-run it after upgrading.

That's the only time you'll meaningfully touch the CLI: the rest of it exists mostly for your agent to call on your behalf. You'll need Node.js ≥ 18, the GitHub CLI (gh) logged in, and a Claude subscription (Pro or Max).

The two commands

1 · Plan

/hula-plan Add password reset support

The plan skill asks clarifying questions, studies your codebase, and writes a detailed implementation plan with acceptance criteria. It validates the plan until it stands completely on its own, then asks one question: ready to launch?

Say yes, and the rest is automatic: a GitHub issue is created, a cloud sandbox implements the plan, runs your checks and tests, opens a pull request, and verifies the result against the plan — posting a merge-safety score so you know what you're looking at before you look.

Planning something big? One plan is one PR — if a plan is really several PRs' worth of work, validation says so and offers to split it into a sequence of right-sized plans, each independently launched, verified, and approved.

2 · Approve

/hula-merge

Review the verified PR and approve it. HubLaunch merges, closes the issue, cleans up branches and worktrees, and fast-forwards your local main. Plan the next thing.

That's the whole loop. Everything between the two commands happens without you.

Notifications

HubLaunch tells you when it's your turn: when a run starts, when the issue exists, and when the PR is ready — with its verification score. Point updateNotificationUrl in .hublaunch/hublaunch.config.js at any webhook. A Slack channel works out of the box:

export const config = {
  // ...
  updateNotificationUrl: "https://hooks.slack.com/services/T0/B0/secret",
  updateNotificationNameTag: "<@YOUR_SLACK_ID>", // optional @-mention
};

Not a Slack shop? Any other URL receives the event as plain JSON — Telegram works through a ten-line relay, and tools like n8n or Pipedream can forward it anywhere with a few clicks. See the notifications guide for the payloads, a complete Telegram example, and patterns for automating your side of the loop with hula info — some teams auto-open the PR diff and summary the moment the "PR ready" ping arrives.

Other commands

You'll rarely need these — the two commands above cover the normal loop — but they're there when you want them:

/hula-fixFix a gap or bug on the PR branch in an isolated worktree — just describe the problem.
/hula-verifyFull verification report, criterion by criterion. A summary score is already posted automatically.
/hula-infoPeek at a run: live logs, the PR diff, the initial summary.
/hula-launchLaunch a plan manually — normally offered automatically after /hula-plan.
/hula-confirmRe-validate a plan you've edited by hand.
/hula-scheduleRun or schedule autonomous actions, like a nightly security audit that opens a PR.

Going deeper — pipeline internals, resuming a run, forwarding env vars to the sandbox — lives in the advanced guide.

Plan something.

Your next PR is one approval away.

Get started