---
name: diagram-bhk-dev
description: >
  Use this skill when the user wants to publish Mermaid diagrams and share a
  stable viewer URL using diagram.bhk.dev. Activate when they ask to render,
  publish, store, or share a Mermaid diagram, or when they mention /api/render
  or /d/{hash}.
---

# diagram.bhk.dev

Use this skill to create shareable Mermaid diagrams via `https://diagram.bhk.dev/api/render`.

## Prerequisite (Tempo testnet)

If payment is required, use Tempo:

```bash
tempo wallet login --network testnet
tempo wallet fund --network testnet
tempo wallet whoami --network testnet
```

## Render a diagram

1) Dry-run first:

```bash
tempo request --network testnet --dry-run \
  --request POST \
  --json '{"code":"graph TD; A-->B;","type":"mermaid"}' \
  https://diagram.bhk.dev/api/render
```

2) Execute request:

```bash
tempo request --network testnet \
  --request POST \
  --json '{"code":"graph TD; A-->B;","type":"mermaid"}' \
  https://diagram.bhk.dev/api/render
```

## Expected response

Return these fields to the user:

- `hash`
- `url` (viewer URL)
- `raw` (raw source URL)
- `cached`

## Rules

- Use `type: "mermaid"`.
- Use `POST /api/render` to create/fetch by content hash.
- Do not guess hash values; use `hash` returned by API.
- Share the `url` with the user as the primary result.

## Common issues

- `402 Payment Required`: rerun with Tempo so payment challenge is handled.
- `No key configured for network "tempo-moderato"`: run `tempo wallet login --network testnet`.
- `ready: false` from wallet checks: complete wallet login/funding first.
- Viewer says diagram not found: verify the exact `hash` returned by render response.

## Useful links

- OpenAPI: `https://diagram.bhk.dev/openapi.json`
- Health: `https://diagram.bhk.dev/api/health`
- Tempo skill: `https://tempo.xyz/SKILL.md`
