Skip to content

InnerAura/hyperweave

Repository files navigation

HyperWeave

Headless visual output layer for AI agents.
One API call → self-contained SVG. No JavaScript. No dependencies. No runtime.
Works everywhere an <img> tag works.

strip


The Problem

When an AI agent needs visual output, it generates React code or HTML that breaks across platforms, carries no brand identity, and is illegible to the next agent in the chain. There's no portable, reliable visual primitive for agents.

HyperWeave is that primitive. Semantic SVGs with embedded CSS state machines, accessibility markup, and machine-readable metadata. The artifact stays live, stays on-brand, and stays legible — whether it's rendered in a GitHub README, Slack, Notion, documentation site, email, VS Code, or terminal. Every surface that renders an <img> tag is a HyperWeave surface.


Genomes — Aesthetic DNA

A genome is a portable, machine-readable aesthetic specification. It encodes the complete visual identity — chromatic system, surface material, motion vocabulary, geometric form language — as a set of CSS custom properties that any agent can consume and apply consistently across every artifact type.

brutalist-emerald chrome-horizon
Signals passing warning critical passing warning critical
Dashboard
Profile cards stats stats
star chart star chart
Marquee
Icons
discord github x spotify youtube notion npm instagram
Banner
brutalist-emerald chrome-horizon
Surface #14532D dark field #000a14 deep void
Signal #10B981 emerald #5ba3d4 metallic blue
Profile brutalist (sharp, zero-radius) chrome (smooth, env-mapped)
Motions 5 border + 9 kinetic 5 border only

Install

uv add hyperweave
# or
pip install hyperweave

Requires Python 3.12+.


Entry Points

Four interfaces, one pipeline. Every path produces the same artifact through the same compositor.

MCP CLI
HTTP API Python SDK

MCP

{
  "mcpServers": {
    "hyperweave": {
      "command": "hyperweave",
      "args": ["mcp"]
    }
  }
}
hw_compose(type="badge", title="build", value="passing", genome="brutalist-emerald")
hw_live(provider="github", identifier="anthropics/claude-code", metric="stars")
hw_kit(type="readme", genome="brutalist-emerald", badges="build:passing")
hw_discover(what="all")

CLI

# Badge
hyperweave compose badge "build" "passing" --genome brutalist-emerald

# Strip with metrics
hyperweave compose strip "readme-ai" "STARS:2.9k,FORKS:278" -g brutalist-emerald

# Banner with kinetic motion
hyperweave compose banner "HYPERWEAVE" -g brutalist-emerald -m cascade

# Artifact kit
hyperweave kit readme -g brutalist-emerald --badges "build:passing,version:v0.2.0" --social "github,discord"

# Profile card (live GitHub data)
hyperweave compose stats eli64s -g chrome-horizon -o stats.svg

# Star history chart
hyperweave compose chart stars eli64s/readme-ai -g brutalist-emerald -o chart.svg

# Timeline / roadmap from JSON items
hyperweave compose timeline --data roadmap.json -g chrome-horizon -o timeline.svg

# Custom genome from a local JSON file (validated against the profile contract)
hyperweave compose badge "DEPLOY" "live" --genome-file ./my-genome.json
hyperweave validate-genome ./my-genome.json

HTTP API

# URL grammar: /v1/{type}/{title}/{value}/{genome}.{motion}
curl https://hyperweave.app/v1/strip/readme-ai/brutalist-emerald.static?value=STARS:2.9k,FORKS:278

# Live data binding
curl https://hyperweave.app/v1/live/github/anthropics/claude-code/stars/chrome-horizon

# POST compose
curl -X POST https://hyperweave.app/v1/compose \
  -H "Content-Type: application/json" \
  -d '{"type":"banner","title":"HYPERWEAVE","genome":"brutalist-emerald","motion":"drop"}'

# Local server
hyperweave serve --port 8000

Session Telemetry

HyperWeave parses Claude Code transcripts into visual receipts — cost, tokens, tool distribution, cognitive phases. The artifact isn't a visualization of data. It is the record.

# Manual
hyperweave session receipt .claude/session.jsonl -o receipt.svg

# Autonomous — install once, every session gets a receipt
hyperweave install-hook

After install-hook, every Claude Code session automatically drops a receipt SVG into .hyperweave/receipts/. No config, no server, no manual step.

session receipt

rhythm strip


How It Works

Every artifact is the output of a single composition formula:

ARTIFACT = FRAME × PROFILE × GENOME × SLOTS × MOTION × ENVIRONMENT

Python builds context dicts. Jinja2 builds SVG. YAML defines config. Three layers, no mixing. Zero f-string SVG in Python.

ComposeSpec → engine.py → assembler.py (CSS) → lanes.py (validate) → templates.py (Jinja2) → SVG

Every artifact ships with:

  • Semantic metadata — provenance, reasoning, spatial trace, aesthetic DNA. Machine-readable context so the next agent in the chain knows what it's looking at and why.
  • CSS state machinesdata-hw-status, data-hw-state, data-hw-regime drive visual transitions through the Custom Property Bridge. No JavaScript.
  • Pure CSS/SMIL animation — all motion uses compositor-safe properties (transform, opacity, filter). No script tags. Works inside GitHub's Camo proxy, email clients, Notion embeds — anywhere SVGs render.
  • Accessibility — WCAG AA, prefers-reduced-motion, prefers-color-scheme, forced-colors, ARIA markup. Structural, not decorative.
Dimension Count
Frame types 15 (badge, strip, banner, icon, divider, marquee-h/v/counter, receipt, rhythm-strip, master-card, catalog, stats, chart, timeline)
Genomes 2 (brutalist-emerald, chrome-horizon)
Motion configs 15 (1 static + 5 border SMIL + 9 kinetic CSS)
Glyphs 99 (93 Simple Icons + 6 geometric)
Divider variants 5 (block, current, takeoff, void, zeropoint)
Metadata tiers 5 (Tier 0 silent → Tier 4 reasoning)
Paradigms 3 per frame (default, brutalist, chrome) — per-frame dispatch from genome
Bundled fonts 2 (JetBrains Mono, Orbitron, base64-embedded)

Stack: Pydantic, FastAPI, FastMCP v3, Jinja2, Typer.


Roadmap

roadmap


Contributing

HyperWeave is early. If you're interested in building genomes, extending frame types, or just seeing what this looks like in your own README — join the Discord.


InnerAura Labs

Discord   Instagram   LinkedIn   TikTok   X   YouTube

About

Headless visual output layer for AI agents. One API call → self-contained SVG. Zero dependencies, works everywhere ⌬

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors