← Back to Blog

HTML Anything — The Agentic HTML Editor That Lets Your AI Ship Directly

HTML Anything — The Agentic HTML Editor That Lets Your AI Ship Directly 🚀

What is it? HTML Anything is an open-source (Apache 2.0) HTML editor from the nexu-io team (the creators of Open Design, 40k+ stars). It auto-detects 8 coding-agent CLIs on your PATH, provides 75 composable skill templates across 9 deliverable surfaces (magazine articles, keynote decks, posters, web prototypes, data reports, Hyperframes videos, and social cards), and lets you one-click export to WeChat, X, Zhihu, .html, or .png — all without requiring a single API key or leaving your terminal session.

Why it's trending: HTML Anything hit 2,500+ GitHub stars in just 5 days because it captures a fundamental shift in how developers create content. The Claude Code team announced they stopped writing internal docs in Markdown — they ship HTML now. The argument is simple: Markdown is good for the writer, but HTML is good for the reader. HTML Anything makes "writing HTML" as easy as pasting Markdown and pressing ⌘+Enter, because your local AI agent does all the CSS, layout, and grid work. It reuses whatever CLI session you already have logged in — Claude, Codex, Cursor, Gemini — with zero marginal cost.


📋 Prerequisites

Before we start, make sure you have:

  • Node.js 18+ and pnpm installed (npm install -g pnpm)
  • At least one AI coding agent CLI installed and logged in:
    • Claude Code (claude login)
    • OpenAI Codex (codex login)
    • Cursor Agent (cursor login)
    • Gemini CLI (gemini auth)
    • GitHub Copilot CLI, OpenCode, Qwen Coder, or Aider
  • Git for cloning the repo
  • A browser (Chrome, Firefox, or Safari)

🧠 Architecture Overview

Here's how HTML Anything is structured:

HTML Anything Architecture

The architecture follows a clean split between the browser layer and your local agent:

  1. Browser (Next.js 16 App Router) — The frontend provides the editor, the template picker, the top-bar agent selector, and a sandboxed iframe preview. All processing happens client-side: juice (CSS inlining), modern-screenshot (PNG export), papaparse / xlsx (spreadsheet parsing), and dompurify (XSS defense).

  2. Agent Detection (GET /api/agents) — On boot, the browser calls the server API which scans PATH (including ~/.local/bin, ~/.bun/bin, /opt/homebrew/bin, ~/.npm-global/bin) for recognized CLIs. Each detected agent gets a thin adapter in src/lib/agents/argv.ts.

  3. Skill Registry (75 templates) — Every skill lives in src/lib/templates/skills/<name>/ as a folder following the Claude Code SKILL.md convention. Skills are organized by mode (prototype, deck, frame, social, office) and scenario (design, marketing, engineering, product, finance, hr).

  4. SSE Streaming Render (POST /api/convert) — When you press ⌘+Enter, the server spawns your chosen CLI via child_process.spawn, pipes the prompt + skill context to stdin, and streams the stdout JSON-line output as SSE events. The iframe srcdoc updates in real time — you watch the AI draw the page line by line.

  5. Your Local Agent CLI — Claude Code, Codex, Cursor Agent, Gemini CLI, Copilot CLI, OpenCode, Qwen Coder, or Aider. The agent receives the skill's SKILL.md instructions (hard constraints: CJK-first font stack, 8px baseline grid, contrast ≥ 4.5, must use real data) and your input, then generates a single-file HTML document.

  6. Export Layer — One-click export to WeChat MP (juice-inlined CSS), X / Xiaohongshu (2× PNG via ClipboardItem), Zhihu (LaTeX image placeholders), or download as standalone .html / high-DPI .png.


🚀 Step-by-Step Setup

Step 1: Clone and Install

git clone https://github.com/nexu-io/html-anything
cd html-anything
pnpm install

This installs all dependencies: Next.js, React 19, Tailwind v4, zustand, and the browser-side processing libraries.

Step 2: Start the Development Server

pnpm dev

Open http://localhost:3000 in your browser. You should see the editor interface with:

  • A top bar showing your detected agent CLIs
  • A left pane with a text editor
  • A center template picker
  • A right pane with a sandboxed iframe preview

Step 3: Verify Agent Detection

Look at the top bar. If you have any supported CLI installed and logged in, you'll see it listed there. If not, check your CLI setup:

# Example: verify Claude Code is available
claude --version
claude login  # if not already logged in

# Example: verify Codex is available
codex --version

The detection scan includes ~/.local/bin, ~/.bun/bin, /opt/homebrew/bin, and ~/.npm-global/bin — directories a GUI-launched Node process normally misses.

