# kaab CLI: Jobs, programs, schedules from your terminal.

The kaab command runs jobs, pushes and pulls programs, approves proposals and creates schedules. It fits in scripts and pipelines: exit codes say what happened.

## Setup

```sh
go install github.com/kaabist/kaab-go/cmd/kaab@latest
kaab auth login
```

## Run a job

Run a program with inputs and a session, and wait for the result. The data goes to standard output.

```
kaab jobs run --program acme-report@production \
  --input report_id=42 --session acme --wait 60 > data.json
```

## Programs as files

Lint, push, pull and diff programs like code, and review fixes from the terminal.

```
kaab programs lint report.json
kaab programs push report.json --publish
kaab programs diff acme-report 3 4
kaab proposals approve prp_93Hd --promote
```

## Schedules and webhooks

Set up a schedule with change detection and a webhook in two lines.

```
kaab schedules create --program acme-report@production \
  --cron "0 * * * *" --change-detection --field price
kaab webhooks create --url https://example.com/hooks --events 'job.*'
```

Guide: http://localhost:3001/guides/cli
