HyperWeave Hero

The Visual CLI for agents

API ·  CLI ·  MCP ·  SKILL.md

build, version, license, python

--- ## What Is HyperWeave 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. ** 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 `` tag does. ** Artifact Format Comparison**

Format comparison: SVG scores 4.5 of 5, Markdown 3.0, HTML 2.5, across portability, agent-readable metadata, visual fidelity, token efficiency, and zero dependencies.

View as markdown table
| 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.

One call, best model: a model router fans out to Claude, Gemini, OpenAI, DeepSeek, Kimi, and Qwen, each door labelled with the capability it is routed for

Compose this inline ```bash hyperweave compose diagram --spec-file /dev/stdin -g primer --variant porcelain --surface inlay --face light -o provider-router-light.svg <<'JSON' { "topology": "fanout", "orientation": "horizontal", "title": "One call, best model", "subtitle": "Fanout · horizontal", "zones": ["router", "providers"], "node_style": "card+glyph", "glyph_tint": "full", "nodes": [ { "id": "router", "label": "model router", "desc": "1 call, best model\ncapability-routed", "role": "hero", "kind": "router", "gather": true }, { "id": "claude", "label": "Claude", "desc": "long-context", "glyph": "anthropic" }, { "id": "gemini", "label": "Gemini", "desc": "multimodal", "glyph": "gemini" }, { "id": "openai", "label": "OpenAI", "desc": "tool-use", "glyph": "openai" }, { "id": "deepseek", "label": "DeepSeek", "desc": "reasoning", "glyph": "deepseek" }, { "id": "kimi", "label": "Kimi", "desc": "agentic", "glyph": "kimi" }, { "id": "qwen", "label": "Qwen", "desc": "multilingual", "glyph": "qwen" } ], "edges": [ { "source": "router", "target": "claude", "label": "route", "label_style": "chip", "relation": "drift", "marker": "arrow" }, { "source": "router", "target": "gemini", "relation": "drift", "marker": "arrow" }, { "source": "router", "target": "openai", "relation": "drift", "marker": "arrow" }, { "source": "router", "target": "deepseek", "relation": "drift", "marker": "arrow" }, { "source": "router", "target": "kimi", "relation": "drift", "marker": "arrow" }, { "source": "router", "target": "qwen", "relation": "drift", "marker": "arrow" } ] } JSON ```

Two feeds in, three surfaces out: a spec and live connector data arrive on the left of one HyperWeave artifact, which fans out to a GitHub README, a Slack unfurl, and an agent reading the payload

Compose this inline ```bash hyperweave extract broadcast-split-light.svg --respond payload > broadcast-split.json hyperweave compose diagram --spec-file broadcast-split.json -g primer --variant porcelain --surface inlay --face light -o broadcast-split-light.svg ```

Every request in, every artifact out: Claude Code, Codex, and MCP call the compose engine from the left; GitHub, Slack, and Obsidian receive the artifacts on the right

Compose this inline ```bash hyperweave extract compose-gate-light.svg --respond payload > compose-gate.json hyperweave compose diagram --spec-file compose-gate.json -g primer --variant porcelain --surface inlay --face light -o compose-gate-light.svg ```

MCP gateway: Claude Code as MCP host, through an MCP gateway, to the hyperweave MCP server, with request and response drawn as two lanes

Compose this inline ```bash hyperweave compose diagram --spec-file pipeline-row -g primer --variant space --surface inlay --face light -o mcp-gateway-light.svg ``` `pipeline-row` is a bundled preset; the URL API renders it by name at `/v1/diagram/pipeline-row/primer.static`.

Six verbs, one mouth: compose writes into the artifact and transform writes out, while extract, verify, diff, and query bundle into a single read gathered at the artifact's face

Compose this inline ```bash hyperweave extract verbs-mouth-light.svg --respond payload > verbs-mouth.json hyperweave compose diagram --spec-file verbs-mouth.json -g primer --variant porcelain --surface inlay --face light -o verbs-mouth-light.svg ```

Frontier serving DAG: requests through one OpenRouter key to Anthropic, OpenAI, and Gemini, all sharing a Redis cache, with telemetry skipping the ranks to Grafana

Compose this inline ```bash hyperweave compose diagram --spec-file dag-providers -g primer --variant noir --surface inlay --face light -o frontier-serving-light.svg ``` `dag-providers` is a bundled preset; the URL API renders it by name at `/v1/diagram/dag-providers/primer.static`.

The data flywheel: Generate, Distribute, Capture, and Improve seated on a dashed ring around a hero that compounds each turn