Step 4: Pick a Template and Generate

  1. Click the template picker in the center pane
  2. Filter by mode (e.g., prototype for web pages, deck for presentations, social for share cards)
  3. Select a skill (e.g., saas-landing for a landing page, magazine-poster for a poster)
  4. Paste your content in the editor — Markdown, CSV, JSON, SQL, or plain text all work
  5. Press ⌘+Enter

The SSE stream starts immediately. You'll see the HTML rendering line by line in the iframe preview. Watch it build — don't like where it's going? Interrupt and re-prompt.

Step 5: Export Your Result

Once the generation completes, use the export buttons:

  • WeChat MPjuice inlines all CSS, paste directly into the WeChat editor
  • X / Xiaohongshumodern-screenshot renders a 2× PNG, copied to your clipboard
  • Zhihu — LaTeX equations get data-eeimg placeholders for compatibility
  • Download .html — Single-file, self-contained
  • Download .png — High-DPI screenshot

Step 6: Customize and Re-prompt

Not happy with the output? Edit your prompt and press ⌘+Enter again. The generation is stateless — each run is fresh. You can also switch templates mid-session to try different visual approaches for the same content.


🔧 Configuration and Options

Supported Coding Agents

Agent Detection Binary Session Reuse
Claude Code claude claude login session
OpenAI Codex codex codex login session
Cursor Agent cursor-agent cursor login session
Gemini CLI gemini gemini auth session
GitHub Copilot CLI copilot Copilot subscription
OpenCode opencode-cli / opencode opencode config
Qwen Coder qwen Qwen API auth
Aider aider Aider API key

Skill Modes

  • prototype (21 skills) — Web prototypes, SaaS landing pages, dashboards, docs pages, mobile app mockups, resume, email marketing
  • deck (20 skills) — Keynote-style presentations including Swiss International, Guizang Editorial, Hermes Cyber, Replit, XHS Pastel
  • frame (12 skills) — Hyperframes video frames, VFX text-cursor, 3D device mockups, motion frames
  • social (8 skills) — X quote cards, Spotify-Wrapped style, Reddit threads, Xiaohongshu cards
  • office (14 skills) — PM specs, eng runbooks, finance reports, HR onboarding, OKRs, kanban boards, meeting notes

Hard Constraints (Built into Every Skill)

Every SKILL.md enforces:

  • CJK-first font stack (Noto Sans/Serif SC for Chinese, Inter/Manrope for Latin)
  • 8px baseline grid — every spacing is a multiple of 8
  • Color contrast ≥ 4.5 for accessibility
  • No pure black or pure white backgrounds
  • Must use the user's real data — no lorem ipsum

🐳 Docker-Based Development

You can run HTML Anything in a containerized environment:

# docker-compose.yml
services:
  html-anything:
    image: node:22-slim
    ports:
      - "3000:3000"
    volumes:
      - .:/app
      - /app/node_modules
    working_dir: /app
    environment:
      - NODE_ENV=development
    command: sh -c "pnpm install && pnpm dev"
    stdin_open: true
    tty: true

Note: The agent CLI must be available inside the container. You can either install your preferred CLI in the Dockerfile or bind-mount the host's agent binary + config:

# Dockerfile
FROM node:22-slim
RUN npm install -g pnpm
# Install Claude Code inside container
RUN npm install -g @anthropic-ai/claude-code
COPY . /app
WORKDIR /app
RUN pnpm install
CMD ["pnpm", "dev"]

✅ Verification Checklist

  • Server starts: pnpm devhttp://localhost:3000
  • Agent detection shows your CLI(s) in the top bar
  • Template picker loads with 75+ skills across all modes
  • Pasting Markdown and pressing ⌘+Enter triggers an SSE stream
  • Iframe preview updates in real time during generation
  • Export to .html produces a valid single-file document
  • Export to .png produces a high-DPI image
  • Different templates produce visually distinct outputs for the same content

🌟 Alternatives

HTML Anything is not the only agentic HTML editor. Here's how it compares:

  • Open Design (nexu-io) — The upstream project with 40k+ stars. More focused on design systems and multi-agent workflows. HTML Anything is the focused "HTML editor" version that's simpler to pick up.
  • Markdown Nice (mdnice) — Proves the juice-inlined CSS pipeline for WeChat/Zhihu paste compatibility. HTML Anything builds on this concept but adds the agent layer and SSE streaming.
  • Hyperframes (heygen-com) — Frame-script spec for motion graphics. HTML Anything's frame-* skills output conform to this spec and hand off to Remotion for .mp4 rendering.
  • Manual HTML + CSS editing — Traditional approach. HTML Anything automates the layout, grid, CSS, and responsive work so you don't have to touch CSS yourself.

HTML Anything stands out when you want to ship designed HTML content without writing CSS, you already use an AI coding agent, and you need one-click export to multiple platforms including WeChat and X.


📚 Resources

← Retour au Blog

HTML Anything — L'Éditeur HTML Agentique qui Laisse Votre IA Créer Directement

