$ bmdctl preview mp1 Studio ATEM 1 M/E Constellation HD · 1080p25 · connected 330 ms preview Ca2 → MP1 32 ms $ bmdctl program 2 Studio ATEM program lkkk → Ca2 21 ms $ bmdctl cut Studio ATEM cut MP1 on program · Ca2 on preview sent $ bmdctl preview mp1 Studio ATEM preview MP1 already
Switcher name once as a header, bold. Results indented under it. Only the value now on the bus is coloured. The word "confirmed" is never printed; it's the default. Exceptions (sent, already, rejected) are one dim word where the timing goes. Connection details appear once, on the line where the connection happened, then never again.
$ bmdctl program cam1 error no input named "cam1" bmdctl inputs lists them $ bmdctl --host studio-b cut error STUDIO B (192.168.81.86) did not answer bmdctl doctor checks the network $ bmdctl video mode 1080p50 error video mode resyncs every output add --yes to do it
No "bmdctl atem program:" prefix; the user just typed it. One red word, the message, one dim hint.
$ bmdctl bmdctl 0.1.0 Studio ATEM 192.168.81.85 1 M/E Constellation HD 1080p25 ● 4m STUDIO B 192.168.81.86 not connected bmdctl help $ bmdctl status Studio ATEM 1 M/E Constellation HD · 1080p25 · session 4m, idle 12s ME 1 PGM Ca2 PVW MP1 mix 1:00 · next background · FTB off keys 1 luma Cam_1 / CaM 23 off 2 luma MP1 / MP1K off 3 luma MP1 / MP1K off 4 luma MP1 / MP1K off dsk 1 MP2 / MP2K off aux 1–6 PGM macro idle $ bmdctl inputs Studio ATEM 1 lkkk Cam_1 2 Ca2 CaM 23 · · · · · · · · · · · · · · · · · · · · · · ● PGM 3 LOLL cam69 4 Cam4 Camera 4 5 Cam5 Camera 5 6 Cam6 Camera 6 7 Cam7 Camera 7 8 Cam8 Camera 8 9 CAM9 Camera 9 10 CM10 Camera 10 BARS Color Bars COL1 Color 1 COL2 Color 2 MP1 Media Player 1 · · · · · · · · · · · · · · · · · · ○ PVW MP2 Media Player 2 bmdctl inputs --all adds outputs, masks and keys
Short names everywhere; the long name only in inputs. Identical rows collapse (aux 1–6). Internal sources have no number column because nobody types 3010. Outputs and masks hidden unless asked.
$ bmdctl media upload 10 sponsor.png Studio ATEM ⠸ uploading sponsor.png to slot 10 · 1920×1080 · 0.8 s ↑ replaced in place when done by: upload slot 10 sponsor 1920×1080 1.1 s $ bmdctl media list Studio ATEM media pool · 20 stills 1 slot1_Backdrop_A MP1 10 sponsor 20 (empty) MP2 17 empty slots hidden · --all shows them $ bmdctl media clear 10 --yes Studio ATEM clear slot 10 was "sponsor" 19 ms
$ bmdctl watch Studio ATEM watching · ctrl-c to stop 13:43:28 program MP1 → lkkk 13:43:30 preview MP1 → BLK 13:43:42 cut MP1 on program · lkkk on preview 13:44:01 key 1 on air 13:44:05 transition mix 1:00 running 13:44:06 transition done 13:46:12 session dropped 13:46:19 reconnected program and preview unchanged
$ bmdctl exec open.cue Studio ATEM open.cue · 5 lines 1 preview Ca2 → MP1 18 ms 2 transition mix 1:00 22 ms 3 auto MP1 on program · Ca2 on preview sent 4 key 1 fill Cam_1 20 ms 5 key 1 on air 24 ms done · 5 ok
Rules behind all of it: nothing wider than 72 columns; context (which switcher) stated once per invocation as a header, never per line; verbs in a fixed 10-char column so eyes land on the same spot; only the current bus value coloured; secondary information dim; timings right-aligned; empty and repeated rows collapsed.