Compose this inline ```bash hyperweave compose diagram --spec-file cycle-flow -g primer --variant porcelain --surface inlay --face light -o cycle-flow-light.svg ``` `cycle-flow` is a bundled preset; the URL API renders it by name at `/v1/diagram/cycle-flow/primer.static`.

One turn of the loop, performed: change, measure, keep or revert — guard chips inside the Stop? holder decide whether the loop returns or the champion ships

Compose this inline ```bash hyperweave compose diagram --spec-file loop-hillclimb-turn -g primer --variant porcelain --surface inlay --face light -o loop-hillclimb-turn-light.svg ``` `loop-hillclimb-turn` is a bundled preset; the URL API renders it by name at `/v1/diagram/loop-hillclimb-turn/primer.static`.

Dependency audit tree: my-app roots direct dependencies react, lodash, and axios, transitive children hang on dashed edges, and health dots flag what is outdated or vulnerable

Compose this inline ```bash hyperweave compose diagram --spec-file tree-health -g primer --variant porcelain --surface inlay --face light -o tree-health-light.svg ``` `tree-health` is a bundled preset; the URL API renders it by name at `/v1/diagram/tree-health/primer.static`.
### Pick a layout | | | | |:---|:---|:---| | **Flows** | `pipeline` · `fanout` · `fanin` | stages in a line, one-to-many, many-to-one | | **Cycles** | `cycle` · `loop` · `state-machine` | a closed ring, a procedural loop with exits, legal state transitions | | **Structure** | `dag` · `tree` · `lanes` | dependencies, hierarchy, ownership rows | | **Centered** | `hub` | one thing at the middle of its world | | **Time** | `sequence` | who calls whom, in order | | **Side by side** | `comparison` | two options on one sheet | Twelve layouts, fifty-nine bundled presets, one spec vocabulary. Variations are values of `orientation`, not layouts of their own: | | | |:---|:---| | `dag` · `pipeline` | `horizontal` · `vertical` | | `fanout` | `horizontal` · `bilateral` · `upward` · `downward` · `radial` | | `tree` | `horizontal` · `radial` | | `cycle` | `ring` · `orbit` | | `loop` | `vertical` · `horizontal` | | `fanin` · `hub` · `lanes` · `sequence` · `state-machine` · `comparison` | `horizontal` | 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.

comparison matrix: how GitHub, VS Code, Slack, Gmail, and AI agents each ingest the same SVG

One frame, every table · generated, not drawn

View as table | READER | | PIXELS | MOTION | READS VIA | |:---|:---:|:---:|:---:|:---| | GitHub README | github | ✓ | Yes | camo, css animation | | VS Code preview | vscode | ✓ | Yes | markdown preview | | Slack unfurl | slack | ~ | - | image proxy | | Gmail body | gmail | ~ | - | img tag | | Agent | mcp | ✗ | - | hw:payload, hwz/1, markdown twin |
Compose this inline ```bash hyperweave compose matrix --spec-file /dev/stdin -g primer --variant porcelain -o one-artifact.svg <<'JSON' { "title": "One artifact. Many readers.", "subtitle": "how each consumer ingests the same SVG", "columns": [ { "id": "reader", "label": "READER", "role": "label" }, { "id": "mark", "label": "", "kind": "glyph", "glyph_tint": "full" }, { "id": "pixels", "label": "PIXELS", "kind": "check" }, { "id": "motion", "label": "MOTION", "kind": "pill" }, { "id": "via", "label": "READS VIA", "kind": "chip" } ], "rows": [ { "label": "GitHub README", "cells": [ { "glyph": "github" }, { "state": "full" }, { "state": "on" }, { "chips": [ "camo", "css animation" ] } ] }, { "label": "VS Code preview", "cells": [ { "glyph": "vscode" }, { "state": "full" }, { "state": "on" }, { "chips": [ "markdown preview" ] } ] }, { "label": "Slack unfurl", "cells": [ { "glyph": "slack" }, { "state": "partial" }, { "state": "off" }, { "chips": [ "image proxy" ] } ] }, { "label": "Gmail body", "cells": [ { "glyph": "gmail" }, { "state": "partial" }, { "state": "off" }, { "chips": [ "img tag" ] } ] }, { "label": "Agent", "cells": [ { "glyph": "mcp" }, { "state": "none" }, { "state": "off" }, { "chips": [ "hw:payload", "hwz/1", "markdown twin" ] } ] } ], "notes": "pixels for humans · hw:payload for agents" } JSON ```
```bash # Connectors preset https://hyperweave.app/v1/matrix/connectors/primer.static?variant=porcelain # Any table, one URL: base64url MatrixSpec JSON (8 KB cap) https://hyperweave.app/v1/matrix/custom/primer.static?spec= # CLI, with the markdown twin alongside hyperweave compose matrix --spec-file table.json -g primer --variant porcelain --markdown-out table.md ``` Another matrix configuration for visualizing benchmarks:

