Pipelines

Budgets, dry runs, and priority

Control how much a pipeline can spend, run it without pushing code, and decide what runs first.

What this means

Three settings on the New Pipeline form change how much a pipeline costs, whether it produces a merge request, and where it sits in the queue:

  • Budget cap - the maximum a single pipeline can spend in US dollars.
  • Dry run - runs planning and coding, then stops before pushing or opening an MR.
  • Priority - sets where the pipeline sits in the per-repo queue.

These are independent. You can combine them - for example, a low-priority dry run with a small budget cap to test a prompt cheaply.

When to use it

SettingUse it when
Budget capAlways. Every pipeline has a cap.
Dry runYou want to see the agent's plan and code without opening an MR - for example, to preview a risky change.
PriorityThe repo has multiple pipelines queued, and one of them is more urgent than the others.

Before you start

  • These settings live on the New Pipeline form (Pipelines → New).
  • The same setup checklist applies - credentials, product, and repos must exist before the form renders.
  • All three settings are also stored on templates, so saved presets carry your defaults.

Budget cap

Where to set it

The Budget cap (USD) field on the New Pipeline form. Default: 10. Minimum: 0.01.

What it does

  • Bilbis tracks total LLM spend on the pipeline as it runs.
  • If spend reaches the cap, the run halts. The pipeline ends in Failed with a clear reason.
  • The header on the pipeline detail page shows current cost so you can watch it climb.

How to pick a number

Task shapeReasonable cap
Trivial change in one small file$1–$3
Typical feature or bug fix$5–$15
Large refactor across many files$20–$50
Exploratory or unfamiliar codebaseStart small, raise on retry

The Engine picker also affects cost. Claude Haiku and Workers AI are cheapest. Claude Opus is most expensive but most capable. Auto lets Bilbis pick - usually mid-tier.

Locale note

The form accepts decimals like 5.50 regardless of your browser locale. You don't need to use a comma even if your computer is set to a comma-decimal locale.

Dry run

Where to set it

The Dry run checkbox on the New Pipeline form. Default: off.

What it does

  • The pipeline runs through routing, coding, and testing.
  • It stops before the Pushing state.
  • No branch is pushed. No MR or PR is opened.
  • The diff is still visible on the pipeline detail page (Diff tab) so you can read what the agent would have produced.

When to use it

  • Previewing what an agent would do for a sensitive change.
  • Validating a new template before dispatching real runs.
  • Testing how the Repo Router behaves on a vague task description.
  • Comparing two engines on the same task without merging anything.

What it does not do

  • Skip cost. Dry runs use the same agents and the same models, so they spend money. Set a budget cap accordingly.
  • Skip clarifications. A dry run can still pause in Awaiting clarification if the agent has a question.
  • Allow approvals. Dry runs never reach Awaiting approval because there is no MR to approve.

Priority

Where to set it

The Priority select inside Advanced options on the New Pipeline form. Default: Unrated.

What it does

Multiple pipelines on the same repository run sequentially. Bilbis holds a per-repo lock - the next pipeline picks up only after the previous one finishes. Priority controls who picks up first when several pipelines are waiting.

PriorityLabelWhen to use it
1HighestProduction hotfix that has to ship before everything else.
2HighTime-sensitive task that should jump ahead of routine work.
3MediumDefault. Day-to-day work.
4LowCleanup, dependency bumps, refactors that can wait.
5LowestBackground experiments.
-UnratedTreated as Medium (3) at queue ordering.

What it does not do

  • Speed up a pipeline already running. Priority only matters when multiple pipelines are queued.
  • Affect pipelines on different repositories. Each repo has its own queue.
  • Override an in-progress pipeline. Priority does not preempt running work.

Reading the queue

A pipeline parked behind another pipeline shows a Queued badge with a clock icon. The pipeline detail page shows priority in the header so you can see why it's where it is in the queue.

Combining the three

A few common combinations:

GoalSettings
Quick safe testDry run on, budget cap $2, priority Low.
Preview a refactor before mergingDry run on, budget cap $25, priority Medium.
Urgent production fixDry run off, budget cap $15, priority Highest.
Cheap routine jobDry run off, budget cap $3, priority Lowest, engine Claude Haiku.

Templates store all three. If you find a combination you reuse, save the form as a template - see Templates.

Problems and fixes

ProblemWhat to check
The pipeline ended in Failed with a budget reason.The cap was hit. Either raise the cap on a new run, switch to a cheaper engine, or split the task.
The dry run still feels expensive.Dry runs use the same agents as real runs. Set a smaller budget cap or a cheaper engine.
A high-priority pipeline isn't running yet.Another pipeline on the same repo is still in progress. Priority only matters once it joins the queue. Check the running pipeline's detail page.
Priority doesn't appear on the form.It lives inside Advanced options. Click the disclosure to expand.
I expected an MR but didn't get one.Dry run was on. Check the header for the Dry run badge. Dispatch again with the box unchecked.

On this page