polterware/kit

Pipelines

Chain multiple commands into reusable sequential workflows that run across any tool.

Pipelines let you chain multiple commands into a named, reusable workflow. Each step references a command from any tool (Supabase, GitHub, Vercel, or Pulumi) with its own args and flags.

Creating a Pipeline

Use the Pipeline Builder screen in interactive mode to create a pipeline:

  1. Name the pipeline and add an optional description
  2. Add steps — each step picks a command from the board
  3. Configure args, flags, and whether to continue on error
  4. Save to project or global scope

Pipeline Steps

Each step has:

FieldDescription
commandIdReference to a command (e.g. supabase:db, vercel:deploy:prod, pulumi:up)
argsExtra arguments for the command
flagsFlags like --yes or --debug
continueOnErrorIf true, the pipeline continues even if this step fails
labelOptional display label

Steps run sequentially. If a step fails and continueOnError is false, remaining steps are skipped.

Storage

Pipelines can be stored at two levels:

  • Project — saved in .polter/config.json at the repository root. Shared via version control.
  • Global — saved in OS-level app config. Available across all repositories.

Project pipelines take precedence when both levels define a pipeline with the same ID.

Headless Execution

Run a pipeline without the interactive UI:

polter pipeline run <name>

This resolves the pipeline by name (project scope first, then global) and executes all steps sequentially, printing progress to stdout.

Example

A "deploy" pipeline that pulls migrations, deploys functions, and pushes to Vercel:

StepCommandFlags
1supabase db pull--yes
2supabase functions deploy
3vercel deploy --prod

If step 1 fails, steps 2 and 3 are skipped (unless continueOnError is set).

On this page