{
  "schemaVersion": "1.0",
  "item": {
    "slug": "matomo",
    "name": "Matomo Analytics",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/ivangdavila/matomo",
    "canonicalUrl": "https://clawhub.ai/ivangdavila/matomo",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/matomo",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=matomo",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "api.md",
      "memory-template.md",
      "reports.md",
      "setup.md"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "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."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "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."
        },
        {
          "label": "Upgrade existing",
          "body": "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."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/matomo"
    },
    "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."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/matomo",
    "agentPageUrl": "https://openagent3.xyz/skills/matomo/agent",
    "manifestUrl": "https://openagent3.xyz/skills/matomo/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/matomo/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "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."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "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."
      },
      {
        "label": "Upgrade existing",
        "body": "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."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Setup",
        "body": "On first use, read setup.md for integration guidelines. The skill stores configuration in ~/matomo/."
      },
      {
        "title": "When to Use",
        "body": "User needs to query Matomo analytics, generate reports, track goals, or manage their self-hosted analytics. Agent handles API queries, data analysis, visitor insights, and conversion tracking."
      },
      {
        "title": "Architecture",
        "body": "Memory lives in ~/matomo/. See memory-template.md for structure.\n\n~/matomo/\n├── memory.md         # Sites, credentials ref, preferences\n├── reports/          # Saved report templates\n└── queries/          # Reusable API query templates"
      },
      {
        "title": "Quick Reference",
        "body": "TopicFileSetup processsetup.mdMemory templatememory-template.mdAPI referenceapi.mdReport templatesreports.md"
      },
      {
        "title": "1. Never Expose Credentials",
        "body": "Token is stored in system keychain or env var, never in memory files\nRefer to credentials by reference name only\nIf user pastes token in chat, warn and suggest secure storage"
      },
      {
        "title": "2. Use Reporting API for Reads",
        "body": "# Base pattern\ncurl -s \"https://{matomo_url}/index.php?module=API&method={method}&idSite={site_id}&period={period}&date={date}&format=json&token_auth={token}\"\n\nCommon methods:\n\nVisitsSummary.get — visitors, visits, pageviews\nActions.getPageUrls — top pages\nReferrers.getWebsites — traffic sources\nGoals.get — conversion data"
      },
      {
        "title": "3. Understand Date Ranges",
        "body": "PeriodDate FormatExampledayYYYY-MM-DD2025-01-15weekYYYY-MM-DDWeek containing that datemonthYYYY-MM2025-01yearYYYY2025rangeYYYY-MM-DD,YYYY-MM-DD2025-01-01,2025-01-31\n\nSpecial dates: today, yesterday, last7, last30, lastMonth, lastYear"
      },
      {
        "title": "4. Handle Multi-Site Setups",
        "body": "Always confirm which site before querying\nStore site list in memory.md with idSite mappings\nDefault to most-used site if configured"
      },
      {
        "title": "5. Format Data for Humans",
        "body": "Round percentages to 1 decimal\nUse K/M suffixes for large numbers\nCompare periods when context helps (vs last week/month)\nHighlight significant changes (>10% delta)"
      },
      {
        "title": "6. Respect Rate Limits",
        "body": "Batch related queries into single date range when possible\nCache recent results in memory for follow-up questions\nAvoid querying same data repeatedly in conversation"
      },
      {
        "title": "7. Use Segments for Deeper Insights",
        "body": "Segments filter data by visitor attributes. Add &segment= to any query:\n\n# Mobile visitors only\n&segment=deviceType==smartphone\n\n# From specific country\n&segment=countryCode==US\n\n# Returning visitors who converted\n&segment=visitorType==returning;goalConversionsSome>0\n\n# Combine with AND (;) or OR (,)\n&segment=browserCode==CH;operatingSystemCode==WIN\n\nCommon segment dimensions:\n\ndeviceType — smartphone, tablet, desktop\nbrowserCode — CH (Chrome), FF (Firefox), SF (Safari)\ncountryCode — ISO 2-letter code\nvisitorType — new, returning\nreferrerType — direct, search, website, campaign"
      },
      {
        "title": "Matomo Traps",
        "body": "Wrong idSite → querying wrong property, misleading data. Always confirm site first.\nForgetting token_auth → 403 or empty response. Token required for all non-public methods.\ndate vs period mismatch → confusing results. period=range requires date=start,end format.\nExpecting GA terminology → Matomo uses \"visits\" not \"sessions\", \"actions\" not \"events\". Translate mentally.\nIgnoring segments → missing the real insight. Segments filter data by visitor attributes."
      },
      {
        "title": "External Endpoints",
        "body": "EndpointData SentPurpose{user_matomo_url}/index.phpAPI method, site ID, date range, auth tokenQuery analytics data\n\nNo other data is sent externally. All requests go to user's own Matomo instance."
      },
      {
        "title": "Security & Privacy",
        "body": "Data that leaves your machine:\n\nAPI queries sent to user's Matomo instance only\nAuth token included in requests (user-controlled)\n\nData that stays local:\n\nSite configurations in ~/matomo/\nReport templates\nNo data sent to third parties\n\nThis skill does NOT:\n\nStore auth tokens in plain text\nSend data to any service except user's Matomo\nAccess files outside ~/matomo/"
      },
      {
        "title": "Related Skills",
        "body": "Install with clawhub install <slug> if user confirms:\n\nanalytics — general analytics patterns\numami — privacy-focused analytics\napi — REST API integration"
      },
      {
        "title": "Feedback",
        "body": "If useful: clawhub star matomo\nStay updated: clawhub sync"
      }
    ],
    "body": "Setup\n\nOn first use, read setup.md for integration guidelines. The skill stores configuration in ~/matomo/.\n\nWhen to Use\n\nUser needs to query Matomo analytics, generate reports, track goals, or manage their self-hosted analytics. Agent handles API queries, data analysis, visitor insights, and conversion tracking.\n\nArchitecture\n\nMemory lives in ~/matomo/. See memory-template.md for structure.\n\n~/matomo/\n├── memory.md         # Sites, credentials ref, preferences\n├── reports/          # Saved report templates\n└── queries/          # Reusable API query templates\n\nQuick Reference\nTopic\tFile\nSetup process\tsetup.md\nMemory template\tmemory-template.md\nAPI reference\tapi.md\nReport templates\treports.md\nCore Rules\n1. Never Expose Credentials\nToken is stored in system keychain or env var, never in memory files\nRefer to credentials by reference name only\nIf user pastes token in chat, warn and suggest secure storage\n2. Use Reporting API for Reads\n# Base pattern\ncurl -s \"https://{matomo_url}/index.php?module=API&method={method}&idSite={site_id}&period={period}&date={date}&format=json&token_auth={token}\"\n\n\nCommon methods:\n\nVisitsSummary.get — visitors, visits, pageviews\nActions.getPageUrls — top pages\nReferrers.getWebsites — traffic sources\nGoals.get — conversion data\n3. Understand Date Ranges\nPeriod\tDate Format\tExample\nday\tYYYY-MM-DD\t2025-01-15\nweek\tYYYY-MM-DD\tWeek containing that date\nmonth\tYYYY-MM\t2025-01\nyear\tYYYY\t2025\nrange\tYYYY-MM-DD,YYYY-MM-DD\t2025-01-01,2025-01-31\n\nSpecial dates: today, yesterday, last7, last30, lastMonth, lastYear\n\n4. Handle Multi-Site Setups\nAlways confirm which site before querying\nStore site list in memory.md with idSite mappings\nDefault to most-used site if configured\n5. Format Data for Humans\nRound percentages to 1 decimal\nUse K/M suffixes for large numbers\nCompare periods when context helps (vs last week/month)\nHighlight significant changes (>10% delta)\n6. Respect Rate Limits\nBatch related queries into single date range when possible\nCache recent results in memory for follow-up questions\nAvoid querying same data repeatedly in conversation\n7. Use Segments for Deeper Insights\n\nSegments filter data by visitor attributes. Add &segment= to any query:\n\n# Mobile visitors only\n&segment=deviceType==smartphone\n\n# From specific country\n&segment=countryCode==US\n\n# Returning visitors who converted\n&segment=visitorType==returning;goalConversionsSome>0\n\n# Combine with AND (;) or OR (,)\n&segment=browserCode==CH;operatingSystemCode==WIN\n\n\nCommon segment dimensions:\n\ndeviceType — smartphone, tablet, desktop\nbrowserCode — CH (Chrome), FF (Firefox), SF (Safari)\ncountryCode — ISO 2-letter code\nvisitorType — new, returning\nreferrerType — direct, search, website, campaign\nMatomo Traps\nWrong idSite → querying wrong property, misleading data. Always confirm site first.\nForgetting token_auth → 403 or empty response. Token required for all non-public methods.\ndate vs period mismatch → confusing results. period=range requires date=start,end format.\nExpecting GA terminology → Matomo uses \"visits\" not \"sessions\", \"actions\" not \"events\". Translate mentally.\nIgnoring segments → missing the real insight. Segments filter data by visitor attributes.\nExternal Endpoints\nEndpoint\tData Sent\tPurpose\n{user_matomo_url}/index.php\tAPI method, site ID, date range, auth token\tQuery analytics data\n\nNo other data is sent externally. All requests go to user's own Matomo instance.\n\nSecurity & Privacy\n\nData that leaves your machine:\n\nAPI queries sent to user's Matomo instance only\nAuth token included in requests (user-controlled)\n\nData that stays local:\n\nSite configurations in ~/matomo/\nReport templates\nNo data sent to third parties\n\nThis skill does NOT:\n\nStore auth tokens in plain text\nSend data to any service except user's Matomo\nAccess files outside ~/matomo/\nRelated Skills\n\nInstall with clawhub install <slug> if user confirms:\n\nanalytics — general analytics patterns\numami — privacy-focused analytics\napi — REST API integration\nFeedback\nIf useful: clawhub star matomo\nStay updated: clawhub sync"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/ivangdavila/matomo",
    "publisherUrl": "https://clawhub.ai/ivangdavila/matomo",
    "owner": "ivangdavila",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/matomo",
    "downloadUrl": "https://openagent3.xyz/downloads/matomo",
    "agentUrl": "https://openagent3.xyz/skills/matomo/agent",
    "manifestUrl": "https://openagent3.xyz/skills/matomo/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/matomo/agent.md"
  }
}