Frontier vs open-weights models compared on SWE-bench Verified coding score against input and output token price, June 2026

View as table | MODEL | | SWE-bench Verified | INPUT (per Mtok) | OUTPUT (per Mtok) | |:---|:---:|:---:|:---:|:---:| | **FRONTIER · CLOSED WEIGHTS** | | | | | | Claude Fable 5 | anthropic | 95 % | $10 | $50 | | Claude Opus 4.8 | anthropic | 88.6 % | $5 | $25 | | GPT-5.5 | openai | 82.6 % | $5 | $30 | | Gemini 3.1 Pro | gemini | 80.6 % | $2 | $12 | | **OPEN WEIGHTS** | | | | | | DeepSeek V4-Pro | deepseek | 80.6 % | $0.44 | $0.87 | | Kimi K2.6 | kimi | 80.2 % | $0.95 | $4 | | GLM-5 | zai | 77.8 % | $1 | $3.2 | | Mistral Medium 3.5 | mistral | 77.6 % | $1.5 | $7.5 | *SWE-bench Verified % · USD per Mtok · current flagships, jun 2026 · sources: vals.ai · artificialanalysis.ai · model cards*
Compose this inline ```bash hyperweave compose matrix --spec-file /dev/stdin -g primer --variant cream --surface twin --faces -o frontier-benchmarks.svg <<'JSON' { "title": "Frontier vs Open", "subtitle": "coding & price · SWE-bench Verified against price per million tokens · current flagships, jun 2026", "columns": [ { "id": "model", "label": "MODEL", "kind": "text", "align": "left", "role": "label" }, { "id": "mark", "label": "", "kind": "glyph", "align": "center", "glyph_tint": "full" }, { "id": "swe", "label": "SWE-bench Verified", "kind": "numeric", "align": "center", "polarity": "higher", "unit": "%" }, { "id": "pin", "label": "INPUT", "sublabel": "per Mtok", "kind": "numeric", "align": "center", "polarity": "lower", "unit": "$" }, { "id": "pout", "label": "OUTPUT", "sublabel": "per Mtok", "kind": "numeric", "align": "center", "polarity": "lower", "unit": "$" } ], "rows": [ { "label": "Claude Fable 5", "cells": [ { "glyph": "anthropic" }, { "value": 95.0 }, { "value": 10 }, { "value": 50 } ], "section": "FRONTIER · CLOSED WEIGHTS" }, { "label": "Claude Opus 4.8", "cells": [ { "glyph": "anthropic" }, { "value": 88.6 }, { "value": 5 }, { "value": 25 } ], "section": "FRONTIER · CLOSED WEIGHTS" }, { "label": "GPT-5.5", "cells": [ { "glyph": "openai" }, { "value": 82.6 }, { "value": 5 }, { "value": 30 } ], "section": "FRONTIER · CLOSED WEIGHTS" }, { "label": "Gemini 3.1 Pro", "cells": [ { "glyph": "gemini" }, { "value": 80.6 }, { "value": 2 }, { "value": 12 } ], "section": "FRONTIER · CLOSED WEIGHTS" }, { "label": "DeepSeek V4-Pro", "cells": [ { "glyph": "deepseek" }, { "value": 80.6 }, { "value": 0.44 }, { "value": 0.87 } ], "section": "OPEN WEIGHTS" }, { "label": "Kimi K2.6", "cells": [ { "glyph": "kimi" }, { "value": 80.2 }, { "value": 0.95 }, { "value": 4.0 } ], "section": "OPEN WEIGHTS" }, { "label": "GLM-5", "cells": [ { "glyph": "zai" }, { "value": 77.8 }, { "value": 1.0 }, { "value": 3.2 } ], "section": "OPEN WEIGHTS" }, { "label": "Mistral Medium 3.5", "cells": [ { "glyph": "mistral" }, { "value": 77.6 }, { "value": 1.5 }, { "value": 7.5 } ], "section": "OPEN WEIGHTS" } ], "sections": [ "FRONTIER · CLOSED WEIGHTS", "OPEN WEIGHTS" ], "notes": "SWE-bench Verified % · USD per Mtok · current flagships, jun 2026 · sources: vals.ai · artificialanalysis.ai · model cards" } JSON ```

