HyperWeave is a visual CLI for agents. Structured spec in, deterministic SVG out. Artifact classes include diagrams, charts, tables, and more. Each SVG is self-contained, with layout, theme, and machine-readable metadata compiled into the file.
Visual CLI for agents. Deterministic SVG diagrams, tables, and charts with embedded structured metadata. Zero JavaScript. Renders anywhere markdown does.
Estrellas
51
Herramientas
—
Disponibilidad
—
Why It Exists
Humans can't keep pace with the volume of text agents produce. Pictures are the obvious fix, and every picture format gives something up. Markdown is portable but flat. HTML is expressive but fragile. Raster images travel well but discard their structure. Model output is flexible but never twice the same.
A HyperWeave artifact carries its own spec, so the thing your agent drew is the thing your agent can read back. Useful as:
Chained steps: one agent's output is the next one's typed input.
Memory: a committed artifact is durable state that survives the context window.
Diffs: compare two artifacts semantically, not pixel by pixel.
Audit: the spec, its provenance, and its mutation lineage travel with the image.
The picture is the record.
Philosophy
Zero JavaScript.
No runtime.
No dependencies.
One file, one request.
Renders anywhere an <img> tag does.
Artifact Format Comparison
FORMAT
Portability
Agent-Readable Metadata
Visual Fidelity
Token Efficiency
Zero Dependencies
SCORE
SVG
✓
✓
✓
~
✓
4.5
Markdown
~
~
✗
✓
✓
3.0
HTML
✗
✓
✓
✗
~
2.5
✓ full · ~ partial · ✗ none
Artifact Classes
Diagrams
Diagrams encode topology, not pixels. HyperWeave supports the following diagram types: pipeline, fanout, fanin, hub, cycle, loop, dag, lanes, state-machine, sequence, tree, and comparison. Nodes carry brand logo glyphs, labels, and tags. Edges carry labels and motion to help process information better. Every diagram renders as a self-contained SVG with its full spec and hash-verified digest embedded for agents to read directly. Render them in a markdown file, send to Slack as an image, or render directly in your terminal.
Render any preset by name at /v1/diagram/{preset}/primer.static, or run hyperweave discover diagram for every preset, orientation and field.
Matrices
HyperWeave matrices are structured tables rendered as portable SVGs. A single JSON description can produce comparison grids, registries, tiers, benchmark tables, heatmaps, chips, glyphs, bars, and status maps, while carrying a machine-readable payload for agents.
Markdown twin: every matrix has a GFM projection of the same table. --markdown-out on the CLI, respond:"json" over HTTP, render_target="markdown" over MCP.
Receipts
Hyperweave parses agent session telemetry into a portable receipts that include model usage, tool calls stats, token spend, and context window visualization. Install the hook once and every session emits one:
The hook reads your session's JSONL transcript from disk and detects the harness automatically (Claude Code or Codex). Theme it with any of the 8 primer themes, or the paper receipt style above.
hyperweave install-hook --genome cream # any primer theme
hyperweave install-hook --genome raw # the paper receipt
Open an issue to request a missing agent harness.
Inside Every Artifact
Every HyperWeave artifact is a re-ingestible object, not just an image. It carries its full spec (hw:payload) and a hash-verified digest (hwz/1 envelope), so an agent can work with it directly, never parsing pixels. Two tiers, two jobs. Here they are inside a diagram artifact:
The envelope is the lossy digest; only the payload round-trips.
The round-trip: extract hw:payload, edit the JSON, POST /v1/compose with it as diagram: byte-identical re-render. The envelope's id is the sha256 of the payload, so an agent verifies "this artifact really is this data" before trusting either.
The look is a pointer, not a copy:prov.genome: "primer.porcelain" names the aesthetics; payload plus that one string is the entire recreation recipe.
Read at a budget: the verb algebra
Pixels for humans, compact JSON for agents. The verb algebra is the read/write grammar over the two tiers: every verb picks how much of the artifact to load, from the ≈200-token envelope to the full payload, and no verb ever parses pixels.
The verbs, split two ways.
Write · mints a new artifact, returns a content-addressed link (/v1/a/{id}), never inline SVG:
Verb
What it does
compose
a spec → an artifact
transform
edit an artifact's spec → a new artifact (new id + lineage)
Read · never mutates the artifact:
Verb
What it does
Returns
extract
pull the payload, envelope, or markdown back out
the requested depth
verify
recompute the id, proving the artifact is its data
{valid, id}
validate
check a spec against the schema before composing
{valid, type, genome}
diff
compare two artifacts
the structural delta
query
ask a question of the envelope
the answer
Every verb runs the same over the CLI (hyperweave {verb}), HTTP (POST /v1/{verb}), and MCP (hw_{verb}):
# compose an artifact, then read its spec straight back, no rendering
hyperweave compose matrix --spec-file table.json -g primer -o table.svg
curl -X POST https://hyperweave.app/v1/extract \
-H 'Content-Type: application/json' \
-d '{"source": "<svg or /v1/a/{id} url>", "respond": "payload"}'
One transform, start to finish
Action 1
Compose a bundled preset (or your own spec). This is the diagram whose payload and envelope appear above:
Transform it through the artifact itself. transform verifies the hash, applies the patch to the embedded spec, re-validates, and mints a new artifact with a lineage entry recording exactly what changed:
The result is a new artifact: new id, one more service in the fan, the envelope and lineage on stdout. -o writes the new pixels to services-billing.svg:
Action 3
Flip it, and redress it. Layout is a field, so one op turns the whole graph. The look is a separate pointer, so the same graph re-renders in any variant:
A new artifact, not a redraw: one field changed, and the result carries a new id plus a lineage entry naming its parent. Point -o at the same path to overwrite in place; you keep the record of where it came from, not the old render.
Orientation keeps structure: boxes hold their order and authored sides follow the flow, so setting it back to horizontal returns the landscape diagram to the pixel.
Theme is a pointer:porcelain to noir re-renders the same spec in a different look, structure untouched.
Genomes - Brand 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.
Four built-in genomes ship today. Custom brand dna generation via agnet SKILL.md files coming soon!
primer
brutalist
automata
chrome
Aesthetic
Minimal
Raw material
Cellular
Metallic
Variants
8 (4 dark, 4 light)
22 (8 dark, 14 light)
16 tones, any two pair
5 named
Motion
Animated state marks
Animated border SMIL
Animated cell grid
Animated border SMIL
Divider
aura
seam · sigil
dissolve
band
Every broken <img> URL renders the SMPTE RP 219 test pattern with ERR_NNN matching the HTTP status, instead of a browser broken-image icon.
Surface modes. A genome renders onto one of three surfaces: plate (opaque, its own background), inlay (bare, borrows the host page's light/dark), or twin (opaque and scheme-aware). Standalone, slide, and raster destinations take plate. For a GitHub README, bake a pair instead of shipping one scheme-adaptive file: GitHub serves README images through Camo as a plain <img>, so a prefers-color-scheme rule inside the SVG answers to the reader's operating system, not the GitHub theme toggle. --face light|dark bakes one scheme per file and <picture> chooses between them. The CLI exposes --surface/--ground/--palette, and --faces writes both files in one call (<out>-light.svg / <out>-dark.svg).
Install
uv add hyperweave # CLI + SVG rendering (the base)
uv add 'hyperweave[serve]' # + HTTP server (hyperweave serve)
uv add 'hyperweave[mcp]' # + MCP server (hyperweave mcp)
uv add 'hyperweave[all]' # + both servers
# or swap `uv add` for `pip install`
uv tool install hyperweave # standalone `hw` CLI: uv provisions Python itself
Requires Python 3.10+
Entry Points
Four interfaces, one pipeline. Every path produces the same artifact through the same compositor.
# Static badge
hw_compose(type="badge", title="BUILD", value="passing", genome="brutalist")
# Data-driven badge - unified token grammar (gh:owner/repo.metric, pypi:pkg.metric, ...)
hw_compose(type="badge", title="STARS", data="gh:anthropics/claude-code.stars", genome="brutalist")
# Strip with multiple live metrics
hw_compose(type="strip", title="readme-ai",
data="gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,pypi:readmeai.version",
genome="chrome")
# Marquee with mixed text + live tokens
hw_compose(type="marquee",
data="text:NEW RELEASE,gh:anthropics/claude-code.stars,text:DOWNLOAD",
genome="brutalist")
# Read or edit an existing artifact - the verb algebra
hw_extract(svg_or_url="<svg or /v1/a/{id} url>", respond="payload")
hw_transform(svg_or_id="<svg or /v1/a/{id} url>",
mutations=[{"op": "replace", "path": "/title", "value": "SHIPPED"}])
# Return the SVG bytes inline instead of a hosted url (default respond="url")
hw_compose(type="badge", title="BUILD", value="passing", genome="brutalist", respond="svg")
hw_discover(what="all") # the capability registry; full agent contract at /llms-full.txt
CLI
# Badge
hyperweave compose badge "build" "passing" --genome brutalist
# Strip with metrics
hyperweave compose strip "readme-ai" "STARS:2.9k,FORKS:278" -g brutalist
# Live data through the unified --data token grammar
hyperweave compose badge "STARS" --data 'gh:anthropics/claude-code.stars' -g brutalist
# Marquee with mixed text + live tokens
hyperweave compose marquee --data 'text:NEW RELEASE,gh:owner/repo.stars,text:DOWNLOAD' -g brutalist
# Session receipt from an agent transcript (Claude Code / Codex)
hyperweave compose receipt session.jsonl -o receipt.svg
# Validate a spec without rendering
hyperweave validate spec.json
# Profile card (live GitHub data, path-segment identity; 'stats' stays an alias)
hyperweave compose card eli64s -g chrome -o card.svg
# Star history chart
hyperweave compose chart stars eli64s/readme-ai -g brutalist -o chart.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
# The verbs: read or transform any artifact by handle, file, URL, or digest
hyperweave extract diagram.svg # the hw:payload seed as JSON
hyperweave diff v1.svg v2.svg --exit-code # structural diff, git-style exit
hyperweave verify diagram.svg # payload ↔ envelope integrity
hyperweave query diagram.svg 'nodes[0].label' # read one field
hyperweave transform diagram.svg --patch patch.json # mint a new artifact + lineage
Agent Loop
The same CLI runs as a machine-readable loop: learn what the install can do, validate before composing, compose with an inspection record, and say why each edit happened.
# Capability capsule for an agent context: caps, legality, vocabulary, presets + a digest
hyperweave discover --agent
hyperweave discover --agent --topology hub # scoped to one topology family
# Install readiness before composing: formats, fonts, genomes, telemetry wiring
hyperweave doctor
# Machine-readable validation report, the same report every surface returns
hyperweave validate spec.json --json
# Proof sidecars beside the SVG: measured geometry, diagnostics, verdicts,
# a motion-stripped resting frame, and a png when the raster extra is installed
hyperweave compose diagram --spec-file pipeline-head -o out.svg --proof
# One bounded JSON report on stdout instead of SVG bytes: ok, artifact, integrity, diagnostics, next
hyperweave compose badge build passing --respond report
# Say why a patch happened; the reason is recorded in the new artifact's lineage
hyperweave transform out.svg --patch patch.json --intent "rename entry node"
HTTP API
# URL grammar: /v1/{type}/{title}/{value}/{genome}.{motion}
curl 'https://hyperweave.app/v1/strip/readme-ai/brutalist.static?value=STARS:2.9k,FORKS:278'
# Live data via the unified ?data= grammar (works on badge / strip / marquee)
curl 'https://hyperweave.app/v1/badge/STARS/chrome.static?data=gh:anthropics/claude-code.stars'
curl 'https://hyperweave.app/v1/strip/readme-ai/brutalist.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks'
curl 'https://hyperweave.app/v1/marquee/SCROLL/brutalist.static?data=text:NEW%20RELEASE,gh:anthropics/claude-code.stars'
# Chromatic variants (automata: 16 solo tones, pair any two via &pair=...; chrome: horizon/abyssal/lightning/graphite/moth)
curl 'https://hyperweave.app/v1/badge/PYPI/automata.static?variant=teal&pair=violet&data=pypi:hyperweave.version'
curl 'https://hyperweave.app/v1/badge/build/passing/automata.static?size=compact'
# Genome-themed dividers
curl 'https://hyperweave.app/v1/divider/band/chrome.static'
curl 'https://hyperweave.app/v1/divider/seam/brutalist.static'
curl 'https://hyperweave.app/v1/divider/dissolve/automata.static'
# Genome-agnostic dividers
curl 'https://hyperweave.app/a/inneraura/dividers/zeropoint'
# Structured frames: /v1/{matrix|diagram}/{preset}/{genome}.{motion}
# (preset 'custom' takes a base64url ?spec=)
curl 'https://hyperweave.app/v1/matrix/connectors/primer.static?variant=porcelain'
curl 'https://hyperweave.app/v1/diagram/pipeline-head/primer.static?variant=porcelain'
# POST compose
curl -X POST https://hyperweave.app/v1/compose \
-H "Content-Type: application/json" \
-d '{"type":"strip","title":"hyperweave","genome":"brutalist","value":"STARS:2.9k"}'
# Verb algebra over an existing artifact: extract · verify · transform · diff · query
curl -X POST https://hyperweave.app/v1/extract \
-H "Content-Type: application/json" \
-d '{"source":"<svg or /v1/a/{id} url>","respond":"payload"}'
# Local server
hyperweave serve --port 8000
Output formats
Compose once, export to any of these (same artifact, same metadata):
--format
What you get
svg
the default: live, animated, adapts to the reader's ligh
H
Hyperweave
InnerAura·51 estrellas·
Visual CLI for agents. Deterministic SVG diagrams, tables, and charts with embedded structured metadata. Zero JavaScript. Renders anywhere markdown does.
Aún no hay lista de herramientas. Los servidores remotos la reciben tras la primera comprobación de estado.
Preguntas frecuentes
Preguntas
¿Cómo instalo Hyperweave?
Copia en esta página la configuración stdio para Cursor, Claude Desktop, Claude Code o VS Code. Usa la instalación del publicador, no un proxy de PlugMCP.
¿Hyperweave necesita una clave de API?
Este registro no indica ninguna variable de entorno obligatoria.
¿Qué transporte usa Hyperweave?
Hyperweave se ejecuta localmente por stdio.
¿Cuándo se comprobó Hyperweave por última vez?
Última comprobación: 2026-10-28. Visual CLI for agents. Deterministic SVG diagrams, tables, and charts with embedded structured metadata. Zero JavaScript. Renders anywhere markdown does.