Agent Skills › screenpipe/screenpipe › render-html-report

render-html-report

GitHub

生成自包含HTML可视化报告,支持图表与仪表盘。需添加渲染标记且无外部依赖,适用于需图形化展示而非纯文本的场景。

crates/screenpipe-core/assets/skills/render-html-report/SKILL.md screenpipe/screenpipe

Trigger Scenarios

用户请求生成可视化图表或仪表盘 需要以网页形式展示数据摘要

Install

npx skills add screenpipe/screenpipe --skill render-html-report -g -y
More Options

Non-standard path

npx skills add https://github.com/screenpipe/screenpipe/tree/main/crates/screenpipe-core/assets/skills/render-html-report -g -y

Use without installing

npx skills use screenpipe/screenpipe@render-html-report

指定 Agent (Claude Code)

npx skills add screenpipe/screenpipe --skill render-html-report -a claude-code -g -y

安装 repo 全部 skill

npx skills add screenpipe/screenpipe --all -g -y

预览 repo 内 skill

npx skills add screenpipe/screenpipe --list

SKILL.md

Frontmatter
{
    "name": "render-html-report",
    "description": "Produce a human-facing visual report — a chart, dashboard, scorecard, or styled summary — that renders as a live page in the screenpipe viewer instead of plain text. Use when the task asks for a visual\/graphical output rather than a plain note; do NOT use for plain text or raw data (prefer a markdown note for those)."
}

render an html report

screenpipe's in-app viewer can render a standalone .html file as a live page (charts, dashboards, styled reports) — but only when you opt in and keep the file self-contained. Otherwise it shows as raw source.

the two rules

  1. Opt in. The first line of the file must be the marker:

    <!-- screenpipe:render=human -->
    

    (or <meta name="screenpipe:render" content="human"> inside <head>). Without it the file shows as source, not a rendered page.

  2. Self-contained — no network. It renders in a locked-down sandbox with zero network access. So:

    • inline all CSS in a <style> tag and all JS in a <script> tag;
    • embed any images as data: URIs;
    • no external <script src> / <link rel=stylesheet> / CDN, no fetch, no forms that POST.

    Anything that touches the network is silently blocked — a CDN-loaded chart library renders blank. Draw charts with inline SVG or plain HTML/CSS bars instead (see the template).

how the user sees it

Write the file (e.g. ./output/report.html), then link it with an absolute path from your note or notification — e.g. [open report](/Users/me/.../output/report.html). The user clicks it; the viewer offers "preview rendered"; it renders inside the sandbox. Only standalone .html / .htm files render — HTML pasted inside a markdown note does not.

The viewer matches the host light/dark theme; if you care about dark mode, style with @media (prefers-color-scheme: dark).

template (copy, then fill in with real data)

