live-panel-skill README

The project's README from github.com/ythx-101/live-panel-skill. As one markdown file: README.md.

live-panel

English | 中文说明

Turn a system description (one JSON file) into a terminal-style, always-running architecture diagram, or a soft light-theme infographic that moves: fixed layout, packets flowing along the wires, a scrolling log, counters, bars that flip state, side triggers that light up in turn. Output is an H.264 mp4 (X / Xiaohongshu ready) or a live web page. It is also a Claude Code style skill (SKILL.md).

Credits - please read

  • The idea, the look and the motion grammar come from an architecture-diagram clip by @thedelost (a Codex agent-tree panel, generated with GPT, screen-recorded as a web page): https://x.com/thedelost/status/2105398038026195279. It spread via a quote-post by @slashui: https://x.com/slashui/status/2105850132365443528.
  • examples/codex-agents/ is a recreation of that original picture (layout, content and the three-tempo motion, redrawn from frame captures of the clip). The design belongs to @thedelost. The method (motion grammar, config-driven template) is re-implemented here and is not their code.
  • examples/agent-architecture/ re-animates the static Xiaohongshu infographic 《AI Agent 的完整架构》 by 小红书 @林纾 (posted Sep 4). Layout, wording and colours follow the original; the design belongs to the original author. The footer of the video says so.
  • examples/airbnb/ visualises figures Airbnb leaders stated in the Latent.Space interview https://www.latent.space/p/airbnb. The numbers are Airbnb's own account; the animation counters are illustrative.

What it looks like

terminal-dark, 4:5 - recreation of @thedelost's Codex agent tree light-pastel, 3:4 - 林纾's AI Agent architecture
codex agent

Airbnb example (terminal-dark, Chinese content, figures from the interview):

airbnb

Videos: examples/codex-agents/codex-agents.mp4, examples/agent-architecture/agent-architecture.mp4, examples/airbnb/airbnb.mp4 (about 28-30 s each, 30 fps, silent AAC track so chat apps do not treat them as GIFs).

Install and use

Requirements: Python 3.8+ (standard library only), Chrome or Chromium, ffmpeg. No pip packages.

python3 scripts/render.py --config examples/codex-agents/config.json --out out.mp4
python3 scripts/check_frames.py --config examples/codex-agents/config.json --out-dir frames --repeat

Make your own

  1. Copy an example config. 2. Edit text, numbers, colours, positions. 3. Render, run check_frames.py, look at the PNGs. Nothing in assets/template.html has to change.

Themes and canvas

