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)

visualization
Searching Database…

What is this?live-panel turns a single JSON config describing a system into an animated architecture diagram - either a terminal-style dark panel or a light-pastel infographic - with packets flowing along wires, a scrolling log, counters and triggers lighting up. It renders to an H.264 mp4 (ready for X/Xiaohongshu) or a live web page, and also ships as a Claude Code SKILL.md.
Is this a CLI tool, a web page generator, or a Claude Code skill?All three: a Python script (scripts/render.py) renders your JSON config to an mp4, the same config can be opened as a live web page, and the repo includes a SKILL.md so Claude Code can run it as a skill.
How do I generate a diagram from my config?Run scripts/render.py against your JSON config to produce the mp4, then verify the output with scripts/checkframes.py, which samples frames and flags layout problems.
What do I need installed to render the videos?You need Python 3, Chrome, and ffmpeg (self-tested on Chrome 154 and ffmpeg 7.1); for the exact look in the examples you should also install JetBrains Mono and Noto CJK fonts.
How closely does the Codex example match the original clip it recreates?Very close but not pixel-identical: the original uses a slab-like monospace font versus JetBrains Mono here, its trigger arrows are solid where this repo's are dashed, and some log wording/timing was estimated by eye from low-fps frames so sequences differ slightly.
Can I freely reuse the example diagrams shown in the repo?The code is MIT licensed, but the example diagrams are credit-bearing recreations of other people's designs (by @thedelost and 小红书 @林纾) and are explicitly not covered by the MIT grant.
What visual themes and canvas sizes are available?Two themes via theme.preset: terminal-dark and light-pastel. Canvas size is set via canvas.preset with options like 4:5 (1200x1500), 3:4 (1080x1440) and 1:1 (1080x1080); switching aspect ratio needs its own config since coordinates are in canvas pixels.
Is the rendered output deterministic?Yes. Re-rendering the Codex example twice produced byte-identical decoded frames for all 900 frames, verified by comparing ffmpeg framemd5 hashes.
Where do the example designs in the repo come from?They're credited recreations: the Codex agent-tree panel style comes from a clip by @thedelost, the AI Agent architecture infographic is re-animated from a Xiaohongshu post by @林纾, and the Airbnb example visualizes figures Airbnb leaders stated publicly in a Latent.Space interview.
How does checkframes.py catch broken layouts?It samples roughly 120 time points per render and checks element positions; it has already caught a real bug where a log's time column overlapped the next column in the Airbnb example.
Creator
ythx-101
Size
30.8 MB
Stars
768
Updated
CommitOct 14
Age
16d
Commits · 90 Days