[Inside every artifact](#inside-every-artifact) - **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: ```bash uv tool install hyperweave # or: pip install hyperweave hyperweave install-hook ```

A HyperWeave session receipt for a Claude Code run: $1,787.28 across 1686.0M tokens and 3795 calls, opus-4.8 dominant, with a tool-spend breakdown, a cost-by-model bar, and a context-load curve.

Claude Code · $1,787.28 · 1686.0M tokens · 3795 calls · opus-4.8

View the Codex receipt

A HyperWeave session receipt for a Codex run: $10.72 across 32.4M tokens and 346 calls, gpt-5.3.

Codex · $10.72 · 32.4M tokens · 346 calls · gpt-5.3

View the same session as a register receipt

The same Claude Code session printed as a thermal register tape: tools as line items priced in tokens, models as payment tender, failed calls as voids.

The same Claude session if you fancy a proper receipt

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](#primer), or the paper receipt style above. ```bash hyperweave install-hook --genome cream # any primer theme hyperweave install-hook --genome raw # the paper receipt ``` Open an issue 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: **recreate & modify: the complete spec** ```xml { "spec": { "title": "Service dependencies", "subtitle": "Service dependencies · a gateway fans to domain services, each grounding on its store", "topology": "dag", "zones": ["subsystems"], "nodes": [ { "id": "web", "label": "web", "desc": "React SPA", "glyph": "react" }, { "id": "gateway", "label": "API gateway", "role": "hero", "kind": "router" }, { "id": "auth", "label": "Auth", "desc": "tokens", "kind": "shield" } ], "edges": [ { "source": "web", "target": "gateway", "relation": "assert" }, { "source": "gateway", "target": "auth", "relation": "assert" }, { "source": "auth", "target": "postgres", "label": "reads", "label_style": "chip", "relation": "assert" } ] } } ``` **the ≈200-token digest: know what an artifact is without opening it** ```xml { "v": "hwz/1", "id": "sha256:48b3de6494886c678f4c8efab4f0aa105922e315f8f62145548e17935175fb11", "k": "diagram", "title": "Service dependencies", "intent": "topology diagram: Service dependencies", "state": "active", "data": { "pattern": "dag", "n": 8, "hero": "API gateway", "nodes": { "web": "React SPA", "API gateway": "", "Auth": "tokens", "Orders": "Python svc", "Search": "query svc", "Postgres": "primary", "Kafka": "events", "Redis": "cache" }, "edges": ["web → API gateway", "API gateway → Auth", "API gateway → Orders", "API gateway → Search", "Auth → Postgres (reads)", "Orders → Postgres", "Orders → Kafka (emits)", "Search → Redis (cache)", "API gateway → Postgres (direct read)"] }, "frames": [{ "t": "diagram", "l": "Service dependencies" }], "prov": { "by": "hyperweave", "ver": "0.4.6", "genome": "primer.porcelain", "ts": "2026-07-15T02:01:15.613547+00:00" } } ``` 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 verb algebra: the artifact at the hub centre, composed from a spec, transformed with lineage, read without mutation (extract, verify, diff, query), shipping to documents and surfaces.

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}`): ```bash # 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": "", "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: ```bash hyperweave compose diagram --spec-file dag-mesh -g primer --variant porcelain --surface inlay --face light -o services.svg ```

Service dependencies DAG: a web SPA through an API gateway fanning to Auth, Orders, and Search, each grounding on its store

#### Action 2 **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: ```bash hyperweave transform services.svg -o services-billing.svg --patch-json '[ {"op": "add", "path": "/nodes/-", "value": {"id": "billing", "label": "Billing", "desc": "invoices", "glyph": "stripe"}}, {"op": "add", "path": "/edges/-", "value": {"source": "gateway", "target": "billing", "relation": "assert"}}, {"op": "add", "path": "/edges/-", "value": {"source": "billing", "target": "postgres", "label": "writes", "label_style": "chip", "relation": "assert", "exit": "bottom", "entry": "right"}} ]' ``` **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`:

The same diagram after one transform: a Billing service joins the fan and its writes edge rides the bottom band into Postgres

#### 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: ```bash hyperweave transform services-billing.svg -o services-vertical.svg \ --patch-json '[{"op": "add", "path": "/orientation", "value": "vertical"}]' hyperweave extract services-vertical.svg --respond payload \ | hyperweave compose diagram --spec-file - --variant noir -o services-noir.svg ```

The same service graph turned vertical and rendered in the noir variant: the fan flows top to bottom, Billing keeps its place in it, and the writes edge takes the outside gutter into Postgres

- **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

