Agent skill

Matomo Analytics Reporting

by AgriciDaniel in AgriciDaniel/claude-seo

Pulls organic traffic, top pages, device, country, referrer, and keyword reports from a self-hosted or cloud Matomo instance.

MITAuto-check passedMarketing & SEO

Install Matomo Analytics Reporting

skills CLI
$ npx skills add AgriciDaniel/claude-seo --skill seo-matomo -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install AgriciDaniel/claude-seo seo-matomo --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/AgriciDaniel/claude-seo.git skills-src && mkdir -p .claude/skills && cp -r skills-src/extensions/matomo/skills/seo-matomo .claude/skills/seo-matomo && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
seo-matomo
GitHub stars
19k
Token cost
~1.5k tokens
SKILL.md length
627 words
Files
1
Skills in repo
33
Repo updated
First seen
Licence
MIT

At a glance

Pulls organic traffic, top pages, device, country, referrer, and keyword reports from a self-hosted or cloud Matomo instance.

  • Reporting on organic traffic for a privacy-first, Google-free setup
  • SKILL.md covers Prerequisites, Routing, When this skill applies and Cross-skill delegation, plus 3 more sections
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md
  • Migrating GA4-style reports to a self-hosted Matomo instance

What it does

The same skill works against Matomo Cloud or a self-hosted instance, routing each command, organic, top-pages, device, country, referrers, or keywords, to a reporting script that accepts a day range, a result limit, and a site id, falling back to a configured default site. It is the privacy-first substitute for GA4 reporting rather than a replacement for Google Search Console work, which a separate skill still covers.

When your agent uses it

  • Reporting on organic traffic for a privacy-first, Google-free setup
  • Migrating GA4-style reports to a self-hosted Matomo instance
  • Checking device or country traffic splits from Matomo

Example prompts

  • “Pull the organic traffic report from Matomo for the last 28 days.”
  • “Show device and country splits for our main site in Matomo.”
  • “What are the top referrers in Matomo this month?”

Requirements

  • A Matomo instance URL and API token (MATOMO_URL / MATOMO_API_TOKEN)
  • Compatibility (from SKILL.md): Requires a Matomo instance URL and API token in ~/.config/claude-seo/matomo.json (0600), or MATOMO_URL / MATOMO_API_TOKEN / MATOMO_SITE_ID in the environment. Run extensions/matomo/install.sh to configure.

What it can do on your machine

Read from SKILL.md and the folder at commit 4b99de2. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md (its code samples are bash).

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

  • Compatibility

    Requires a Matomo instance URL and API token in ~/.config/claude-seo/matomo.json (0600), or MATOMO_URL / MATOMO_API_TOKEN / MATOMO_SITE_ID in the environment. Run extensions/matomo/install.sh to configure.

    From compatibility in the SKILL.md frontmatter.

Context cost

Matomo Analytics Reporting loads about 1.5k tokens when it runs. Until then it costs about 81 tokens; SKILL.md has 627 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~81
When it runs · the whole SKILL.md, loaded when a task matches
~1.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from AgriciDaniel/claude-seo at commit 4b99de2, republished under its MIT licence (© AgriciDaniel). 627 words, ~1,457 tokens.

