live · scanning repos
Scanrepo
github.com
github.com / AgriciDaniel

AgriciDaniel/claude-seo

Python·467 files·commit 6be93f4·scanned 3d ago·cached ✓
15/100
LOW RISK
Minor findings consistent with the project type. Nothing reachable from install hooks.

score capped at 15 — 21,169+ stars — findings likely false positives

verdict accurate?
21,169 stars
37% file coverage
threat-state: lowlive

FINDINGS ░▒▓

criticalRemote script piped into a shellA shell script downloads remote content and executes it directly (e.g. `curl … | bash`). The payload is never stored or reviewable and can change server-side — a classic malware/backdoor install pattern.extensions/ahrefs/install.sh
        echo "✗ claude-seo base plugin not installed."
        echo "  Install it first: curl -fsSL https://raw.githubusercontent.com/AgriciDaniel/claude-seo/main/install.sh | bash"
        exit 1
   ...
+10
criticalRemote script piped into a shellA shell script downloads remote content and executes it directly (e.g. `curl … | bash`). The payload is never stored or reviewable and can change server-side — a classic malware/backdoor install pattern.extensions/banana/install.sh
        echo "✗ Claude SEO is not installed."
        echo "  Install it first: curl -fsSL https://raw.githubusercontent.com/AgriciDaniel/claude-seo/main/install.sh | bash"
        exit 1
    fi
+10
criticalRemote script piped into a shellA shell script downloads remote content and executes it directly (e.g. `curl … | bash`). The payload is never stored or reviewable and can change server-side — a classic malware/backdoor install pattern.extensions/dataforseo/install.sh

    # Support both traditional (curl|bash → ~/.claude/skills/seo) and marketplace
    # (plugin install → ~/.claude/plugins/cache/.../skills/seo) installations.
    # Resolve early using BASH_SOURCE ...
+10
warningPython subprocess / os.system usageos.system() or subprocess with shell=True / suspicious commands can execute arbitrary shell commands. Plain pip/package installs are usually benign.tests/test_hosted_plugin_layout.py
def _tracked() -> list[str]:
    out = subprocess.run(
        ["git", "-C", str(ROOT), "ls-files"],
        capture_output=True,
+4
warningPython subprocess / os.system usageos.system() or subprocess with shell=True / suspicious commands can execute arbitrary shell commands. Plain pip/package installs are usually benign.tests/test_python_range.py
    assert bash
    return subprocess.run(
        [bash, str(LAUNCHER), "doctor"],
        env={"PATH": str(bin_dir), **env},
+4
infoSuspicious files are not reachable from entry pointsFlagged files exist but are not imported by any entry point. They may be dead code, tests, or attack payloads triggered by another mechanism.+2
infoSuspicious file in repoExecutable file (install.ps1) in repositoryextensions/ahrefs/install.ps1+2
infoSuspicious file in repoExecutable file (install.ps1) in repositoryextensions/bing-webmaster/install.ps1+2
infoSuspicious file in repoExecutable file (install.ps1) in repositoryextensions/dataforseo/install.ps1+2

Scores are heuristics. A “safe” verdict means no known-malicious patterns were found — clever malware can look boring. Wrong verdict? Flag it above; confirmed false positives become regression tests.

173 files scanned @ 6be93f4 | 10/26/2026 | heuristic scan — always review manually

risk by category
code execution25
network & exfiltration0
file system access0
obfuscation0
supply chain15
owasp / injection0
telemetry
files 173/467rules hit 9engine v7commit 6be93f4

github

AgriciDaniel/claude-seo

Universal SEO skill for Claude Code. 26 sub-skills + 19 sub-agents covering technical SEO, E-E-A-T, schema, GEO/AEO, agent readiness (Lighthouse Agentic Browsing, WebMCP, llms.txt), backlinks, local SEO, e-commerce, international SEO, Google APIs, and PDF/Excel reporting. 9 optional extensions for live SEO data.

Python
21169
2966
264d
467 files
173 scanned(37%)
6be93f4

architecture░▒▓

entry (0) flagged (2) pkg (116)
261 nodes · 752 edgesscroll to zoom · click node to jump to finding