Guiro

v1.0.1

Turn structured data into shareable visual dashboards, reports, charts, and calendars. Publishes an A2UI JSON bundle to guiro.io and returns a short-lived sh...

0· 142·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for chernojagne/guiro.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Guiro" (chernojagne/guiro) from ClawHub.
Skill page: https://clawhub.ai/chernojagne/guiro
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Required env vars: GUIRO_API_KEY
Required binaries: curl
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Canonical install target

openclaw skills install chernojagne/guiro

ClawHub CLI

Package manager switcher

npx clawhub@latest install guiro
Security Scan
Capability signals
Requires sensitive credentials
These labels describe what authority the skill may exercise. They are separate from suspicious or malicious moderation verdicts.
VirusTotalVirusTotal
Pending
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
The skill claims to publish A2UI bundles to guiro.io and requires curl, a shell, and GUIRO_API_KEY — all of which are appropriate and expected for making authenticated HTTP requests to the guiro API. No unrelated services or credentials are requested.
Instruction Scope
SKILL.md instructs the agent to fetch capabilities, build/validate a JSON payload, and POST it to the API using the provided scripts. The scripts only read the payload file and an optional capabilities cache (.guiro/runtime-capabilities.json) and do not attempt to read other system files, credentials, or network endpoints beyond api.guiro.io.
Install Mechanism
There is no install spec (instruction-only with included scripts). No external downloads, packages, or extract operations are performed by the skill package itself. This minimizes disk writes to the shipped scripts and any files the scripts explicitly create (e.g., .guiro/runtime-capabilities.json).
Credentials
Only a single API credential (GUIRO_API_KEY) is required and is used consistently in the scripts. A few optional environment variables (GUIRO_PREFLIGHT_CAPABILITIES, GUIRO_CAPABILITIES_FILE) are present to control behavior; nothing else sensitive or unrelated is requested.
Persistence & Privilege
The skill is not always-enabled, does not modify other skills, and only writes a capabilities cache under .guiro. It does not request elevated privileges or persistent system-wide changes.
Assessment
This skill appears coherent and focused on publishing A2UI bundles to guiro.io. Before installing: (1) Treat GUIRO_API_KEY as a secret and only provide a key scoped minimally for create/validate operations; (2) avoid sending sensitive PII or secrets in payloads because created snapshots are publicly viewable via short links; (3) note the scripts save a capabilities file under .guiro/runtime-capabilities.json and will POST payload.json to api.guiro.io; (4) if you need tighter control, review the API provider's retention and access policies and consider using a dedicated API key you can rotate if needed.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

🔗 Clawdis
Binscurl
Any binbash, sh
EnvGUIRO_API_KEY
Primary envGUIRO_API_KEY
latestvk976chn1sezs9xece5g5m11t4h854gt5
142downloads
0stars
2versions
Updated 1w ago
v1.0.1
MIT-0

Guiro – Shareable Visual Snapshots