primer

PYPI - porcelain variant PYPI - cream variant PYPI - dusk variant PYPI - petrol variant
PYPI - noir variant PYPI - carbon variant PYPI - space variant PYPI - anvil variant

8 variants · 4 light: porcelain · cream · dusk · petrol
4 dark: noir · carbon · space · anvil

Signals
animated state marks
passing building warning critical
  • ping (passing) · spinner (building) · throb (warning) · shake (critical). One mark system, shared with the strip.
  • /v1/badge/{title}/{value}/primer.static?state={state}&variant={porcelain|cream|dusk|petrol|noir|carbon|space|anvil}
  • hyperweave.app/v1/badge/BUILD/passing/primer.static?state=passing&variant=porcelain
Dashboard
strip
strip
  • /v1/strip/{title}/primer.static?data={tokens}&subtitle={text}&glyph={glyph}&variant={variant}
  • hyperweave.app/v1/strip/readme-ai/primer.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,pypi:readmeai.version&subtitle=eli64s/readme-ai&glyph=github&variant=porcelain
Profile
card
stats
  • /v1/card/{username}/primer.static?variant={variant} (/v1/stats/… alias)
  • hyperweave.app/v1/card/eli64s/primer.static?variant=porcelain
Star Chart
star history
star chart
  • /v1/chart/stars/{owner}/{repo}/primer.static?variant={variant}
  • hyperweave.app/v1/chart/stars/eli64s/readme-ai/primer.static?variant=porcelain
Marquee
horizontal ticker
marquee
  • /v1/marquee/{title}/primer.static?data={tokens}&variant={variant}
  • hyperweave.app/v1/marquee/readme-ai/primer.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,gh:eli64s/readme-ai.contributors,pypi:readmeai.downloads,gh:eli64s/readme-ai.last_push,pypi:readmeai.version,gh:eli64s/readme-ai.language&variant=porcelain
Icons
circle + square
vercel - noir cloudflare - carbon docker - space github - anvil deepseek - porcelain anthropic - cream ollama - dusk nousresearch - petrol
  • /v1/icon/{glyph}/primer.static?shape={circle|square}&variant={variant}
  • hyperweave.app/v1/icon/github/primer.static?shape=circle&variant=noir
Divider
aura
primer aura divider
  • /v1/divider/aura/primer.static?variant={variant}
  • hyperweave.app/v1/divider/aura/primer.static?variant=porcelain

brutalist

View the brutalist catalog

PYPI - celadon variant PYPI - alloy variant PYPI - carbon variant PYPI - pigment variant PYPI - umber variant PYPI - ember variant PYPI - temper variant
PYPI - onyx variant PYPI - primer variant PYPI - depth variant PYPI - pulse variant PYPI - archive variant PYPI - signal variant PYPI - afterimage variant

22 variants · 8 dark: celadon · alloy · carbon · pigment · umber · ember · temper · onyx
14 light (6 shown): primer · depth · pulse · archive · signal · afterimage

Signals
state machine
passing warning critical
  • /v1/badge/{title}/{value}/{genome}.static?state={state}&variant={celadon|carbon|alloy|temper|pigment|ember|umber|onyx|archive|signal|pulse|depth|afterimage|primer}
  • hyperweave.app/v1/badge/BUILD/passing/brutalist.static?state=passing&variant=celadon
Dashboard
strip
strip
  • /v1/strip/{title}/{genome}.static?data={tokens}&subtitle={text}&glyph={glyph}&variant={variant}
  • hyperweave.app/v1/strip/hyperweave/brutalist.static?data=gh:InnerAura/hyperweave.stars,pypi:hyperweave.version,gh:InnerAura/hyperweave.build&subtitle=InnerAura/hyperweave&glyph=github&variant=celadon
Profile
card
stats - pulse (light)
stats - celadon (dark)
  • /v1/card/{username}/{genome}.static?variant={variant} (/v1/stats/… alias)
  • hyperweave.app/v1/card/eli64s/brutalist.static?variant=pulse
Star Chart
star history
star chart
  • /v1/chart/stars/{owner}/{repo}/{genome}.static?variant={variant}
  • hyperweave.app/v1/chart/stars/eli64s/readme-ai/brutalist.static?variant=celadon
Marquee
horizontal ticker
marquee
  • /v1/marquee/{title}/{genome}.static?data={tokens}&variant={variant}
  • hyperweave.app/v1/marquee/readme-ai/brutalist.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,gh:eli64s/readme-ai.contributors,gh:eli64s/readme-ai.watchers,pypi:readmeai.downloads,gh:eli64s/readme-ai.last_push,gh:eli64s/readme-ai.pull_requests,gh:eli64s/readme-ai.issues,gh:eli64s/readme-ai.build,pypi:readmeai.version,gh:eli64s/readme-ai.language&variant=celadon