HTML Anything — L'Éditeur HTML Agentique qui Laisse Votre IA Créer Directement 🚀

Qu'est-ce que c'est ? HTML Anything est un éditeur HTML open-source (Apache 2.0) créé par l'équipe nexu-io (les créateurs d'Open Design, 40k+ étoiles). Il détecte automatiquement 8 CLI d'agents de codage sur votre PATH, fournit 75 modèles de compétences composables pour 9 surfaces de livraison (articles de magazine, présentations, posters, prototypes web, rapports de données, vidéos Hyperframes et cartes sociales), et permet l'export en un clic vers WeChat, X, Zhihu, .html ou .png — le tout sans nécessiter de clé API ni quitter votre session terminal.

Pourquoi ça cartonne : HTML Anything a atteint 2 500+ étoiles GitHub en seulement 5 jours car il capture un changement fondamental dans la façon dont les développeurs créent du contenu. L'équipe Claude Code a annoncé qu'elle ne rédige plus ses docs internes en Markdown — elle livre en HTML désormais. L'argument est simple : le Markdown est bon pour le rédacteur, mais le HTML est bon pour le lecteur. HTML Anything rend « l'écriture en HTML » aussi facile que de coller du Markdown et d'appuyer sur ⌘+Entrée, car votre agent IA local s'occupe de tout le CSS, la mise en page et la grille. Il réutilise la session CLI que vous avez déjà connectée — Claude, Codex, Cursor, Gemini — avec un coût marginal de zéro.


📋 Prérequis

Avant de commencer, assurez-vous d'avoir :

  • Node.js 18+ et pnpm installés (npm install -g pnpm)
  • Au moins un CLI d'agent de codage IA installé et connecté :
    • Claude Code (claude login)
    • OpenAI Codex (codex login)
    • Cursor Agent (cursor login)
    • Gemini CLI (gemini auth)
    • GitHub Copilot CLI, OpenCode, Qwen Coder ou Aider
  • Git pour cloner le dépôt
  • Un navigateur (Chrome, Firefox ou Safari)

🧠 Architecture

Voici comment HTML Anything est structuré :

Architecture HTML Anything

L'architecture suit une séparation nette entre la couche navigateur et votre agent local :

  1. Navigateur (Next.js 16 App Router) — Le frontend fournit l'éditeur, le sélecteur de modèles, le sélecteur d'agents et un aperçu iframe isolé. Tout le traitement côté client inclut juice (inlining CSS), modern-screenshot (export PNG), papaparse / xlsx (analyse de tableurs), et dompurify (défense XSS).

  2. Détection d'Agents (GET /api/agents) — Au démarrage, le navigateur appelle l'API serveur qui scanne le PATH (incluant ~/.local/bin, ~/.bun/bin, /opt/homebrew/bin, ~/.npm-global/bin) à la recherche de CLI reconnus. Chaque agent détecté reçoit un adaptateur dans src/lib/agents/argv.ts.

  3. Registre de Compétences (75 modèles) — Chaque compétence vit dans src/lib/templates/skills/<name>/ sous forme de dossier suivant la convention SKILL.md de Claude Code. Les compétences sont organisées par mode (prototype, deck, frame, social, office) et scénario (design, marketing, engineering, product, finance, hr).

  4. Rendu SSE en Streaming (POST /api/convert) — Lorsque vous appuyez sur ⌘+Entrée, le serveur lance votre CLI choisi via child_process.spawn, envoie l'invite et le contexte de compétence à stdin, et diffuse la sortie JSON-line de stdout sous forme d'événements SSE. Le srcdoc de l'iframe se met à jour en temps réel — vous regardez l'IA dessiner la page ligne par ligne.

  5. Votre Agent CLI Local — Claude Code, Codex, Cursor Agent, Gemini CLI, Copilot CLI, OpenCode, Qwen Coder ou Aider. L'agent reçoit les instructions SKILL.md de la compétence (contraintes strictes : pile de polices CJK, grille de base 8px, contraste ≥ 4,5, utilisation des données réelles) et votre saisie, puis génère un document HTML autonome.

  6. Couche d'Export — Export en un clic vers WeChat MP (CSS inliné par juice), X / Xiaohongshu (PNG 2× via ClipboardItem), Zhihu (placeholders d'images LaTeX), ou téléchargement en .html / .png haute résolution.


🚀 Installation Pas à Pas

Étape 1 : Cloner et Installer

git clone https://github.com/nexu-io/html-anything
cd html-anything
pnpm install

Cela installe toutes les dépendances : Next.js, React 19, Tailwind v4, zustand, et les bibliothèques de traitement côté navigateur.

Étape 2 : Démarrer le Serveur de Développement

pnpm dev