Guiro (https://guiro.io) is an ephemeral Presentation Layer as a Service. You give it a structured JSON bundle describing a layout of visual components, and it returns a short-lived, publicly accessible share link (e.g. https://guiro.io/s/{slug}). The rendered page is a polished, read-only visual — a dashboard, report, chart, calendar, or status page. No login or account is needed to view it.

Use this skill whenever you produce structured results — metrics, tables, timelines, financial data, event schedules, progress tracking — and want to turn them into a shareable visual artifact the user can open in a browser, send to a colleague, or print to PDF.

What you can build

TypeBest for
DashboardKPI metrics, data tables, timelines, progress bars, badges, icons
CalendarRead-only month views with highlighted dates and event detail
ChartBar charts with multi-series comparisons
DonutProgress rings, savings goals, category breakdowns

API workflow

  1. Fetch capabilities — discover supported protocol versions and component catalogs.
  2. Build payload — assemble an A2UI JSON bundle targeting the live contract values.
  3. Validate — confirm the payload is well-formed before creating.
  4. Create — publish the bundle and receive the share link.

Endpoints

Base URL: https://api.guiro.io

ActionMethodPath
CapabilitiesGET/v1/create/capabilities
ValidatePOST/v1/validate
CreatePOST/v1/create

Authentication

All requests require an API key via the X-API-Key header. The key is read from the GUIRO_API_KEY environment variable. If the key is missing, ask the user to provide one.

Commands

# 1 – Fetch capabilities (saves to .guiro/runtime-capabilities.json)
bash "{baseDir}/scripts/fetch-capabilities.sh"

# 2 – Write a sample payload (dashboard | calendar | chart | donut)
bash "{baseDir}/scripts/write-sample-payload.sh" ./payload.json dashboard

# 3 – Validate and create the guiro
bash "{baseDir}/scripts/create-guiro.sh" --payload ./payload.json --idempotency-key run-001

The sample payloads are starting points. Replace the placeholder content with real data relevant to the user's request.

Payload structure

A valid A2UI bundle has this shape:

{
  "storage_version": "1",
  "a2ui_version": "0.9",
  "catalog_id": "guiro.shadcn.detached.v1",
  "theme": {
    "primary": "#0f766e",
    "secondary": "#0f172a"
  },
  "messages": [
    {
      "version": "v0.9",
      "createSurface": {
        "surfaceId": "share-main",
        "catalogId": "guiro.shadcn.detached.v1"
      }
    },
    {
      "version": "v0.9",
      "updateComponents": {
        "surfaceId": "share-main",
        "components": [ ... ]
      }
    }
  ]
}
  • storage_version, a2ui_version, catalog_id — use values from the capabilities response.
  • messages must contain one createSurface message and one updateComponents message.
  • Target exactly one surface.

Component reference

The components array is a flat list of component objects. Each has an id (unique string) and a component type. Parent components reference children by id. The tree must include a component with id: "root".

Layout

ComponentPropsDescription
Cardchild (string id)Container card; use as the root wrapper
Columnchildren (string id[]), gap (sm|md|lg)Vertical stack
Rowchildren (string id[]), gap (sm|md|lg)Horizontal stack
Listchildren (string id[])Ordered list

Content

ComponentPropsDescription
Texttext, variant (h1|h2|body), tone (muted)Heading or paragraph
Badgelabel, variant (secondary|outline|success), size (sm)Status badge or tag
Iconname or icon, size, strokeWidth, color, labelLucide icon accent for headers, callouts, and status cues
ProgressIndicatorvalue (number), max (number)Progress bar
DataTablecolumns ({key, header}[]), data (object[])Tabular data
Calendartitle, description, month (YYYY-MM-DD), selected (YYYY-MM-DD), selectionMode (single), events ({date, label, detail, tone}[])Read-only calendar with highlighted days and details below
Charttitle, description, chartType (bar|donut), xKey, series ({key, label}[]), data (object[]), valueFormat (currency), currency (ISO code)Bar or donut chart

Component tree example

[
  { "id": "root", "component": "Card", "child": "page" },
  { "id": "page", "component": "Column", "gap": "lg", "children": ["heading", "metrics"] },
  { "id": "heading", "component": "Text", "text": "Monthly Report", "variant": "h1" },
  { "id": "metrics", "component": "Row", "gap": "md", "children": ["badge1", "progress1"] },
  { "id": "badge1", "component": "Badge", "label": "Active: 42", "variant": "outline" },
  { "id": "progress1", "component": "ProgressIndicator", "value": 75, "max": 100 }
]

Theme

Colors accept hex (#0f766e) or oklch (oklch(0.527 0.154 150.069)) values:

{ "primary": "#0f766e", "secondary": "#0f172a" }

Choose theme colors that suit the content. Use contrasting primary and secondary values.

Rules

  • Always fetch capabilities first and use the returned values for storage_version, a2ui_version, and catalog_id.
  • Always validate before create.
  • The bundle must target exactly one surface.
  • The updateComponents array must include a component with id: "root".
  • Treat validation errors as authoritative — fix the payload and re-validate until it passes.
  • Use the sample payloads as structural templates but replace all placeholder content with real data from the user's request.
  • Prefer Icon for section headers, callouts, and status accents when it improves scanability.

Output

Successful create returns:

{
  "slug": "abc123",
  "url": "https://guiro.io/s/abc123",
  "expires_at": "2025-07-15T12:00:00Z"
}

Share the url with the user. Guiros are ephemeral — after expires_at, the link shows a standardized "This Guiro has Expired" page.

Comments

Loading comments...