Install
openclaw skills install @miaoshou.dev/miao-vision-skillTurn local data and content into polished, self-contained data posters, reports, and browser decks, ready to share as HTML, PDF, or PNG.
openclaw skills install @miaoshou.dev/miao-vision-skillCreate local-first visual artifacts after the user explicitly invokes $miao-vision.
Keep the source data local and return a shareable artifact.
Use the user's words for the result. Ask one concise question only when the choice would materially change the artifact, such as a static versus live dashboard.
| User goal | Deliverable | Common names |
|---|---|---|
| One visual page for a ranking or comparison | Data poster | Poster, one-page graphic, ranking graphic |
| Multiple charts, findings, or detail rows | Analysis report | Report, analysis, static dashboard |
| A multi-page presentation | Browser deck | Deck, presentation, slides |
| A visual summary of an article or long text | Article infographic | Infographic, visual summary |
Preserve an explicit choice even when another format could hold more detail. If the user supplies tabular data without choosing a format, offer poster, report, or deck in one short message; if they leave the choice to you, select the best fit for the data. Do not expose CLI names or temporary files while orienting them.
Use the requested conversation and artifact languages; they may differ. If unspecified, use the language of the user's latest substantive request. For a mixed-language request, follow the language used for the artifact goal or delivery instructions. Preserve the established language when editing an artifact. Do not infer language from column names, filenames, identifiers, or isolated values. Keep CLI commands, schema fields, evidence paths, and error codes unchanged.
Read only the reference needed for the selected workflow:
| Request | Reference |
|---|---|
| Article URL or local Markdown/text to infographic | article.md |
| Local CSV/TSV/XLSX/JSON to report, static dashboard, findings artifact, recurring report, data poster, or PNG/PDF export; report edits and spec validation | report.md |
| Browser deck or deck spec validation from local text, data, or both | deck.md |
| Materially ambiguous tabular deliverable or explicit plan-first request | outcome-brief.md, then the selected workflow |
| Explicit explanatory image based on a verified conclusion | media-image.md |
| Explicit data-story video | media-video.md |
| Monitor a run, compare versions, request a scoped revision, or export a selected Viewer version | review-viewer.md |
For media, read media-setup.md only if setup fails.
Do not use this skill for text-only work, general raster generation, editable native .pptx,
live dashboards, remote databases, or remote datasets. Article URL retrieval and
normalization belong to the agent; the CLI consumes local text.
Never invoke ai text, audio generation, or multi-model comparison.
After choosing the workflow, run node scripts/check-miao-viz.mjs --print-path.
This selects the global CLI on PATH and checks compatibility and required capabilities.
Keep that absolute executable path for the entire task, including validation and Viewer.
A compatible version may differ from the recommended version; disclose the difference
without forcing an upgrade. For Viewer work, add --viewer to the check.
If missing or incompatible, request approval to run scripts/install-miao-viz.sh
or scripts/install-miao-viz.ps1. These install the fixed recommended
@miao-vision/cli version globally through npm, never unpinned latest or sudo.
Recheck PATH, version, and spec catalog after installation. Legacy shared and
skill-local binaries are retained but no longer selected automatically.
For PNG/PDF and existing Viewer PPTX export, run
node scripts/setup-export.mjs --host <host> as a read-only check. In Pi use
/miao-viewer setup to check and prepare exports. Claude Code checks project and
user .claude dependencies first. Other identified hosts may supply their
actual dependency root through --host-root; never guess unknown agent paths.
Playwright resolves host first, then ~/.miao-vision/playwright, then workspace.
If the check fails because dependencies or Chromium are missing, explain the
installation and obtain approval before adding --install. The setup installs
fixed Playwright in the shared directory only when no usable module exists,
and uses the selected module's own installer for matching Chromium. It never
modifies business-project dependencies or automatically installs OS libraries.
A broken installed module must be reported, not silently replaced.
For subsequent CLI calls pass the checked dependency root as
MIAO_VIZ_PLAYWRIGHT_ROOT; keep the original working directory. No export HTTP
request installs dependencies. Missing browser support does not block HTML.
In references, miao-viz means the resolved executable path. If installation or
the first report workflow fails, run
miao-viz diagnose --host <host> --input <input> --output <output> before guessing,
where <host> is pi, codex, claude-code, or openclaw only when the
current runtime identifies that host; otherwise use cli. Add --pdf for a
PDF-specific check.
Use a task-specific miao-vision directory in the system's native temporary
directory for Context, Profile, drafts, and other intermediate files. Resolve
example placeholders such as SYSTEM_TEMP to real paths before calling the CLI.
Unless the user chooses another location, create one directory per artifact under
./miao-vision/artifacts/{artifact-slug}-{YYYYMMDD-HHmmss}/ from the task's
initial working directory. Make the slug safe on macOS, Windows, and Linux.
Keep every requested format and preview together.
If that directory is not writable, use the system temp directory and disclose
the fallback. Do not reuse an existing delivery directory or present an
intermediate file as the deliverable.
Use value.delivery when the CLI returns it. Lead with status and title, link
artifacts.primary, and show artifacts.preview when supported. Show at most
three verified metrics, two highlights, and three actions from the manifest;
keep the default response below 300 tokens. Do not reread the generated HTML/PDF
to invent a summary or expose Context, Profile, or Spec paths by default.
Report blocking structured errors, needs_review, and restricted accurately.
A failed preview does not
invalidate a successfully generated primary artifact. For media, retain the
verified report as the evidence source. When the Review Viewer is active,
include its local URL alongside the primary artifact.
After a report is delivered, add one short optional Review Viewer action below
the artifact link: invite the user to compare versions, request a targeted edit,
or export PDF/PNG. Link the action to the local Viewer only if that report was
tracked by a running Viewer. Otherwise offer to start a Viewer-backed revision;
starting the Viewer after an ordinary render does not import that earlier run.
Keep this action inside the 300-token delivery budget.
Ordinary generation does not start the Viewer. Use it when the user asks to
monitor a run, compare versions, request a scoped revision, or export a selected
version and the local Viewer can be started.
The current plugin does not register the Viewer MCP server or open its URL in
Codex automatically. Read review-viewer.md for
the available local commands and connection steps. Viewer failure must not
block artifact delivery.
Before a Viewer-backed render, check the Viewer's /api/health from the
render execution environment. If the host sandbox blocks loopback access,
use the host's permission mechanism for the probe and render; see the
reference for Codex execution parameters. Confirm the run was registered
before reporting it as visible in the Viewer.