# Send Umami to your agent
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
## Fast path
- Download the package from Yavira.
- Extract it into a folder your agent can access.
- Paste one of the prompts below and point your agent at the extracted folder.
## Suggested prompts
### New install

```text
I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete.
```
### Upgrade existing

```text
I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run.
```
## Machine-readable fields
```json
{
  "schemaVersion": "1.0",
  "item": {
    "slug": "umami",
    "name": "Umami",
    "source": "tencent",
    "type": "skill",
    "category": "数据分析",
    "sourceUrl": "https://clawhub.ai/ivangdavila/umami",
    "canonicalUrl": "https://clawhub.ai/ivangdavila/umami",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadUrl": "/downloads/umami",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=umami",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "packageFormat": "ZIP package",
    "primaryDoc": "SKILL.md",
    "includedAssets": [
      "SKILL.md"
    ],
    "downloadMode": "redirect",
    "sourceHealth": {
      "source": "tencent",
      "slug": "umami",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T09:19:10.631Z",
      "expiresAt": "2026-05-07T09:19:10.631Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=umami",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=umami",
        "contentDisposition": "attachment; filename=\"umami-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null,
        "slug": "umami"
      },
      "scope": "item",
      "summary": "Item download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this item.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/umami"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    }
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/umami",
    "downloadUrl": "https://openagent3.xyz/downloads/umami",
    "agentUrl": "https://openagent3.xyz/skills/umami/agent",
    "manifestUrl": "https://openagent3.xyz/skills/umami/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/umami/agent.md"
  }
}
```
## Documentation

### Critical Configuration

HASH_SALT must never change — changing it invalidates all existing data, essentially a reset
SQLite is not supported — despite being Node.js, Umami requires PostgreSQL or MySQL
Database contains everything — all tracking data, config, users; backup only this

### Tracking Script Traps

data-website-id must match Umami config exactly — wrong ID = zero data, no error shown
Script blocked by ad blockers — self-host on same domain as site to avoid blocking
Single Page Apps don't auto-track navigation — must call umami.track() on route changes
Script in <head> not <body> — late loading misses initial pageview

### SPA Integration

React: call umami.track('pageview') in router effect or navigation handler
Next.js: use @umami/next package — handles app router and pages router
Vue/Nuxt: router afterEach hook with umami.track()
Check window.umami exists before calling — script may load after component mounts

### Custom Events

Event names appear verbatim in dashboard — use consistent naming scheme
Properties only searchable via API — not visible in default dashboard
umami.track('event', { key: 'value' }) for properties

### Self-Hosting Considerations

Low resources needed — 256MB RAM handles most sites
PostgreSQL needs more resources than Umami itself — plan accordingly
Reverse proxy required for HTTPS — Umami runs HTTP on port 3000
Backup strategy = database backup — no filesystem state to worry about

### Multi-Site Setup

One Umami instance handles many sites — add in Dashboard > Settings > Websites
Each site needs unique tracking script — get from Websites settings
Share button available per site — generates public dashboard URL

### Troubleshooting

Zero pageviews — check browser Network tab, verify script loads without error
Script 404 — verify CORS headers if cross-domain, or self-host on same domain
Events not appearing — check browser console for umami errors
Dashboard slow — check database performance, PostgreSQL query times

### Common Mistakes

Using same website ID for dev and prod — pollutes analytics with test data
Not testing script after deploy — CDN caching or minification can break it
Expecting real-time updates — dashboard has slight delay, not instant
## Trust
- Source: tencent
- Verification: Indexed source record
- Publisher: ivangdavila
- Version: 1.0.0
## Source health
- Status: healthy
- Item download looks usable.
- Yavira can redirect you to the upstream package for this item.
- Health scope: item
- Reason: direct_download_ok
- Checked at: 2026-04-30T09:19:10.631Z
- Expires at: 2026-05-07T09:19:10.631Z
- Recommended action: Download for OpenClaw
## Links
- [Detail page](https://openagent3.xyz/skills/umami)
- [Send to Agent page](https://openagent3.xyz/skills/umami/agent)
- [JSON manifest](https://openagent3.xyz/skills/umami/agent.json)
- [Markdown brief](https://openagent3.xyz/skills/umami/agent.md)
- [Download page](https://openagent3.xyz/downloads/umami)