← Back to Skills Marketplace
chernojagne

Guiro

by chernojagne · GitHub ↗ · v1.0.1 · MIT-0
cross-platform ✓ Security Clean
156
Downloads
0
Stars
0
Active Installs
2
Versions
Install in OpenClaw
/install guiro
Description
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...
README (SKILL.md)

Guiro – Shareable Visual Snapshots

Guiro (\x3Chttps://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

Type Best for
Dashboard KPI metrics, data tables, timelines, progress bars, badges, icons
Calendar Read-only month views with highlighted dates and event detail
Chart Bar charts with multi-series comparisons
Donut Progress 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

Action Method Path
Capabilities GET /v1/create/capabilities
Validate POST /v1/validate
Create POST /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

Component Props Description
Card child (string id) Container card; use as the root wrapper
Column children (string id[]), gap (sm|md|lg) Vertical stack
Row children (string id[]), gap (sm|md|lg) Horizontal stack
List children (string id[]) Ordered list

Content

Component Props Description
Text text, variant (h1|h2|body), tone (muted) Heading or paragraph
Badge label, variant (secondary|outline|success), size (sm) Status badge or tag
Icon name or icon, size, strokeWidth, color, label Lucide icon accent for headers, callouts, and status cues
ProgressIndicator value (number), max (number) Progress bar
DataTable columns ({key, header}[]), data (object[]) Tabular data
Calendar title, 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
Chart title, 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.

Usage Guidance
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.
Capability Tags
requires-sensitive-credentials
Capability Assessment
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.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install guiro
  3. After installation, invoke the skill by name or use /guiro
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.1
Published Guiro v1.0.1 via CI
v1.0.0
Published Guiro v1.0.0 via CI
Metadata
Slug guiro
Version 1.0.1
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 2
Frequently Asked Questions

What is Guiro?

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... It is an AI Agent Skill for Claude Code / OpenClaw, with 156 downloads so far.

How do I install Guiro?

Run "/install guiro" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is Guiro free?

Yes, Guiro is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does Guiro support?

Guiro is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Guiro?

It is built and maintained by chernojagne (@chernojagne); the current version is v1.0.1.

💬 Comments