HyperweaveBLOCK
Visual CLI for agents. Deterministic SVG diagrams, tables, and charts with embedded structured metadata. Zero JavaScript. Renders anywhere markdown does.
Overview
From the repository's own README, as read at the audited commit. Badges and raw HTML are left out.
The Visual CLI for agents
API ·  CLI ·  MCP ·  SKILL.md
a97d9aafb836OBSERVED · 2026-10-08Connect
Built from this server's own package name, version and transport as found in its source — not copied from anyone's documentation, so it cannot drift against a page we do not control. Replace the environment placeholders with a token scoped to the least it needs.
claude mcp add hyperweave --env GITHUB_TOKEN=${GITHUB_TOKEN} --env HW_GITHUB_TOKENS=${HW_GITHUB_TOKENS} -- uvx hyperweave{
"mcpServers": {
"hyperweave": {
"command": "uvx",
"args": [
"hyperweave"
],
"env": {
"GITHUB_TOKEN": "${GITHUB_TOKEN}",
"HW_GITHUB_TOKENS": "${HW_GITHUB_TOKENS}"
}
}
}
}Exposed tools (9)
8 read · 1 write · 0 destructive.
| Tool | Risk | Description |
|---|---|---|
hw_compose | read | Compose a HyperWeave artifact. |
hw_compress | read | Alias for hw_extract(respond= |
hw_diff | read | Payload-bound structured delta between two artifacts (added/removed/changed). |
hw_discover | read | Discover available HyperWeave components. |
hw_extract | read | Extract the seed at a depth — envelope (compact digest) | payload (lossless) | markdown. |
hw_query | read | Answer a question about an artifact from its compact envelope (cheap, not faithful). |
hw_transform | write | Mutate an artifact via structural JSON patch → a new artifact. |
hw_validate | read | Validate a spec envelope without rendering — returns a {valid, ...} report. |
hw_verify | read | Recompute the hash; prove the artifact verifiably IS its data (id == sha256(payload)). |
Trust audit
BLOCKgrade D · trust 67/100 Do not install this without reading the findings. The audit found something that could harm you or your machine.
| Layer | What it checks | Result |
|---|---|---|
| L0 | Provenance & inventory | FAIL |
| L1 | Static analysis of the code | WARN |
| L2 | Instruction surface (what it tells the agent) | PASS |
| L3 | Class-specific surface | PASS |
| L4 | Behavioural (sandbox) | SKIPPED |
What the source does
- Filesystem
- none-observed
- Network
- declared (3 observation(s))
- Shell
- declared (2 observation(s))
- Dependencies
- pinned
- Secrets in source
- found
Findings (25)
payload.py
payload.py
importlib.import_module(f"hyperweave.compose.diagram.{name}")parser_mod = importlib.import_module(registry.parser_module)
d09GMgABAAAAADooAA4AAAAAi/gAADnNAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoE6G6l8HIl2BmAAhQ4RCAqBwAyBmGYLhCIAATYCJAOIQAQgBYN+B4h2GzV1RUaGjQOABPTj3EhEbof/qx9INhtRwcYBSJhOnv1/SuBkiLRuoTL9hYxgcMWaGbOTvRXyJcrx0fbN
d09GMgABAAAAADZ0AA4AAAAAhuAAADYXAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGoE6G6NWHIl2BmAAhQ4RCAqBvCyBlnALhCIAATYCJAOIQAQgBYNqB4h2GwVxRUaGjQOACP4Hq9nBGHQHZ/ekqGkjEaZUFDj7/5BAD9HwVG0PMoJUI3NMWCc7ErpB6K0ZE/r9YmWS
d09GMgABAAAAACaMAA4AAAAAX/AAACY0AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGngbu1QchHgGYACFJBEICt4gxh8Lg3oAATYCJAOHcAQgBYQsB4Z/GwNRBRvXAM4DyM0l/ZZGI2JwHlB1hvxoJMJWL0p49v8hgRtDpGLan+IAGyBq1K3J9OSKURMqBQwhBn1sJpY4
d09GMgABAAAABV/wABMAAAANdbgABV91AAQAQgAAAAAAAAAAAAAAAAAAAAAAAAAAGsECG4mzChyBvlY/SFZBUtdnP01WQVKBKAZgP1NUQVSBXCc0AIHKLC+BNgqIy2iHsAQwm+8sATYCJAPbZAvbaAAEIAWaTAeCgAVbofjchl/SO317thTwxO+OOiix2RMp3YDazSKK
lanes_max_long_haul: 3 # perimeter-channel edges (|Δlane| >= 2 or route:around)
token = "supercalifragilistic-throughput-per-second"
.pre-commit-config.yaml
importlib.import_module(reg.parser_module)
results[key] = await eval(call_text, {"__builtins__": {}}, ns)print(f" [DATA FETCH FAIL] {token}: {type(exc).__name__}: {exc}")f'<td><img src="../../{_specimen_href(source)}" width="100%"></td>',f'<td><img src="../../{_specimen_href(_CL_SPECIMEN_SRC)}" width="100%"></td>',"[Proofset index](../../README.md) — every gallery, plus the parity summary",
"[Matrices](../../matrices/README.md) — the matrix frame's specimens and boundary suite",
webp = "../../imgs/" + rel.replace(".svg", ".webp")validate_url("http://127.0.0.1/admin")validate_url("http://192.168.1.1/api")<img src="https://hyperweave.app/v1/matrix/custom/primer.static?variant=porcelain&spec=eyJ0aXRsZSI6Ik9uZSBhcnRpZmFjdC4gTWFueSByZWFkZXJzLiIsInN1YnRpdGxlIjoiaG93IGVhY2ggY29uc3VtZXIgaW5nZXN0cyB0aGUgc2FtZ
return TTFont(BytesIO(base64.b64decode(raw_b64)))
woff2 = base64.b64decode(b64_path.read_text(encoding="utf-8").strip())
return base64.b64decode(b64)
Gates applied: no_behavioural_pass.
a97d9aafb836full audit observations/trust-audit/mcp-server/inneraura__hyperweave.json · Report an issue / request a re-scanAudit history
Every audit this server has had. A grade with a past is a grade somebody is still checking.
| Date | Source | Verdict | Grade | Score | Change |
|---|---|---|---|---|---|
| 2026-10-08 | a97d9aafb836 | BLOCK | D | 67 | first audit |
Questions
What is the Hyperweave MCP server?
Visual CLI for agents. Deterministic SVG diagrams, tables, and charts with embedded structured metadata. Zero JavaScript. Renders anywhere markdown does.
What tools does Hyperweave expose?
9 in total: 8 read-only, 1 that write, and 0 that can delete or overwrite. Every one is listed on this page with its risk.
Is Hyperweave safe to connect to an agent?
No — not without reading the findings first. The audit graded it D (67/100) and found 2 critical or high issues in the source. Each one is listed on this page with the file and line it is on.
What credentials does Hyperweave need?
It reads GITHUB_TOKEN and HW_GITHUB_TOKENS from the environment. Give it a token scoped to the least it needs — an agent that can be talked into calling a tool can be talked into calling it with your credentials.
How does Hyperweave run?
It speaks stdio and streamable-http, so it runs as a local process your client starts. It is published on PyPI as hyperweave.
How current is this page?
The grade is for one exact copy of the source (a97d9aafb836), read on 2026-10-08. The repository is watched and re-audited when it changes.