Icons
circle + square
spotify - celadon docker - alloy github - carbon discord - pigment rust - umber anthropic - ember codex - temper hyperweave - onyx
  • /v1/icon/{glyph}/{genome}.static?shape={circle|square}&variant={variant}
  • hyperweave.app/v1/icon/github/brutalist.static?shape=circle&variant=celadon
Divider
seam · sigil
brutalist seam divider (dark)
brutalist sigil divider (light)
  • /v1/divider/{seam|sigil}/{genome}.static?variant={variant}
  • hyperweave.app/v1/divider/sigil/brutalist.static?variant=pulse

automata

View the automata catalog

PYPI - crimson variant PYPI - copper variant PYPI - bone variant PYPI - solar variant PYPI - amber variant PYPI - sulfur variant PYPI - toxic variant PYPI - jade variant
PYPI - abyssal variant PYPI - teal variant PYPI - steel variant PYPI - cobalt variant PYPI - indigo variant PYPI - violet variant PYPI - magenta variant PYPI - burgundy variant

16 tones · crimson · copper · bone · solar · amber · sulfur · toxic · jade
abyssal · teal · steel · cobalt · indigo · violet · magenta · burgundy
pair any two via ?variant=primary&pair=secondary

Signals
state machine
passing warning critical
  • /v1/badge/{title}/{value}/{genome}.static?state={state}
  • hyperweave.app/v1/badge/BUILD/passing/automata.static?state=passing&variant=bone
Dashboard
strip
strip
  • /v1/strip/{title}/automata.static?data={tokens}&variant={tone}&pair={tone}&subtitle={text}&glyph={glyph}
  • hyperweave.app/v1/strip/readme-ai/automata.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,pypi:readmeai.version&subtitle=eli64s/readme-ai&variant=bone&pair=steel&glyph=github
Profile
card
stats
  • /v1/card/{username}/{genome}.static?variant={tone} (/v1/stats/… alias)
  • hyperweave.app/v1/card/eli64s/automata.static?variant=bone
Star Chart
star history
star chart
  • /v1/chart/stars/{owner}/{repo}/{genome}.static?variant={tone}
  • hyperweave.app/v1/chart/stars/eli64s/readme-ai/automata.static?variant=bone
Marquee
horizontal ticker
marquee
  • /v1/marquee/{title}/automata.static?data={tokens}&variant={tone}
  • hyperweave.app/v1/marquee/readme-ai/automata.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,gh:eli64s/readme-ai.contributors,gh:eli64s/readme-ai.watchers,pypi:readmeai.downloads,gh:eli64s/readme-ai.last_push,gh:eli64s/readme-ai.pull_requests,gh:eli64s/readme-ai.issues,gh:eli64s/readme-ai.build,pypi:readmeai.version,gh:eli64s/readme-ai.language&variant=bone
Icons
square
docker cobalt discord indigo github bone huggingface sulfur anthropic solar youtube crimson spotify jade
  • /v1/icon/{glyph}/automata.static?shape=square&variant={tone}
  • hyperweave.app/v1/icon/docker/automata.static?shape=square&variant=cobalt
Divider
dissolve
automata dissolve divider
  • /v1/divider/dissolve/{genome}.static?variant={tone}&pair={tone}
  • hyperweave.app/v1/divider/dissolve/automata.static?variant=bone&pair=steel

chrome

View the chrome catalog

PYPI - horizon variant PYPI - lightning variant PYPI - abyssal variant PYPI - moth variant PYPI - graphite variant

5 variants: horizon · lightning · abyssal · moth · graphite

Signals
state machine
passing warning critical
  • /v1/badge/{title}/{value}/{genome}.static?state={state}&variant={horizon|lightning|abyssal|moth|graphite}
  • hyperweave.app/v1/badge/BUILD/passing/chrome.static?state=passing&variant=horizon
Dashboard
strip
strip
  • /v1/strip/{title}/{genome}.static?data={tokens}&subtitle={text}&glyph={glyph}&variant={variant}
  • hyperweave.app/v1/strip/readme-ai/chrome.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,pypi:readmeai.version&subtitle=eli64s/readme-ai&glyph=github&variant=horizon
Profile
card
stats
  • /v1/card/{username}/{genome}.static?variant={variant} (/v1/stats/… alias)
  • hyperweave.app/v1/card/eli64s/chrome.static?variant=horizon
