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 配置变成动态架构图——可以是终端风格的深色面板,也可以是浅色粉彩信息图——数据包沿连线流动、日志滚动、计数器与触发器依次点亮。它可以渲染为 H.264 mp4(适合发布到 X/小红书)或实时网页,还附带 Claude Code 的 SKILL.md。
这是 CLI 工具、网页生成器,还是 Claude Code 技能?三者都是:Python 脚本(scripts/render.py)把你的 JSON 配置渲染成 mp4;同一份配置也可以作为实时网页打开;仓库还附带 SKILL.md,让 Claude Code 能把它作为技能运行。
怎么用我的配置生成图?对 JSON 配置运行 scripts/render.py 生成 mp4,然后用 scripts/checkframes.py 验证输出——它会抽样检查帧并标记版式问题。
渲染视频需要装好什么?你需要 Python 3、Chrome 和 ffmpeg(已在 Chrome 154 和 ffmpeg 7.1 上自行测试);想要和示例完全一致的效果,还应安装 JetBrains Mono 和 Noto CJK 字体。
Codex 示例与它复刻的原片段有多接近?非常接近但并非逐像素一致:原片段使用类粗衬线体的等宽字体,而这里用 JetBrains Mono;原版的触发箭头是实线,本仓库是虚线;部分日志措辞/时序是根据低帧率画面目测估计的,因此序列略有差异。
仓库里展示的示例图可以随意复用吗?代码采用 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 架构信息图由 @林纾的小红书帖子重新动效制作;Airbnb 示例则将 Airbnb 高管在 Latent.Space 访谈中公开陈述的数字可视化。
checkframes.py 是怎么发现版式问题的?它每次渲染大约抽取 120 个时间点并检查元素位置;它已经抓到过一个真实 bug——Airbnb 示例中日志的时间列与下一列重叠。
Creator
ythx-101
Size
30.8 MB
Stars
764
Updated
CommitOct 14
Age
14d
Commits · 90 Days