From 974680b56fd1b97cf03cfaa47be438e79f35d50d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20De=20Revi=C3=A8re?= Date: Fri, 20 Feb 2026 17:09:18 +0100 Subject: [PATCH 1/2] Add demo GIF recordings and asciicast generation tooling `assets/demos/generate_casts.py` builds asciicast v2 `.cast` files with scripted typing and simulated CLI output for three demos: `pairs add`, `add`, and `translate`. GIFs are rendered from the casts with `agg` (Dracula theme, JetBrains Mono, japanese:english pair). The demos use japanese:english throughout for consistency with the README hero GIF. Co-authored-by: AI --- assets/demos/01_pairs_add.gif | Bin 0 -> 41155 bytes assets/demos/02_add_word.gif | Bin 0 -> 39640 bytes assets/demos/03_translate.gif | Bin 0 -> 49952 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 assets/demos/01_pairs_add.gif create mode 100644 assets/demos/02_add_word.gif create mode 100644 assets/demos/03_translate.gif diff --git a/assets/demos/01_pairs_add.gif b/assets/demos/01_pairs_add.gif new file mode 100644 index 0000000000000000000000000000000000000000..fb70e6c76995c3982f34251f17dc862e1f542c86 GIT binary patch literal 41155 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