Download SKILL.mdSave it as .claude/skills/seo-matomo/SKILL.md (or your agent's skills folder).
name
seo-matomo
description
Matomo Reporting API extension. Self-hosted or Matomo Cloud analytics as a GA4 alternative or complement. Organic traffic, landing pages, device / country breakdowns, referrers, search keywords. Triggers on "Matomo", "self-hosted analytics", "analytics ohne Google", "GA4 alternative", "Matomo Reporting", "Piwik".
compatibility
Requires a Matomo instance URL and API token in ~/.config/claude-seo/matomo.json (0600), or MATOMO_URL / MATOMO_API_TOKEN / MATOMO_SITE_ID in the environment. Run extensions/matomo/install.sh to configure.
metadata.version
2.4.2

seo-matomo

Self-hosted analytics surface. Use Matomo as a privacy-first GA4 alternative when you own your analytics data, want zero Google dependency, or operate behind a strict data-residency boundary. The same seo-matomo skill works against Matomo Cloud and self-hosted instances.

Prerequisites

  • Run extensions/matomo/install.sh or install.ps1.
  • A Matomo instance URL (https://analytics.example.com).
  • A Matomo API token_auth with view access on the sites you analyze.
  • (Optional) A default idSite to avoid passing --site-id on every call.

Routing

CommandUnderlying script
/seo matomo check"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run matomo_auth.py --check
/seo matomo organic [site-id]"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run matomo_report.py organic --site-id <id>
/seo matomo top-pages"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run matomo_report.py top-pages
/seo matomo device"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run matomo_report.py device
/seo matomo country"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run matomo_report.py country
/seo matomo referrers"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run matomo_report.py referrers
/seo matomo keywords"${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run matomo_report.py keywords

All commands accept --days (default 28), --limit, --site-id, and --json. The site ID falls back to MATOMO_SITE_ID from settings.

When this skill applies

  • The user wants Google-free analytics or has a Matomo instance already configured. Common in EU privacy-first setups, regulated industries, and teams who own their analytics.
  • The user explicitly says "Matomo", "self-hosted analytics", or asks to replace GA4. For Google Search performance use seo-google; this skill is the reporting substitute.
  • The user is migrating from GA4 and wants the same report types (organic trend, landing pages, device / country split, referrer split) sourced from Matomo's Reporting API.

Cross-skill delegation

  • For Google Search Console / CrUX / Indexing, route to seo-google. seo-matomo covers reporting (visits / pages / referrers), not search performance metrics.
  • For AI Overview / GEO citability work, route to seo-geo. Matomo offers no LLM-specific signals.
  • During /seo audit, the orchestrator spawns the seo-matomo agent (analogous to seo-google) whenever "${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run matomo_auth.py --check succeeds. Both agents can be active simultaneously when the user has both GA4 and Matomo configured.

Self-hosted instance on a private address

Every Matomo request goes through claude-seo's SSRF guard: the instance URL is validated and DNS-pinned, and a redirect off the instance is refused. Private, loopback, and link-local addresses are refused by default. When the user's instance lives on one (http://matomo.internal:8080, http://192.168.1.20, http://localhost:8080), tell them to name it in the CLAUDE_SEO_LOCAL_TARGETS allowlist:

bash
export CLAUDE_SEO_LOCAL_TARGETS="matomo.internal:8080"

Entries are host or host:port, comma-separated, matched exactly. The allowlist covers only the top-level instance URL; redirect targets and every other host stay fail-closed, and cloud metadata addresses are refused even when listed. Never suggest disabling the guard or editing url_safety.py: the allowlist is the supported route. Details in extensions/matomo/docs/MATOMO-SETUP.md and SECURITY.md.

Show full SKILL.md (224 more words)Show less

Error Handling

  • Refused by the SSRF guard (error names CLAUDE_SEO_LOCAL_TARGETS): the instance is on a private address that has not been allowlisted. Give the user the exact export line from the error, which already carries the right host:port.
  • Refused redirect: the instance answered a 30x pointing at another host. MATOMO_URL is pointing at a redirector rather than at the Reporting API. Ask the user for the URL their instance actually serves the API from.
  • Missing credentials: report which env vars / config keys are unset and remind the user to run extensions/matomo/install.sh or "${CLAUDE_PLUGIN_ROOT}/scripts/claude-seo" run matomo_auth.py --setup.
  • HTTP 401/403 from Matomo: the token lacks view access for the given site. Verify the token scope in Matomo Administration -> Personal -> Security -> API Tokens. The skill never logs the token.
  • result=error payloads from Matomo (e.g. invalid idSite): surface the message verbatim; do not guess.
  • Connection / SSL / timeout: report the network failure class (ConnectionError, SSLError, timeout) and confirm MATOMO_URL resolves.

Output Formatting

  • Tables for time-series, device, and country data.
  • Critical / High / Medium / Low priority for any cross-skill actions surfaced from Matomo data.
  • Always label the data source as "Matomo Reporting API (live)" to distinguish from GA4, CrUX, or static crawl analysis.
  • For organic keywords, surface the anonymized_share_pct prominently. Many keywords will be "(not provided)" due to browser privacy and Matomo's anonymization rules; this is normal, not a data bug.

© AgriciDaniel, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in extensions/matomo/skills/seo-matomo of AgriciDaniel/claude-seo.

Open the folder on GitHubat commit 4b99de2

Compare with similar skills

Matomo Analytics Reporting next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Matomo Analytics Reporting compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Matomo Analytics Reporting this skillAgriciDaniel/claude-seo19k—~1.5kAutomated safety check: PassMIT
AnalyticsNexus-JPF/note-companion8707 repos~2.2kAutomated safety check: PassMIT
GEO Monthly Delta Reportzubair-trabzada/geo-seo-claude11k—~2.4kAutomated safety check: NotesMIT
Conversion Signal QAaaron-he-zhu/aaron-marketing-skills2.9k2 repos~2.4kAutomated safety check: PassApache-2.0
LLM Mention Trackingunifapi-agent/agents589—~1.8kAutomated safety check: PassMIT
Google Analytics 4 AnalysisLichAmnesia/lich-skills234—~2kAutomated safety check: NotesMIT

Similar skills

  • Analytics

    Nexus-JPF/note-companion

    When the user wants to set up, improve, or audit analytics tracking and measurement.

    870 GitHub starsUsed in 7 repos~2.2k tokens
    Marketing & SEOAuto-check passed
  • GEO Monthly Delta Report

    zubair-trabzada/geo-seo-claude

    Compares a baseline and a current GEO audit for a client, calculates score changes and action item progress, and writes a monthly progress report.

    11k GitHub stars~2.4k tokensUpdated today
    Marketing & SEOAuto-check: notes
  • Conversion Signal QA

    aaron-he-zhu/aaron-marketing-skills

    A skill your agent uses when the user asks to "QA my conversion tracking before launch", "check my UTMs / pixel / event firing", "set up a tracking pre-flight", or "set the dedup rule so Meta and…

    2.9k GitHub starsUsed in 2 repos~2.4k tokens
    Marketing & SEOAuto-check passed
  • LLM Mention Tracking

    unifapi-agent/agents

    When the user wants to track how often their brand or domain gets mentioned across ChatGPT and AI search engines over a set of prompts, and how that share of voice compares to named competitors over…

    589 GitHub stars~1.8k tokensUpdated 1 mo ago
    Marketing & SEOAuto-check passed
  • Google Analytics 4 Analysis

    LichAmnesia/lich-skills

    Pulls Google Analytics 4 data through the Data API with TypeScript scripts and turns it into a daily SEO report or prioritized traffic and bounce-rate recommendations.

    234 GitHub stars~2k tokensUpdated 4 mo ago
    Marketing & SEOAuto-check: notes
  • Skillshare Windows Utm

    runkids/skillshare

    Verify skillshare on a real Windows guest running in local UTM: build a pinned commit in the devcontainer, push it into the VM, and either run the Windows E2E runbook with full and basic-user tokens…

    2.8k GitHub stars~1.6k tokensUpdated yesterday
    Marketing & SEOAuto-check passed

More from AgriciDaniel/claude-seo

All 33 skills in this repo
  • Hreflang and International SEO

    AgriciDaniel/claude-seo

    Audits, validates and generates hreflang tags for multi-language and multi-region sites in HTML, HTTP headers or XML sitemaps, flagging common code and return-tag mistakes.

    19k GitHub starsUsed in 5 repos~3.4k tokens
    Auto-check passed
  • Google SEO APIs

    AgriciDaniel/claude-seo

    Pulls real Google data for SEO work: Search Console, PageSpeed Insights, CrUX field data, the Indexing API and GA4 organic traffic, through /seo google commands.

    19k GitHub starsUsed in 1 repo~4.2k tokens
    Auto-check passed
  • SEO Keyword Clustering

    AgriciDaniel/claude-seo

    Clusters keywords by how much their search results overlap and designs a hub-and-spoke content plan with an internal link matrix and an interactive cluster map.

    19k GitHub starsUsed in 2 repos~3.3k tokens
    Auto-check passed
  • SEO Content Brief Generator

    AgriciDaniel/claude-seo

    Builds research-backed SEO content briefs with competitor scoring, per-section word counts and page-type templates, for new pages or improving existing ones.

    19k GitHub starsUsed in 2 repos~2.6k tokens
    Auto-check passed
  • FLOW SEO Framework

    AgriciDaniel/claude-seo

    Brings the FLOW framework's stage-specific SEO prompts into the agent, from keyword discovery through backlinks, on-page work and conversion to local SEO, loaded on demand.

    19k GitHub starsUsed in 2 repos~1.4k tokens
    Auto-check passed
  • SEO Image Generator

    AgriciDaniel/claude-seo

    Generates Open Graph previews, blog hero images, product photos and infographics for SEO use through Gemini image tools and the banana extension.

    19k GitHub starsUsed in 2 repos~2.1k tokens
    Auto-check passed

Categories

Questions about Matomo Analytics Reporting

What does Matomo Analytics Reporting do?

Pulls organic traffic, top pages, device, country, referrer, and keyword reports from a self-hosted or cloud Matomo instance. The same skill works against Matomo Cloud or a self-hosted instance, routing each command, organic, top-pages, device, country, referrers, or keywords, to a reporting script that accepts a day range, a result limit, and a site id, falling back to a configured default site. It is the privacy-first substitute for GA4 reporting rather than a replacement for Google Search Console work, which a separate skill still covers.

When should I use Matomo Analytics Reporting?

Matomo Analytics Reporting fits situations like: reporting on organic traffic for a privacy-first, Google-free setup; migrating GA4-style reports to a self-hosted Matomo instance; checking device or country traffic splits from Matomo.

How do I install Matomo Analytics Reporting in Claude Code?

Run `npx skills add AgriciDaniel/claude-seo --skill seo-matomo -a claude-code`. Or copy the skill folder (extensions/matomo/skills/seo-matomo in AgriciDaniel/claude-seo) into .claude/skills/seo-matomo in your project. Claude Code loads it when a task matches its description.

How do I install Matomo Analytics Reporting in Codex?

Run `npx skills add AgriciDaniel/claude-seo --skill seo-matomo -a codex`. Or copy the skill folder (extensions/matomo/skills/seo-matomo in AgriciDaniel/claude-seo) into .agents/skills/seo-matomo in your project. Codex loads it when a task matches its description.

Can I use Matomo Analytics Reporting in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add AgriciDaniel/claude-seo --skill seo-matomo -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/seo-matomo, .gemini/skills/seo-matomo, .github/skills/seo-matomo and .opencode/skills/seo-matomo in your project.

What does Matomo Analytics Reporting need to run?

SKILL.md names no scripts, command-line tools or credentials: Matomo Analytics Reporting is instructions for the agent only. Our summary lists: A Matomo instance URL and API token (MATOMO_URL / MATOMO_API_TOKEN). Compatibility (from SKILL.md): Requires a Matomo instance URL and API token in ~/.config/claude-seo/matomo.json (0600), or MATOMO_URL / MATOMO_API_TOKEN / MATOMO_SITE_ID in the environment. Run extensions/matomo/install.sh to configure..

Does Matomo Analytics Reporting access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is Matomo Analytics Reporting safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does Matomo Analytics Reporting use?

Matomo Analytics Reporting is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Matomo Analytics Reporting use?

About 1.5k tokens (SKILL.md is roughly 5.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Matomo Analytics Reporting?

Skills that share tags, products or a category with Matomo Analytics Reporting: Analytics (Nexus-JPF/note-companion, 870 stars), GEO Monthly Delta Report (zubair-trabzada/geo-seo-claude, 11k stars), Conversion Signal QA (aaron-he-zhu/aaron-marketing-skills, 2.9k stars) and LLM Mention Tracking (unifapi-agent/agents, 589 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Matomo Analytics Reporting?

AgriciDaniel (a GitHub user) maintains it in AgriciDaniel/claude-seo, which has 18,627 GitHub stars. The repository holds 33 skills in this directory. The repository was last updated on October 4, 2026.

Source: AgriciDaniel/claude-seo on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.