"canvas": { "preset": "3:4", "duration": 28, "fps": 30, "preroll": 0 },   // or width/height explicitly
"theme":  { "preset": "light-pastel", "colors": { "pk": "#f0575f" } }      // preset + your overrides
canvas.preset size typical use
4:5 1200x1500 X (the original clip's format)
3:4 1080x1440 Xiaohongshu
1:1 1080x1080 square

Positions in a config are absolute canvas pixels, so a config is authored for one canvas; render.py --width/--height only rescales (letterboxes) it. For another ratio, copy the config and re-place the boxes.

theme.preset look
terminal-dark dark window, monospace, segmented text-mode boxes (the original clip's style)
light-pastel white background, rounded pastel boxes, SVG arrows with rounded corners, soft glow on active items

A theme controls: font and size, line height, the colour table (colors, any names you like), box mode (segmented or solid), corner radius, border width, wire width, packet size and glow, background. Add your own preset by editing THEME_PRESETS at the top of the boot code in the template, or override per config.

Config reference (short)

Full tables are in references/config-schema.md.

How replay works (determinism)

The page exposes window.seek(t). Every visual is a pure function of t; the few "random" picks use a fixed-seed integer hash; no wall clock, no Math.random, no CSS animation. The renderer calls seek(i/fps) and screenshots. In a normal browser (no ?manual) the same function is driven by requestAnimationFrame.

Fonts

No font files are bundled. The stacks fall back through installed fonts: terminal themes use JetBrains Mono (OFL) -> IBM Plex Mono (OFL) -> DejaVu Sans Mono -> Noto Sans Mono CJK SC (OFL) -> any monospace; light-pastel uses Noto Sans CJK SC (OFL) / PingFang SC / Microsoft YaHei -> Helvetica/Arial, and Noto Serif CJK SC for the big title. Install JetBrains Mono and Noto CJK for the exact look in the examples; emoji icons need a colour emoji font (e.g. Noto Color Emoji). Different fonts change glyph widths slightly, so re-run check_frames.py after changing fonts.

Self-test results (this repo, Chrome 154, ffmpeg 7.1)

License

MIT for the code (see LICENSE). The visual design that examples/codex-agents/ recreates belongs to @thedelost, and the infographic re-animated in examples/agent-architecture/ belongs to 小红书 @林纾; those examples are credit-bearing recreations and are not covered by the MIT grant. Airbnb figures are Airbnb's own statements from a public interview.


中文说明

把一份系统描述(一个 JSON)变成终端风格、一直在运行的动态架构图,或者一张会动的浅色粉彩信息图:版面不动,连线上有光点流动,日志滚动,计数跳动,进度条过阈值翻状态,侧栏触发点依次点亮。产出 H.264 mp4(适合发 X 和小红书)或可直接打开的网页。

出处:动法和样式学自 @thedelost 的 Codex agent 分工动态图(https://x.com/thedelost/status/2105398038026195279),经 @slashui 引用转发(https://x.com/slashui/status/2105850132365443528)。examples/codex-agents/ 是对原图的复刻,设计归原作者;examples/agent-architecture/ 把小红书 @林纾 的《AI Agent 的完整架构》静态图做成动态版,原图设计归林纾,画面底部有出处;examples/airbnb/ 的数字出自 Latent.Space 访谈,为 Airbnb 自述,画面里跳动的计数为示意。

用法:python3 scripts/render.py --config <配置> --out out.mp4;自查:python3 scripts/check_frames.py --config <配置> --out-dir frames --repeat。主题用 theme.preset(terminal-dark / light-pastel),画幅用 canvas.preset(4:5 1200x1500、3:4 1080x1440、1:1 1080x1080)。坐标是画布像素,换画幅需要另存一份配置重排。

live-panel-skill (ythx-101/live-panel-skill)

Searching Database…

Что это?live-panel превращает один JSON-конфиг, описывающий систему, в анимированную диаграмму архитектуры — тёмную панель в стиле терминала или светлую пастельную инфографику — с пакетами, бегущими по проводам, прокручивающимся логом, счётчиками и загорающимися триггерами. Он рендерит в mp4 H.264 (готово для X/Xiaohongshu) или живую веб-страницу, а также поставляется как SKILL.md для Claude Code.
Это CLI-инструмент, генератор веб-страниц или навык Claude Code?Всё сразу: Python-скрипт (scripts/render.py) рендерит вашу JSON-конфигурацию в mp4, тот же конфиг можно открыть как живую веб-страницу, а в репозитории есть SKILL.md, чтобы Claude Code мог запускать его как навык.
Как сгенерировать диаграмму из своего конфига?Запустите scripts/render.py на своей JSON-конфигурации, чтобы получить mp4, затем проверьте вывод через scripts/checkframes.py, который сэмплирует кадры и помечает проблемы вёрстки.
Что нужно установить для рендера видео?Нужны Python 3, Chrome и ffmpeg (проверено автором на Chrome 154 и ffmpeg 7.1); для точного вида, как в примерах, также установите шрифты JetBrains Mono и Noto CJK.
Насколько близко пример Codex совпадает с оригинальным клипом, который он воссоздаёт?Очень близко, но не пиксель в пиксель: в оригинале моноширинный шрифт в стиле slab, а здесь JetBrains Mono, стрелки триггеров там сплошные, где в этом репозитории пунктирные, а часть формулировок/таймингов лога снята на глаз с кадров низкого fps, поэтому последовательности слегка отличаются.
Можно ли свободно переиспользовать примеры диаграмм из репозитория?Код под лицензией MIT, но примеры диаграмм — воссоздания чужих дизайнов с обязательным указанием авторства (@thedelost и 小红书 @林纾) и явно не покрываются MIT-разрешением.
Какие визуальные темы и размеры холста доступны?Две темы через theme.preset: terminal-dark и light-pastel. Размер холста задаётся через canvas.preset с вариантами вроде 4:5 (1200x1500), 3:4 (1080x1440) и 1:1 (1080x1080); смена соотношения сторон требует своего конфига, поскольку координаты заданы в пикселях холста.
Детерминирован ли рендер?Да. Повторный рендер примера Codex дважды дал побайтово идентичные декодированные кадры по всем 900 кадрам, что подтверждено сравнением хешей ffmpeg framemd5.
Откуда взяты примеры дизайнов в репозитории?Это воссоздания с указанием авторства: стиль панели дерева агентов Codex взят из клипа @thedelost, инфографика архитектуры AI Agent переанимирована из поста в Xiaohongshu от @林纾, а пример Airbnb визуализирует цифры, которые руководители Airbnb публично назвали в интервью Latent.Space.
Как checkframes.py ловит сломанную вёрстку?Он сэмплирует около 120 точек времени на рендер и проверяет позиции элементов; он уже поймал реальный баг, когда колонка времени лога перекрывала следующую колонку в примере Airbnb.
Creator
ythx-101
Size
30.8 MB
Stars
764
Updated
CommitOct 14
Age
15d
Commits · 90 Days