# Demo media README stills in `shots/readme/` are taken from the current build, not from `shots/` (those are older comparisons): ```sh cargo build --bin anybot ANYBOT_DATA_DIR=/tmp/anybot-readme-shot ANYBOT_SHOT_SIZE=1180x740 ANYBOT_SHOT_FRAMES=48 \ ANYBOT_SHOT_VIEW=chat ANYBOT_SHOT_NOPOPUP=1 target/debug/anybot --screenshot shots/readme/chat.png ANYBOT_DATA_DIR=/tmp/anybot-readme-shot ANYBOT_SHOT_SIZE=1180x740 ANYBOT_SHOT_FRAMES=48 \ ANYBOT_SHOT_VIEW=chat target/debug/anybot --screenshot shots/readme/ask.png ANYBOT_DATA_DIR=/tmp/anybot-readme-shot ANYBOT_SHOT_SIZE=1180x740 ANYBOT_SHOT_FRAMES=48 \ ANYBOT_SHOT_VIEW=routines ANYBOT_SHOT_NOPOPUP=1 target/debug/anybot --screenshot shots/readme/routines.png ``` `shots/readme/phone.png` is the current `mobile/index.html` sign-in page, captured in a 390×844 browser. It is not the old collage in `shots/phone.png`. The README shows a demo here. To record one: 1. Start AnyBot (desktop) and a bot with a key; run at 1440p, hide notifications. 2. Record a 20–40 s clip of one complete task, e.g. "organise the Downloads folder" (chat → plan → tool steps → files moved) and one computer-use task (bot opens the browser, fills a form, stops before Send — the approval card popping up **is** the product). 3. Export GIF: `ffmpeg -i clip.mov -vf "fps=12,scale=960:-1:flags=lanczos,split[a][b];[a]palettegen[p];[b][p]paletteuse" docs/demo/anybot.gif` (keep it under ~8 MB; if bigger, cut to one task). 4. Name it `docs/demo/anybot.gif`. The README comment shows where to un-comment the `` line. Preferred: one GIF (desktop, computer-use with the approval card) + one 30 s MP4 (`demo.mp4`) of the phone app pairing a new machine.