Watch a Run From the Terminal

View as Markdown

Everything in the other recipes works from the CLI too. This one is the whole observability loop with no code at all: one pane runs the automation, one streams what it’s doing, and a browser tab shows it happening.

1. Launch

$bctrl runtime create --name watch-me --json --jq '.id'
$# rt_123
$
$bctrl runtime start rt_123 --json
$# { "runId": "run_456", "connectUrl": "wss://...", ... }

2. Stream the timeline (second pane)

$bctrl run activity stream run_456

Every navigation, click, typed burst, and captcha solve prints as it happens. Filter the firehose when you only care about problems:

$bctrl run activity stream run_456 --severity warning

3. Kick off work (first pane)

Connect your own tooling to the connectUrl, or run a hosted agent straight from the shell:

$bctrl runtime invocation create rt_123 \
> --action extract \
> --instruction "Open news.ycombinator.com and extract the top 5 story titles" \
> --json

4. Watch it with your eyes

$bctrl run live run_456 --control none --expires-in-seconds 600 --json --jq '.url'

Open the printed URL in any browser - it’s a tokenized, expiring viewer link, safe to paste to a teammate in Slack. Mint it with --control input if they should be able to grab the mouse.

🎬 Content TODO: a terminal recording (asciinema or GIF) of the three panes - invocation running left, activity streaming right, live view open in a browser window - is worth more than any of the prose here.

5. Replay it later

$bctrl run recording run_456 --expires-in-seconds 86400 --json --jq '.url'

Same idea after the fact: an expiring replay URL you can open or embed.

Next