Star Chart
star history
star chart
  • /v1/chart/stars/{owner}/{repo}/{genome}.static?variant={variant}
  • hyperweave.app/v1/chart/stars/eli64s/readme-ai/chrome.static?variant=horizon
Marquee
horizontal ticker
marquee
  • /v1/marquee/{title}/{genome}.static?data={tokens}&variant={variant}
  • hyperweave.app/v1/marquee/readme-ai/chrome.static?data=gh:eli64s/readme-ai.stars,gh:eli64s/readme-ai.forks,gh:eli64s/readme-ai.contributors,gh:eli64s/readme-ai.watchers,pypi:readmeai.downloads,gh:eli64s/readme-ai.last_push,gh:eli64s/readme-ai.pull_requests,gh:eli64s/readme-ai.issues,gh:eli64s/readme-ai.build,pypi:readmeai.version,gh:eli64s/readme-ai.language&variant=horizon
Icons
circle + square
github - horizon notion - graphite rust - moth docker - lightning spotify - abyssal
  • /v1/icon/{glyph}/{genome}.static?shape={circle|square}&variant={variant}
  • hyperweave.app/v1/icon/youtube/chrome.static?shape=circle&variant=horizon
Divider
band
chrome band divider
  • /v1/divider/band/{genome}.static?variant={variant}
  • hyperweave.app/v1/divider/band/chrome.static?variant=horizon

| | 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` |

/a/inneraura/dividers/

View the divider catalog
block
De Stijl composition
block divider
  • /a/inneraura/dividers/{slug}
  • hyperweave.app/a/inneraura/dividers/block
current
animated rainbow bezier
current divider
  • /a/inneraura/dividers/{slug}
  • hyperweave.app/a/inneraura/dividers/current
takeoff
rocket trajectory + thrust
takeoff divider
  • /a/inneraura/dividers/{slug}
  • hyperweave.app/a/inneraura/dividers/takeoff
void
spectral bloom + hover state
void divider
  • /a/inneraura/dividers/{slug}
  • hyperweave.app/a/inneraura/dividers/void
zeropoint
aurora rule + nexus beacon
zeropoint divider
  • /a/inneraura/dividers/{slug}
  • hyperweave.app/a/inneraura/dividers/zeropoint

Error fallback: SMPTE NO SIGNAL

Every broken `` URL renders the SMPTE RP 219 test pattern with `ERR_NNN` matching the HTTP status, instead of a browser broken-image icon.

404 error fallback (intentionally broken URL)

**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 ``, 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 `` chooses between them. The CLI exposes `--surface`/`--ground`/`--palette`, and `--faces` writes both files in one call (`-light.svg` / `-dark.svg`). --- ## Install ```bash 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.

MCP CLI
HTTP API Python SDK

### Model Context Protocol (MCP) MCP ```json { "mcpServers": { "hyperweave": { "command": "hyperweave", "args": ["mcp"] } } } ``` ``` # 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="", respond="payload") hw_transform(svg_or_id="", 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 ``` ### Command Line Interface (CLI) CLI ```bash # 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. ```bash # 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 HTTP API ```bash # 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":"","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 light/dark theme | | `svg-static` | the same picture with variables flattened and animation stripped, for renderers that don't run CSS | | `png` · `webp` | rasterized bitmaps (needs `pip install 'hyperweave[raster]'`) | | `ansi` | a terminal character-grid render | The HTTP API serves any of these by file suffix (`GET /v1/a/{id}.png`, width-bounded with `?w=`), and a graphics-capable terminal (kitty, ghostty, wezterm) shows `--format png` inline. Fonts embed in the SVG by default (`--font-mode embed`) so the file stands alone anywhere; `cdn` and `system` trade that portability for smaller bytes. --- ## 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: - **Re-ingestible payload:** the full spec (`hw:payload`) plus a hash-verified `hwz/1` envelope, so an agent can recover, verify, and edit it - the basis of [the verb algebra](#read-at-a-budget-the-verb-algebra). - **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 machines:** `data-hw-status`, `data-hw-state`, `data-hw-regime` drive visual transitions through the Custom Property Bridge. No JavaScript. - **Pure CSS/SMIL animation:** no script tags, ever. Each artifact declares its measured tier — `composite-only` (transform/opacity) or `paint-ok` (the default dash march rides `stroke-dashoffset`). Works anywhere SVGs render: GitHub's Camo proxy, email clients, Notion embeds. - **Accessibility:** WCAG AA, `prefers-reduced-motion`, `prefers-color-scheme`, `forced-colors`, ARIA markup. Structural, not decorative. | Dimension | Count | |---|---| | Frame types | 10 (badge, strip, icon, divider, marquee, card, chart, matrix, diagram, receipt) | | Genomes | 4 (automata, brutalist, chrome, primer) | | Motion configs | 6 (1 static + 5 border SMIL) | | Glyphs | 192 (183 brand marks + 9 geometric shapes) | | Divider variants | 10: 5 genome-themed (`band` chrome, `seam` + `sigil` brutalist, `dissolve` automata, `aura` primer) + 5 genome-agnostic (`block`, `current`, `takeoff`, `void`, `zeropoint`) at /a/inneraura/dividers/ | | Metadata tiers | 5 (Tier 0 silent → Tier 4 reasoning) | | Bundled fonts | 5 (JetBrains Mono, Orbitron, Chakra Petch, Barlow Condensed, Inter), embedded per artifact, no external font requests | Stack: Pydantic, FastAPI, FastMCP v3, Jinja2, Typer. --- ## Data Connectors HyperWeave binds **live data** into any artifact through a unified token grammar (`?data=...`). Tokens are comma-separated; each token is either a literal (`text:`, `kv:`) or a live fetch (`:.`).

