Visualize
display-dev/visualize
Generate beautiful, on-brand HTML artifacts — reports, diagrams, diff reviews, slide decks, plans, recaps, dashboards.
Design system and templates for Claude's built-in generative UI — the showwidget tool that renders interactive HTML/SVG widgets inline in claude.ai conversations.
$ npx skills add himself65/finance-skills --skill generative-ui -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install himself65/finance-skills generative-ui --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/himself65/finance-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/plugins/ui-tools/skills/generative-ui .claude/skills/generative-ui && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "generative-ui" agent skill from https://github.com/himself65/finance-skills/tree/main/plugins/ui-tools/skills/generative-ui into .claude/skills/generative-ui/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "generative-ui", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/himself65/finance-skills/tree/main/plugins/ui-tools/skills/generative-uiType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add himself65/finance-skills --skill generative-ui -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install himself65/finance-skills generative-ui --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/himself65/finance-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/plugins/ui-tools/skills/generative-ui .agents/skills/generative-ui && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "generative-ui" agent skill from https://github.com/himself65/finance-skills/tree/main/plugins/ui-tools/skills/generative-ui into .agents/skills/generative-ui/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "generative-ui", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add himself65/finance-skills --skill generative-ui -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install himself65/finance-skills generative-ui --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/himself65/finance-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/plugins/ui-tools/skills/generative-ui .cursor/skills/generative-ui && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "generative-ui" agent skill from https://github.com/himself65/finance-skills/tree/main/plugins/ui-tools/skills/generative-ui into .cursor/skills/generative-ui/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "generative-ui", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/himself65/finance-skills.git --path plugins/ui-tools/skills/generative-ui--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add himself65/finance-skills --skill generative-ui -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install himself65/finance-skills generative-ui --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/himself65/finance-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/plugins/ui-tools/skills/generative-ui .gemini/skills/generative-ui && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "generative-ui" agent skill from https://github.com/himself65/finance-skills/tree/main/plugins/ui-tools/skills/generative-ui into .gemini/skills/generative-ui/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "generative-ui", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install himself65/finance-skills generative-uiInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add himself65/finance-skills --skill generative-ui -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/himself65/finance-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/plugins/ui-tools/skills/generative-ui .github/skills/generative-ui && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "generative-ui" agent skill from https://github.com/himself65/finance-skills/tree/main/plugins/ui-tools/skills/generative-ui into .github/skills/generative-ui/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "generative-ui", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add himself65/finance-skills --skill generative-ui -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install himself65/finance-skills generative-ui --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/himself65/finance-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/plugins/ui-tools/skills/generative-ui .opencode/skills/generative-ui && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "generative-ui" agent skill from https://github.com/himself65/finance-skills/tree/main/plugins/ui-tools/skills/generative-ui into .opencode/skills/generative-ui/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "generative-ui", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
generative-uiDesign system and templates for Claude's built-in generative UI — the showwidget tool that renders interactive HTML/SVG widgets inline in claude.ai conversations.
Generative UI is an agent skill from himself65/finance-skills. Design system and templates for Claude's built-in generative UI — the showwidget tool that renders interactive HTML/SVG widgets inline in claude.ai conversations. Use this skill whenever the user wants visual or interactive output rather than plain text or markdown: charts and dashboards, diagrams, flowcharts and architecture drawings, mockups, comparison grids, illustrations, interactive explainers ("explain how X works" with a visual), or tools with sliders, toggles, and live-updating displays — including…
Its SKILL.md is about 3.1k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including reference files (for example `README.md`, `references/chart_js.md` and `references/design_system.md`).
It sits in Frontend & Design, covering Diagrams, HTML artifacts and Design systems. The repository describes itself as: A collection of skills for AI financial analysis. The licence is MIT.
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 01fc7b4. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md (its code samples are html, json and svg).
From the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
cdnjs.cloudflare.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Generative UI loads about 3.1k tokens when it runs, and up to ~8.9k if it reads all its reference files. Until then it costs about 158 tokens; SKILL.md has 960 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from himself65/finance-skills at commit 01fc7b4, republished under its MIT licence (© himself65). 960 words, ~3,094 tokens.
.claude/skills/generative-ui/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.This skill contains the complete design system for Claude's built-in show_widget tool — the generative UI feature that renders interactive HTML/SVG widgets inline in claude.ai conversations. The guidelines below are the actual Anthropic "Imagine — Visual Creation Suite" design rules, extracted so you can produce high-quality widgets directly without needing the read_me setup call.
How it works: On claude.ai, Claude has access to the show_widget tool which renders raw HTML/SVG fragments inline in the conversation. This skill provides the design system, templates, and patterns to use it well.
Route on the verb, not the noun. Same subject, different visual depending on what was asked:
| User says | Type | Format |
|---|---|---|
| "how does X work" | Illustrative diagram | SVG |
| "X architecture" | Structural diagram | SVG |
| "what are the steps" | Flowchart | SVG |
| "explain compound interest" | Interactive explainer | HTML |
| "compare these options" | Comparison grid | HTML |
| "show revenue chart" | Chart.js chart | HTML |
| "create a contact card" | Data record | HTML |
| "draw a sunset" | Art/illustration | SVG |
<style> → HTML content → <script>Output streams token-by-token. Styles must exist before the elements they target, and scripts must run after the DOM is ready.
<!-- comments --> or /* comments */ (waste tokens, break streaming)code style not bold<!DOCTYPE>, <html>, <head>, or <body> — just content fragmentsposition: fixed — use normal-flow layoutsdisplay: none sections during streamingborder-radius: var(--border-radius-lg) for cards, var(--border-radius-md) for elementsMath.round(), .toFixed(n), or Intl.NumberFormatExternal resources may ONLY load from:
cdnjs.cloudflare.comcdn.jsdelivr.netunpkg.comesm.shAll other origins are blocked — the request silently fails.
Backgrounds: --color-background-primary (white), -secondary (surfaces), -tertiary (page bg), -info, -danger, -success, -warning
Text: --color-text-primary (black), -secondary (muted), -tertiary (hints), -info, -danger, -success, -warning
Borders: --color-border-tertiary (0.15α, default), -secondary (0.3α, hover), -primary (0.4α), semantic -info/-danger/-success/-warning
Typography: --font-sans, --font-serif, --font-mono
Layout: --border-radius-md (8px), --border-radius-lg (12px), --border-radius-xl (16px)
All auto-adapt to light/dark mode.
Dark mode is mandatory — every color must work in both modes:
color: #333c-blue, c-teal, etc.) — they handle light/dark automaticallysendPrompt(text)A global function that sends a message to chat as if the user typed it. Use it when the user's next step benefits from Claude thinking. Handle filtering, sorting, toggling, and calculations in JS instead.
show_widgetThe show_widget tool is built into claude.ai — no activation needed. Pass your widget code directly:
{
"title": "snake_case_widget_name",
"widget_code": "<style>...</style>\n<div>...</div>\n<script>...</script>"
}| Parameter | Type | Required | Description |
|---|---|---|---|
title | string | Yes | Snake_case identifier for the widget |
widget_code | string | Yes | HTML or SVG code. For SVG: start with <svg>. For HTML: content fragment |
For SVG output: start widget_code with <svg — it will be auto-detected and wrapped appropriately.
For charts, use onload callback pattern to handle script load ordering:
<div style="display: grid; grid-template-columns: repeat(auto-fit, minmax(140px, 1fr)); gap: 12px;">
<div style="background: var(--color-background-secondary); border-radius: var(--border-radius-md); padding: 1rem;">
<div style="font-size: 13px; color: var(--color-text-secondary);">Label</div>
<div style="font-size: 24px; font-weight: 500;" id="stat1">—</div>
</div>
</div>
<div style="position: relative; width: 100%; height: 300px; margin-top: 1rem;">
<canvas id="myChart"></canvas>
</div>
<div style="display: flex; align-items: center; gap: 12px; margin-top: 1rem;">
<label style="font-size: 14px; color: var(--color-text-secondary);">Parameter</label>
<input type="range" min="0" max="100" value="50" id="param" step="1" style="flex: 1;" />
<span style="font-size: 14px; font-weight: 500; min-width: 32px;" id="param-out">50</span>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.5.1/chart.umd.js" onload="initChart()"></script>
<script>
function initChart() {
const slider = document.getElementById('param');
const out = document.getElementById('param-out');
let chart = null;
function update() {
const val = parseFloat(slider.value);
out.textContent = val;
document.getElementById('stat1').textContent = val.toFixed(1);
const labels = [], data = [];
for (let x = 0; x <= 100; x++) {
labels.push(x);
data.push(x * val / 100);
}
if (chart) chart.destroy();
chart = new Chart(document.getElementById('myChart'), {
type: 'line',
data: { labels, datasets: [{ data, borderColor: '#7F77DD', borderWidth: 2, pointRadius: 0, fill: false }] },
options: {
responsive: true,
maintainAspectRatio: false,
plugins: { legend: { display: false } },
scales: { x: { grid: { display: false } } }
}
});
}
slider.addEventListener('input', update);
update();
}
if (window.Chart) initChart();
</script>Chart.js rules:
responsive: true, maintainAspectRatio: false-$5M not $-5M (negative sign before currency symbol)onload="initChart()" on CDN script tag + if (window.Chart) initChart(); as fallbackFor flowcharts and diagrams, use SVG with pre-built classes:
<svg width="100%" viewBox="0 0 680 H">
<defs>
<marker id="arrow" viewBox="0 0 10 10" refX="8" refY="5" markerWidth="6" markerHeight="6" orient="auto-start-reverse">
<path d="M2 1L8 5L2 9" fill="none" stroke="context-stroke" stroke-width="1.5" stroke-linecap="round" stroke-linejoin="round"/>
</marker>
</defs>
<!-- Single-line node (44px tall) -->
<g class="node c-blue" onclick="sendPrompt('Tell me more about this')">
<rect x="250" y="40" width="180" height="44" rx="8" stroke-width="0.5"/>
<text class="th" x="340" y="62" text-anchor="middle" dominant-baseline="central">Step one</text>
</g>
<!-- Connector arrow -->
<line x1="340" y1="84" x2="340" y2="120" class="arr" marker-end="url(#arrow)"/>
<!-- Two-line node (56px tall) -->
<g class="node c-teal" onclick="sendPrompt('Explain this step')">
<rect x="230" y="120" width="220" height="56" rx="8" stroke-width="0.5"/>
<text class="th" x="340" y="140" text-anchor="middle" dominant-baseline="central">Step two</text>
<text class="ts" x="340" y="158" text-anchor="middle" dominant-baseline="central">Processes the input</text>
</g>
</svg>SVG rules:
viewBox="0 0 680 H"). Set H to fit content + 40px paddingt (14px), ts (12px secondary), th (14px medium 500), box, node, arr, c-{color}<text> element must carry a class (t, ts, or th)dominant-baseline="central" for vertical text centering in boxesfill="none" (SVG defaults to fill: black)onclick="sendPrompt('...')"For interactive explainers (sliders, live calculations, inline SVG):
<div style="display: flex; align-items: center; gap: 12px; margin: 0 0 1.5rem;">
<label style="font-size: 14px; color: var(--color-text-secondary);">Years</label>
<input type="range" min="1" max="40" value="20" id="years" style="flex: 1;" />
<span style="font-size: 14px; font-weight: 500; min-width: 24px;" id="years-out">20</span>
</div>
<div style="display: flex; align-items: baseline; gap: 8px; margin: 0 0 1.5rem;">
<span style="font-size: 14px; color: var(--color-text-secondary);">$1,000 →</span>
<span style="font-size: 24px; font-weight: 500;" id="result">$3,870</span>
</div>
<div style="margin: 2rem 0; position: relative; height: 240px;">
<canvas id="chart"></canvas>
</div>
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/4.5.1/chart.umd.js" onload="initChart()"></script>
<script>
function initChart() {
// slider logic, chart rendering, sendPrompt() for follow-ups
}
if (window.Chart) initChart();
</script>Use sendPrompt() to let users ask follow-ups: sendPrompt('What if I increase the rate to 10%?')
After rendering the widget, briefly explain:
Keep it concise — the widget speaks for itself.
references/design_system.md — Complete color palette (9 ramps × 7 stops), CSS variables, UI component patterns, metric cards, layout rulesreferences/svg_and_diagrams.md — SVG viewBox setup, font calibration, pre-built classes, flowchart/structural/illustrative diagram patterns with examplesreferences/chart_js.md — Chart.js configuration, script load ordering, canvas sizing, legend patterns, dashboard layoutRead the relevant reference file when you need specific design tokens, SVG coordinate math, or Chart.js configuration details.
© himself65, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (references) in plugins/ui-tools/skills/generative-ui of himself65/finance-skills.
Open the folder on GitHubat commit 01fc7b4
Generative UI next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Generative UI this skillhimself65/finance-skills | 3.4k | — | ~3.1k | Automated safety check: Pass | MIT | |
| Visualizedisplay-dev/visualize | 132 | — | ~7.4k | Automated safety check: Pass | MIT | |
| Tech Diagramthatrebeccarae/claude-marketing | 162 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Fin Generative UIcriptogus/agent-evolve-network | 288 | — | ~972 | Automated safety check: Pass | MIT | |
| Architecture Mapalmendili/skills | 382 | 1 repos | ~2.3k | Automated safety check: Pass | None | |
| Previewhanamizuki/solopreneur | 152 | — | ~5.2k | Automated safety check: Pass | MIT |
display-dev/visualize
Generate beautiful, on-brand HTML artifacts — reports, diagrams, diff reviews, slide decks, plans, recaps, dashboards.
thatrebeccarae/claude-marketing
Generate technical architecture diagrams, pipeline flows, layer/stack diagrams, and system illustrations as standalone HTML files.
criptogus/agent-evolve-network
Design system and guidelines for Claude's built-in showwidget tool to render high-quality interactive HTML/SVG widgets, charts, diagrams, and explainers inline.
almendili/skills
Build or update an interactive isometric map of a repository's architecture — buildings sized by real measurements, neighborhoods by subsystem, animated flows tracing actual call paths, and a drift…
hanamizuki/solopreneur
Create an interactive HTML preview of any proposal, plan, idea, doc, brief, or spec and land it in the browsable local Preview Library by default (opens under file:// with a catalog sidebar and…
tellahq/opensession
Help the user understand the current topic visually with concise diagrams, code-shape sketches, and focused HTML artifacts.
himself65/finance-skills
Estimate a public company's intrinsic value with DCF, relative (peer multiple), and sum-of-the-parts (SOTP) methods, then blend them into an implied share price with upside/downside vs the market…
himself65/finance-skills
Build a pre-earnings briefing for a stock from Yahoo Finance data (yfinance): the upcoming report date and timing, consensus EPS and revenue estimates with their range, the beat/miss track record…
himself65/finance-skills
Analyze a company's most recent (or a specified past) earnings report from Yahoo Finance data (yfinance): actual vs estimated EPS, surprise size, revenue and margin trends, and the stock's price…
himself65/finance-skills
Analyze sell-side analyst estimates and how they are changing, using Yahoo Finance data (yfinance): EPS and revenue consensus by period, estimate ranges and dispersion, revision trends over…
himself65/finance-skills
Query Fintel (fintel.io) institutional market data through its REST API or official MCP server.
himself65/finance-skills
Check the live status of the Strait of Hormuz from the Hormuz Strait Monitor dashboard: open, restricted, or closed status, tanker transits vs normal, stranded vessels, Brent price impact, war-risk…
Categories
Design system and templates for Claude's built-in generative UI — the showwidget tool that renders interactive HTML/SVG widgets inline in claude.ai conversations. Generative UI is an agent skill from himself65/finance-skills.ai conversations.
Generative UI fits situations like: the user wants visual; interactive output rather than plain text; markdown: charts and dashboards; flowcharts and architecture drawings.
Run `npx skills add himself65/finance-skills --skill generative-ui -a claude-code`. Or copy the skill folder (plugins/ui-tools/skills/generative-ui in himself65/finance-skills) into .claude/skills/generative-ui in your project. Claude Code loads it when a task matches its description.
Run `npx skills add himself65/finance-skills --skill generative-ui -a codex`. Or copy the skill folder (plugins/ui-tools/skills/generative-ui in himself65/finance-skills) into .agents/skills/generative-ui in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add himself65/finance-skills --skill generative-ui -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/generative-ui, .gemini/skills/generative-ui, .github/skills/generative-ui and .opencode/skills/generative-ui in your project.
SKILL.md names no scripts, command-line tools or credentials: Generative UI is instructions for the agent only.
SKILL.md names 1 domain. In commands or code: cdnjs.cloudflare.com; the agent is likely to contact it when it follows the instructions. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Generative UI is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.1k tokens (SKILL.md is roughly 12k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 5.8k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Generative UI: Visualize (display-dev/visualize, 132 stars), Tech Diagram (thatrebeccarae/claude-marketing, 162 stars), Fin Generative UI (criptogus/agent-evolve-network, 288 stars) and Architecture Map (almendili/skills, 382 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
himself65 (a GitHub user) maintains it in himself65/finance-skills, which has 3,382 GitHub stars. The repository holds 19 skills in this directory. The repository was last updated on October 5, 2026.
Source: himself65/finance-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.