<!-- screenpipe:render=human -->
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
  body { margin: 0; padding: 24px; font-family: system-ui, -apple-system, sans-serif; }
  h1 { font-size: 20px; margin: 0 0 4px; }
  .sub { color: #666; font-size: 13px; margin: 0 0 20px; }
  .cards { display: flex; gap: 12px; margin-bottom: 24px; flex-wrap: wrap; }
  .card { flex: 1; min-width: 120px; background: #f4f4f5; border-radius: 10px; padding: 12px 14px; }
  .card .label { font-size: 12px; color: #666; }
  .card .value { font-size: 24px; font-weight: 600; }
  .bar { fill: #3b82f6; }
  .axis { fill: #999; font-size: 11px; }
</style>
</head>
<body>
  <h1>daily focus report</h1>
  <p class="sub">where your time went today</p>

  <div class="cards">
    <div class="card"><div class="label">tracked</div><div class="value">6.4h</div></div>
    <div class="card"><div class="label">top app</div><div class="value">vs code</div></div>
    <div class="card"><div class="label">meetings</div><div class="value">3</div></div>
  </div>

  <!-- inline SVG chart — no chart library (CDNs are blocked in the sandbox) -->
  <svg viewBox="0 0 400 180" width="100%" role="img" aria-label="hours per app">
    <rect class="bar" x="20"  y="40"  width="50" height="120"></rect>
    <rect class="bar" x="90"  y="80"  width="50" height="80"></rect>
    <rect class="bar" x="160" y="110" width="50" height="50"></rect>
    <rect class="bar" x="230" y="130" width="50" height="30"></rect>
    <text class="axis" x="45"  y="174" text-anchor="middle">code</text>
    <text class="axis" x="115" y="174" text-anchor="middle">chrome</text>
    <text class="axis" x="185" y="174" text-anchor="middle">slack</text>
    <text class="axis" x="255" y="174" text-anchor="middle">mail</text>
  </svg>
</body>
</html>

checklist before you save

  • first line is <!-- screenpipe:render=human -->
  • all CSS/JS inline; all images are data: URIs
  • no CDN / <script src> / fetch / forms
  • linked from the note or notification with an absolute path

Version History

  • 449c824 Current 2026-08-20 10:10

Same Skill Collection

.claude/skills/develop-screenpipe-windows/SKILL.md
.claude/skills/release/SKILL.md
.claude/skills/screenpipe-api/SKILL.md
.claude/skills/screenpipe-cli/SKILL.md
.claude/skills/screenpipe-health/SKILL.md
.claude/skills/screenpipe-logs/SKILL.md
.claude/skills/screenpipe-tauri/SKILL.md
crates/screenpipe-core/assets/skills/screenpipe-api/SKILL.md
crates/screenpipe-core/assets/skills/screenpipe-bug-report/SKILL.md
crates/screenpipe-core/assets/skills/screenpipe-chats/SKILL.md
crates/screenpipe-core/assets/skills/screenpipe-cli/SKILL.md
crates/screenpipe-core/assets/skills/screenpipe-commitment-review/SKILL.md
crates/screenpipe-core/assets/skills/screenpipe-customer-context/SKILL.md
crates/screenpipe-core/assets/skills/screenpipe-decision-history/SKILL.md
crates/screenpipe-core/assets/skills/screenpipe-durable-learning/SKILL.md
crates/screenpipe-core/assets/skills/screenpipe-focus-review/SKILL.md
crates/screenpipe-core/assets/skills/screenpipe-incident-timeline/SKILL.md
crates/screenpipe-core/assets/skills/screenpipe-interview-synthesis/SKILL.md
crates/screenpipe-core/assets/skills/screenpipe-meeting-follow-up/SKILL.md
crates/screenpipe-core/assets/skills/screenpipe-meeting-prep/SKILL.md
crates/screenpipe-core/assets/skills/screenpipe-process-guide/SKILL.md
crates/screenpipe-core/assets/skills/screenpipe-project-handoff/SKILL.md
crates/screenpipe-core/assets/skills/screenpipe-project-status/SKILL.md
crates/screenpipe-core/assets/skills/screenpipe-recall/SKILL.md
crates/screenpipe-core/assets/skills/screenpipe-research-synthesis/SKILL.md
crates/screenpipe-core/assets/skills/screenpipe-resume-work/SKILL.md
crates/screenpipe-core/assets/skills/screenpipe-shareable-recap/SKILL.md
crates/screenpipe-core/assets/skills/screenpipe-team/SKILL.md
crates/screenpipe-core/assets/skills/screenpipe-workflow-discovery/SKILL.md
crates/screenpipe-core/assets/skills/screenpipe-workflow-maintenance/SKILL.md
crates/screenpipe-core/assets/skills/screenpipe-worklog/SKILL.md
crates/screenpipe-core/assets/skills/screenpipe-writing-context/SKILL.md
packages/workflows-ui/skills/video-sop/SKILL.md

Metadata

Files
0
Version
62482a7
Hash
7c02bdf7
Indexed
2026-08-20 10:10

홈 - 위키
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-10-25 23:36
浙ICP备14020137号-1