Data connectors matrix: 9 live providers - GitHub, PyPI, npm, crates.io, Hugging Face, Docker Hub, arXiv, OpenSSF Scorecard, GitHub Actions - plus text and kv literal tokens

Copy a token · view as table | Prefix | Source | Identifier shape | Metrics | |--------|--------|------------------|---------| | `gh` / `github` | [GitHub](https://github.com) | `owner/repo` | `stars`, `forks`, `watchers`, `contributors`, `issues`, `pull_requests`, `last_push`, `build`, `license`, `language` | | `pypi` | [PyPI](https://pypi.org) + [pepy.tech](https://pepy.tech) | `package` | `version`, `license`, `python_requires`, `downloads` | | `npm` | [npm](https://www.npmjs.com) | `package` | `version`, `license`, `downloads` | | `crates` / `cargo` | [crates.io](https://crates.io) | `crate` | `version`, `downloads`, `recent_downloads`, `license` | | `hf` / `huggingface` | [Hugging Face](https://huggingface.co) | `org/model` | `downloads`, `likes`, `tags`, `pipeline_tag`, `library_name`, `license`, `gated`, `last_modified` | | `docker` | [Docker Hub](https://hub.docker.com) | `namespace/repo` | `pull_count`, `star_count`, `last_updated` | | `arxiv` | [arXiv](https://arxiv.org) | `id` (e.g. `2310.06825`) | `title`, `authors`, `published`, `updated`, `categories`, `summary`, `journal_ref`, `doi` | | `scorecard` | [OpenSSF Scorecard](https://github.com/ossf/scorecard) | `owner/repo` | `score` (overall trust), plus per-check: `code_review`, `maintained`, `vulnerabilities`, `token_permissions`, ... | | `dora` | [GitHub Actions](https://github.com/features/actions) | `owner/repo` | `deploy_frequency`, `lead_time`, `change_failure_rate`, `mttr` (30-day window) | | `text` | literal | - | renders the payload as displayed text | | `kv` | literal | `KEY=VALUE` | static role-tagged value |
- **Caching:** live values for 5–10 min; a failed fetch caches 60s and shows `-` rather than a fabricated zero. - **Isolation:** each provider has its own circuit breaker, so one upstream outage can't trip the others. - **Escaping:** commas inside `text:` / `kv:` values escape as `\,`. Open an issue Open an issue to request a connector. --- ## Contributing HyperWeave is early and would love your perspective. Discord Join the Discord to connect with the community and discuss the project. HyperWeave has a bit of everything, and we welcome contributions of any kind, from **code** to **docs** to **design**!

InnerAura Labs

---

InnerAura Labs

Discord   Instagram   LinkedIn   TikTok   X   YouTube

[![][return-top]](#top)
[inneraura.ai]: https://inneraura.ai/ [discord]: https://discord.gg/wVmcAZPQZ8 [docs]: https://hyperweave.app [github]: https://github.com/InnerAura/hyperweave [instagram]: https://www.instagram.com/hyperweave.ai/ [linkedin]: https://www.linkedin.com/company/inneraura [tiktok]: https://www.tiktok.com/@hyperweave.ai [x]: https://x.com/InnerAuraLabs [youtube]: https://www.youtube.com/@InnerAuraLabs [return-top]: https://raw.githubusercontent.com/InnerAura/hyperweave/main/assets/buttons/button-liquid.svg