Skip to main content
skill CX Codex

live-check — Claude Code skill: render replies without screenshots

Loads the working copy of a plugin into a live Claude session and shows how replies actually draw. Useful after any visual change.

Install into Claude Code · Skills CLI (Vercel) All methods and platforms ↓
npx skills add NahumLitvin/prismantis --skill live-check -a claude-code
Open on GitHub

What live-check does

The skill pulls the working copy of prismantis into a Claude session and prints a sample reply covering whatever the change touches: a table with numbers and an aligned column, a bash block with flags and a quoted string, a path, a link, a heading and a mermaid block. Then it renders that output.

Window captures are blocked for agents, so the skill takes another route. It runs the session in a hidden terminal, records every byte drawn, and replays the recording into xterm.js inside headless Chrome. Locked screen, parallel runs — both fine. You need capture.py and render.mjs from .claude/skills/live-check/, plus the @xterm/xterm package installed into a scratch folder. render.mjs locates Chrome or Chromium on its own or reads the CHROME variable. On Windows you have to ask a person for a Win+Shift+S capture. xterm.js draws no kitty images and no desktop surface, so treat those as unchecked.

What to look at: column alignment, rule lengths, colors against the theme tokens, wrapping at narrow widths, and whether anything fell back to the engine renderer. A dim line naming prismantis in the transcript means a hook was refused, and that gets fixed first. Hebrew is rendered every time via /prismantis demo-rtl, with each line read right to left against rtlShowcaseText in hooks/help.ts — sentences, list items, table cells, quotes, diagram labels.

What it helps with

  • see how a reply draws in the terminal without taking a screenshot
  • check column alignment and wrapping at narrow widths
  • catch a fallback to the engine renderer
  • render Hebrew right to left and verify letter order
  • make sure a render carries no private names or hostnames

Example prompts for the agent

  • Load the working copy and render a sample reply with a table and a bash block
  • Run live-check after I change the theme colors
  • Render /prismantis demo-rtl and check every Hebrew line

How to install live-check

1Skills CLI (Vercel)

npx skills add NahumLitvin/prismantis --skill live-check -a claude-code

2Manually: put the files in place

~/.claude/skills/live-check/SKILL.md

Copy the whole skill folder; for one project use .claude/skills/live-check/

Step by step, with commands for each platform: How to install skills in Claude Code: five ways

Questions about live-check

How do I install live-check in Claude Code?

Run npx skills add NahumLitvin/prismantis --skill live-check -a claude-code. The skill file lands at ~/.claude/skills/live-check/SKILL.md.

What does live-check do?

It loads the working copy of prismantis into a live Claude session, prints a sample reply and renders it by recording bytes into xterm.js. You see the real look of a reply without a screenshot.

Why does the skill avoid screenshots?

Window captures are blocked for agents and pull in whatever else is open. Instead the session runs in a hidden terminal and its output replays in headless Chrome.

Source text

SKILL.md · MIT
---
name: live-check
description: Load the working copy of prismantis into a real Claude Code session and render how replies draw, with no screenshot. Use after any visual change, when asked to "screenshot", "see it", "try it live", or before claiming a rendering fix works.
---

# Live check

Tests prove the tree. Only a real render proves the look.

1. **Load the working copy:**
   - From a new terminal: `claude --plugin-dir <repo path>`. Saving files hot-reloads it.
   - From inside a session that loaded the `plugin-authoring` skill: copy `.claude-plugin/plugin.json`, `hooks/` and `types/` into that session's dev-mods folder. The person answers the one-time "Enable hot reloading" prompt, and the mod loads when the turn ends. Copy again after every edit.
2. **Print a sample reply** containing everything the change touches: a table with numbers and an aligned column, a `bash` block with flags and a quoted string, a path, a link, a heading and a `mermaid` block.
3. **Render it, never screenshot.** Window captures are blocked for agents and grab whatever else is open. Instead run the session in a hidden terminal, record every byte it draws, and replay that into xterm.js in headless Chrome. This works with the screen locked and in parallel:
   ```
   npm i -s --prefix <scratch> @xterm/xterm
   timeout 70 python3 .claude/skills/live-check/capture.py <scratch>/demo.bin <repo> 110 80 '[[45,""]]' claude --plugin-dir <repo> "/prismantis demo"
   node .claude/skills/live-check/render.mjs <scratch>/demo.bin <scratch>/demo.png 110 80 <scratch>/node_modules/@xterm/xterm
   ```
   Then read the PNG. `capture.py` takes the output file, working directory, columns, rows and a JSON list of `[seconds to wait, keys to type]` steps, then the command. Raise the rows to see more of a long reply. `render.mjs` finds Chrome or Chromium itself, or reads `CHROME`. On Windows, ask the person for a Win+Shift+S capture. xterm.js draws no kitty images and no desktop surface, so say those are unchecked.
4. **Check** column alignment, rule lengths, colors against the theme tokens, wrapping at narrow widths, and that nothing falls back to the engine renderer. A dim line naming `prismantis` in the transcript means a hook was refused; fix that first.
   **Hebrew, every time:** also render `/prismantis demo-rtl` and read every Hebrew line right to left against `rtlShowcaseText` in hooks/help.ts: sentences, list items, table cells, quotes and every diagram label. Word order and letter order both count. If something looks off, read the bytes in the `.bin` before blaming the render: on a terminal without bidi they must be in display order (`םולש`, not `שלום`).
5. **Before publishing a render**, check it, including the status line under the prompt, shows no private repo names, hostnames, internal versions or other work data. Use a neutral sample for README images.

© NahumLitvin · MIT · NahumLitvin/prismantis

Similar skills

All skills for Agent setup: memory, context, orchestration →

From the same set2

Project sponsors

Companies that keep this analytics open
Gold sponsor

Impressions, clicks and code copies — open statistics. We keep the numbers public for the same reason NeBlask itself is public. Become a sponsor