Ouvrez http://localhost:3000 dans votre navigateur. Vous devriez voir l'interface éditeur avec :

  • Une barre supérieure affichant vos CLI d'agents détectés
  • Un panneau gauche avec un éditeur de texte
  • Un sélecteur de modèles au centre
  • Un panneau droit avec un aperçu iframe isolé

Étape 3 : Vérifier la Détection d'Agents

Regardez la barre supérieure. Si vous avez un CLI supporté installé et connecté, il y sera listé. Sinon, vérifiez votre configuration :

# Exemple : vérifier que Claude Code est disponible
claude --version
claude login  # si pas encore connecté

# Exemple : vérifier que Codex est disponible
codex --version

Le scan de détection inclut ~/.local/bin, ~/.bun/bin, /opt/homebrew/bin et ~/.npm-global/bin — des répertoires normalement manqués par un processus Node lancé via l'interface graphique.

Étape 4 : Choisir un Modèle et Générer

  1. Cliquez sur le sélecteur de modèles dans le panneau central
  2. Filtrez par mode (ex : prototype pour pages web, deck pour présentations, social pour cartes de partage)
  3. Sélectionnez une compétence (ex : saas-landing pour une page d'accueil, magazine-poster pour un poster)
  4. Collez votre contenu dans l'éditeur — Markdown, CSV, JSON, SQL ou texte brut fonctionnent tous
  5. Appuyez sur ⌘+Entrée

Le flux SSE démarre immédiatement. Vous verrez le rendu HTML ligne par ligne dans l'aperçu iframe. Regardez-le se construire — si la direction ne vous plaît pas, interrompez et relancez.

Étape 5 : Exporter Votre Résultat

Une fois la génération terminée, utilisez les boutons d'export :

  • WeChat MPjuice inline tout le CSS, collez directement dans l'éditeur WeChat
  • X / Xiaohongshumodern-screenshot génère un PNG 2×, copié dans votre presse-papier
  • Zhihu — Les équations LaTeX reçoivent des placeholders data-eeimg
  • Télécharger .html — Fichier unique autonome
  • Télécharger .png — Capture d'écran haute résolution

Étape 6 : Personnaliser et Relancer

Pas satisfait du résultat ? Modifiez votre invite et appuyez sur ⌘+Entrée à nouveau. La génération est sans état — chaque exécution est fraîche. Vous pouvez aussi changer de modèle en cours de session pour essayer différentes approches visuelles pour le même contenu.


🔧 Configuration et Options

Agents de Codage Supportés

  • Claude Code — Binaire : claude — Session : claude login
  • OpenAI Codex — Binaire : codex — Session : codex login
  • Cursor Agent — Binaire : cursor-agent — Session : cursor login
  • Gemini CLI — Binaire : gemini — Session : gemini auth
  • GitHub Copilot CLI — Binaire : copilot — Abonnement Copilot
  • OpenCode — Binaire : opencode-cli / opencode — Config opencode
  • Qwen Coder — Binaire : qwen — Auth API Qwen
  • Aider — Binaire : aider — Clé API Aider

Modes de Compétences

  • prototype (21 compétences) — Prototypes web, pages SaaS, tableaux de bord, pages de documentation, maquettes d'applications mobiles, CV, email marketing
  • deck (20 compétences) — Présentations de type keynote incluant Swiss International, Guizang Editorial, Hermes Cyber, Replit, XHS Pastel
  • frame (12 compétences) — Images clés Hyperframes, VFX curseur texte, maquettes 3D, images animées
  • social (8 compétences) — Cartes de citation X, style Spotify-Wrapped, fils Reddit, cartes Xiaohongshu
  • office (14 compétences) — Spécifications produit, runbooks ingénierie, rapports financiers, intégration RH, OKRs, tableaux kanban, notes de réunion

Contraintes Strictes (Intégrées dans Chaque Compétence)

Chaque SKILL.md applique :

  • Pile de polices CJK prioritaire (Noto Sans/Serif SC pour le chinois, Inter/Manrope pour le latin)
  • Grille de base 8px — chaque espacement est un multiple de 8
  • Contraste de couleurs ≥ 4,5 pour l'accessibilité
  • Pas de noir pur ni de blanc pur pour les arrière-plans
  • Utilisation obligatoire des données réelles de l'utilisateur — pas de lorem ipsum

✅ Checklist de Vérification

  • Le serveur démarre : pnpm devhttp://localhost:3000
  • La détection d'agents affiche vos CLI dans la barre supérieure
  • Le sélecteur de modèles charge 75+ compétences dans tous les modes
  • Coller du Markdown et appuyer sur ⌘+Entrée déclenche un flux SSE
  • L'aperçu iframe se met à jour en temps réel pendant la génération
  • L'export .html produit un document valide et autonome
  • L'export .png produit une image haute résolution
  • Différents modèles produisent des résultats visuellement distincts pour le même contenu

📚 Ressources