HTML

A tool for turning the current session’s material into a self-contained HTML file. HTML is the language web browsers use to display pages, and this tool applies a fixed visual layout to the provided content.

In plain words
What is it for?
Use it to render session output as a designed HTML artifact and publish it for viewing.
Why use it?
It turns notes, research, plans, or reports into a shareable web document without requiring a separate website.

Skill for Claude CodeCodex

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add skills/danielmiessler/lifeos/html
Any agent
npx skills add danielmiessler/LifeOS --skill html
Clone the repo
git clone --depth 1 https://github.com/danielmiessler/LifeOS

Made for: Claude Code, Codex.

Per session 131 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 936 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 1 finding. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00131 $0.00936
Opus 5 $0.00066 $0.00468
Sonnet 5 $0.00026 $0.00187
Haiku 4.5 $0.00013 $0.00094

Measured yesterday against content hash f723636309c6, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

HTML scanned grade A with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured yesterday.

The scan reads SKILL.md. This mod also ships 1 executable file (Tools/Render.ts), listed below but not scanned — reading those needs a real analyzer, not pattern matching.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Makes network callslowCapability

Not a fault in itself. Listed so you know the mod talks to something, and to what.

curl -s -X POST http://localhost:31337/notify \
LifeOS/install/skills/HTML/SKILL.md · 65 lines

How it starts

The opening of the file, as written. The whole thing — 65 lines — stays where its author put it; the contents beside it link to each section on GitHub.

HTML

Turns whatever the session just produced into one self-contained, designed HTML file and publishes it as an Artifact. Deterministic split: the model's only job is distilling the session output into a typed content JSON and picking a design register; Tools/Render.ts owns every layout, typography, and color decision.

Voice Notification

When executing a workflow, do BOTH:

  1. Send voice notification:

    curl -s -X POST http://localhost:31337/notify \
      -H "Content-Type: application/json" \
      -d '{"message": "Running the Render workflow in the HTML skill to build a designed HTML artifact"}' \
      > /dev/null 2>&1 &
    
  2. Output text notification:

    Running **Render** in **HTML**...
    

Workflow Routing

Workflow Trigger File
Render /HTML, "HTML artifact", "render this as HTML" Workflows/Render.md

Quick Reference

  • Renderer: bun ~/.claude/skills/HTML/Tools/Render.ts --json content.json --register dossier --out artifact.html
  • --schema prints the content JSON shape with an example; --registers lists registers.
  • Registers: dossier (dark ink-green / orange, condensed display + typewriter — evidence files, red teams, investigations) and ledger (dark navy / gold, old-style serif — reports, finance, plans, comparisons). Alternate between them so consecutive outputs don't converge; add new registers to Render.ts rather than hand-styling one-offs.
  • Output is Artifact-CSP safe: inline CSS, fonts embedded as data URIs from local font files, zero external requests.

Gotchas

  • DOM-render screenshot pipelines drop CSS pseudo-element generated content (counters, ::before labels render in the browser but vanish from DOM-render captures, and they're invisible to text extraction). Render.ts therefore emits all numbering and labels as real DOM text. Never add CSS counters to a register. (Discovered 2026-07-11.)
  • Artifacts block all external requests — a Google Fonts <link> fails silently and you get the fallback stack. Embed via data-URI @font-face (Render.ts does this when the register's font file exists locally) or design on system stacks.
  • The artifact viewer wraps your file in its own document skeleton — emit <title> + <style> + body content only; no <!doctype>/<html>/<head>/<body> tags.
  • A published artifact is private to its owner's claude.ai account — verifying it in a browser signed into a different account/org 404s. Verify the render by serving the HTML file locally and capturing that; verify publication via the Artifact tool's list action.
  • Numbered section markers must mean something. Render.ts numbers sections (document order — legitimate). Don't number list items unless the content is a true sequence; use list blocks with bold lead-ins instead.

Read the full file on GitHub · 65 lines

Files

What ships with it

2 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. yesterday First seen · 65 lines · 131 tokens per session scan A f723636309c6

Subscribe to this mod's changes

HTML is a skill published in the GitHub repository danielmiessler/LifeOS (18,798 stars, last pushed 17d ago), licensed MIT. It adds 131 tokens to every session and 936 once invoked, about $0.0007 per session on Opus 5. A static security scan graded it A with 1 finding (makes network calls). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

mobile-harness

Portable Android and iOS device-control harness for agents. Use when an agent needs to control or automate Android/iOS devices — tap, swipe, screenshot, app control — locally (ADB/Portal/Simulator) or on Mobilerun cloud devices.

droidrun/mobile-harness · 54 tokens

macos-harness

Control a whole Mac from one persistent Python session with screenshots, PID-targeted input, an animated virtual pointer, targeted Apple Accessibility, Apple Events, Browser Harness CDP, and filesystem access. Use for native, Electron, browser, dialog, file, or cross-app tasks without moving the physical cursor or…

Zfinix/aster · 71 tokens

aster-cli

Guidance for using the aster CLI to work in a codebase with an AI agent: chat and edit code, run AI code reviews, apply fixes, and manage sessions, memory, and skills. Use when running or designing aster commands, reviewing a diff or PR with aster, or when the user mentions aster review, aster chat, aster fix, or…

Zfinix/aster · 85 tokens

aster-config

Reference for aster.yaml, covering review models, analyzers, focus areas, include/exclude globs, minconfidence, and the permissions block that gates edits. Use when creating or editing aster.yaml, choosing hypothesis/verify models, enabling semgrep or ast-grep, or configuring edit permissions.

Zfinix/aster · 65 tokens

aster-chat-sessions

Drive aster chat programmatically and manage sessions and memory: one-shot --print/--json answers, --messages-json for caller-owned history, --continue and --session persistence, --allow-edits gating, and the sessions/memory commands. Use when scripting aster chat, integrating it into an editor or agent, or inspecting…

Zfinix/aster · 74 tokens

aster-review-ci

Run aster code reviews non-interactively in CI, GitHub Actions, or from another agent. Covers aster review --pr, --json, --stream, --comment, diff-from-stdin, token handling, and filtering findings. Use when wiring aster into a pipeline, posting PR comments, or parsing review output programmatically.

Zfinix/aster · 75 tokens