Automated package-squatting & slopsquatting detection signals across PyPI and npm — these are automated, unconfirmed signals. Use them to find candidates to investigate, but don't automatically assume they're malicious.

Sorted by risk score. Cleared packages hidden by default — add verdict:benign_community to include. Packages the registry has since removed are hidden too — see them on the Taken Down tab or add state:taken_down. Very risky packages require manual human audit. • Tag & Signal Legend →

Search & filter syntax reference
Filter with verdict: (malicious, suspicious, unverified_high_signal, squatted_stub…), ecosystem: (pypi/npm), hook: (install, network, pth, gyp, worm, c2, creds, binary, env, stealer, any — malicious hooks & behaviors), email:, domain:, keyword:, version: (comma = OR within a field, space = AND across fields), age:<6h / age:>90d (combine both for a range), state:live / state:taken_down (registry liveness — the feed defaults to state:live), lead:>7d (days we had a since-removed package flagged while it was still up), or a bare word for a package-name search.
Package Score ▲ Age Users Lines Growth Verdict Targeted Ecosystem Version Author Email domain Signals
25 17d — — —
Possible Squatted Stub
— npm latest Colby Gilbert — 🌐
Package purpose: airtable tools for FrogBot.
Static code signals:
  • MISSING_SOURCE_REPOSITORY_URL
  • SOURCE_CODE_NETWORK_CALL: 'fetch/axios/XMLHttpRequest' found in package/dist/client.js:13 (+1 more occurrence(s) elsewhere)

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 17d — — —
Possible Squatted Stub
— npm latest — — 🪝
Package purpose: node
Static code signals:
  • LIFECYCLE_SCRIPT: 'preinstall' -> 'node installArchSpecificPackage'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 17d — — —
Possible Squatted Stub
— npm latest — — 🌐
Package purpose: Fireworks AI provider extension for pi - Access Kimi, MiniMax, GLM, DeepSeek, and GPT-OSS models through the Fireworks AI API
Static code signals:
  • MISSING_SOURCE_REPOSITORY_URL
  • SOURCE_CODE_NETWORK_CALL: 'fetch/axios/XMLHttpRequest' found in package/index.ts:197

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 17d — — —
Possible Squatted Stub
— npm latest — — 🌐
Package purpose: This package contains the Cosmos integration for the Dynamic SDK.
Static code signals:
  • MISSING_SOURCE_REPOSITORY_URL
  • SOURCE_CODE_NETWORK_CALL: 'fetch/axios/XMLHttpRequest' found in package/dist/addCosmosInjectedExtension-v6hIDsBP.cjs:13 (+1 more occurrence(s) elsewhere)

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 18d — — —
Possible Squatted Stub
— npm latest vtempest — 🪝
Package purpose: Generate production-ready MCP servers from any OpenAPI specification using the highly-used and convenient [mcp-use](https://mcp-use.com) framework
Static code signals:
  • LIFECYCLE_SCRIPT: 'postinstall' -> 'fumadocs-mdx && drizzle-kit push'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 19d — — —
Possible Squatted Stub
— npm latest — — 🌐
Static code signals:
  • MISSING_SOURCE_REPOSITORY_URL
  • SOURCE_CODE_NETWORK_CALL: 'fetch/axios/XMLHttpRequest' found in package/dist/cjs/api/operations/add-to-cart.js:1 (+13 more occurrence(s) elsewhere)

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 19d — — —
Possible Squatted Stub
— npm latest nokhodian — 🪝
Package purpose: Open-source CLI extension for Claude Code, OpenCode, Antigravity, Kimi Code, and Codex. Adds an MCP server with a codebase knowledge graph, persistent memory, multi-agent coordination, and reusable slash commands. Apache 2.0 licensed. See https://github.c
Static code signals:
  • LIFECYCLE_SCRIPT: 'postinstall' -> 'node -e "if(process.platform!=='win32'){try{require('child_process').execSync('find node_modules -name ._* -delete 2>/dev/null',{stdio:'ignore'})}catch{}}"'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 21d — — —
Possible Squatted Stub
— npm latest Microsoft Corporation — 🪝
Package purpose: A high-level API to automate Firefox
Static code signals:
  • LIFECYCLE_SCRIPT: 'install' -> 'node install.js'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 21d — — —
Possible Squatted Stub
— npm latest — — 🪝
Package purpose: Deprecated compatibility shim for Engram installs. Re-exports @remnic/plugin-openclaw and forwards engram-access to @remnic/core.
Static code signals:
  • LIFECYCLE_SCRIPT: 'postinstall' -> 'node ./scripts/postinstall-banner.mjs'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 21d — — —
Possible Squatted Stub
— npm latest — — 🌐
Package purpose: Mailgun production email transport for OwlMeans — implements `MailerService` via the Mailgun HTTP API.
Static code signals:
  • MISSING_SOURCE_REPOSITORY_URL
  • SOURCE_CODE_NETWORK_CALL: 'fetch/axios/XMLHttpRequest' found in package/build/service.js:23 (+1 more occurrence(s) elsewhere)

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 22d — — —
Possible Squatted Stub
— npm latest — — 🪝
Package purpose: KaneAI CLI — v16-runner binary for macOS x64
Static code signals:
  • LIFECYCLE_SCRIPT: 'postinstall' -> 'node -e "const fs=require('fs'),p=require('path');const f=p.join(__dirname,'bin','v16-runner');if(fs.existsSync(f))fs.chmodSync(f,0o755)"'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 23d — — —
Possible Squatted Stub
— npm latest — — 🪝
Package purpose: Sci-fi terminal widgets that show only real data.
Static code signals:
  • LIFECYCLE_SCRIPT: 'postinstall' -> 'node postinstall.js'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 23d — — —
Possible Squatted Stub
— npm latest Rob Sweet — 🪝
Package purpose: MCP server for Apple Mail - read, search, send, and manage emails via Claude and other AI assistants
Static code signals:
  • LIFECYCLE_SCRIPT: 'preinstall' -> 'node -e "const fs=require('fs');const ua=process.env.npm_config_user_agent||'';if(fs.existsSync('.git')&&!ua.startsWith('pnpm')){console.error('\nThis repo uses pnpm. npm/yarn resolve dependencies off-lockfile and the committed bundle will mismatch CI.\n\n corepack enable && pnpm install --frozen-lockfile\n');process.exit(1)}"'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 23d — — —
Very Risky
— pypi 1.3.0 Steffen Probst — 🪝
Package purpose: Installer protocol + helpers for self-installing Python CLI/GUI tools (desktop shortcuts, bash aliases, cron entries), plus reusable tkinter and curses installer screens
Static code signals:
  • SOURCE_CODE_DYNAMIC_EXECUTION: 'Python Subprocess / OS Execution' found in cli_tools_kit-1.3.0/cli_tools_kit/autostart.py:93
  • SOURCE_CODE_DYNAMIC_EXECUTION: 'Python Subprocess / OS Execution' found in cli_tools_kit-1.3.0/cli_tools_kit/autostart_gate.py:169
  • SOURCE_CODE_DYNAMIC_EXECUTION: 'Python Subprocess / OS Execution' found in cli_tools_kit-1.3.0/cli_tools_kit/cli.py:37
  • SOURCE_CODE_ENV_VARS_ACCESS: 'Environment Variable Access (process.env / os.environ)' found in cli_tools_kit-1.3.0/cli_tools_kit/cli.py:608
  • SOURCE_CODE_DYNAMIC_EXECUTION: 'Python Subprocess / OS Execution' found in cli_tools_kit-1.3.0/cli_tools_kit/cron_installer.py:49
  • SYSTEM_PERSISTENCE_TAMPERING: 'System Persistence Implant (systemd/cron/registry)' found in cli_tools_kit-1.3.0/cli_tools_kit/cron_installer.py:42
  • SOURCE_CODE_PERSISTENT_BACKDOOR: persistence mechanism combined with execution/network in cli_tools_kit-1.3.0/cli_tools_kit/cron_installer.py
  • SOURCE_CODE_DYNAMIC_EXECUTION: 'Python Subprocess / OS Execution' found in cli_tools_kit-1.3.0/cli_tools_kit/discovery.py:79

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on PyPI →
25 24d — — —
Possible Squatted Stub
— npm latest Simon Boissonneault-Robert — 🪝
Package purpose: High level functionality that builds upon the other packages in the Tezos Typescript Library Suite.
Static code signals:
  • LIFECYCLE_SCRIPT: 'postinstall' -> 'node patch.js'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 24d — — —
Very Risky
— pypi 0.4.1 — — 🪝
Package purpose: Language-agnostic software supply-chain security scanner. Detects malicious packages, suspicious install-time behaviour, secrets and dependency risk across any ecosystem.
Static code signals:
  • SOURCE_CODE_ENV_VARS_ACCESS: 'Environment Variable Access (process.env / os.environ)' found in cordon_scanner-0.4.1/corpus/benign/config/settings-safe.py:9
  • SOURCE_CODE_ENV_VARS_ACCESS: 'Sensitive Token Harvesting' found in cordon_scanner-0.4.1/corpus/benign/config/settings-safe.py:9
  • SOURCE_CODE_ENV_VARS_ACCESS: 'Environment Variable Access (process.env / os.environ)' found in cordon_scanner-0.4.1/corpus/benign/container-aware/runtime.py:18
  • SOURCE_CODE_DYNAMIC_EXECUTION: 'Python Subprocess / OS Execution' found in cordon_scanner-0.4.1/corpus/benign/ops/deploy.py:13
  • SOURCE_CODE_DYNAMIC_EXECUTION: 'Python Subprocess / OS Execution' found in cordon_scanner-0.4.1/corpus/benign/ops/healthcheck.py:9
  • SOURCE_CODE_DYNAMIC_EXECUTION: 'Python Subprocess / OS Execution' found in cordon_scanner-0.4.1/corpus/benign/ops/sync.py:9
  • SOURCE_CODE_DYNAMIC_EXECUTION: 'Python Subprocess / OS Execution' found in cordon_scanner-0.4.1/corpus/benign/python/build_helper.py:8
  • SOURCE_CODE_ENV_VARS_ACCESS: 'Environment Variable Access (process.env / os.environ)' found in cordon_scanner-0.4.1/corpus/benign/python/settings.py:13

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on PyPI →
25 25d — — —
Possible Squatted Stub
— npm latest Shane Friedman — 🪝
Package purpose: A library and CLI for automatically aligning audiobooks and EPUBs to produce Media Overlays
Static code signals:
  • LIFECYCLE_SCRIPT: 'install' -> 'node-gyp-build'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 26d — — —
Possible Squatted Stub
— npm latest Dynamic Labs, Inc. — 🌐
Package purpose: A React SDK for implementing wallet web3 authentication and authorization to your website.
Static code signals:
  • MISSING_SOURCE_REPOSITORY_URL
  • SOURCE_CODE_NETWORK_CALL: 'fetch/axios/XMLHttpRequest' found in package/src/utils/fetchZeroDevChain.cjs:19 (+1 more occurrence(s) elsewhere)

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 27d — — —
Possible Squatted Stub
— npm latest Colby Gilbert — 🌐
Package purpose: stripe tools for FrogBot.
Static code signals:
  • MISSING_SOURCE_REPOSITORY_URL
  • SOURCE_CODE_NETWORK_CALL: 'fetch/axios/XMLHttpRequest' found in package/dist/client.js:32

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 27d — — —
Possible Squatted Stub
— npm latest Colby Gilbert — 🌐
Package purpose: pagerduty tools for FrogBot.
Static code signals:
  • MISSING_SOURCE_REPOSITORY_URL
  • SOURCE_CODE_NETWORK_CALL: 'fetch/axios/XMLHttpRequest' found in package/dist/client.js:17

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 27d — — —
Possible Squatted Stub
— npm latest M. Reifschneider — 🪝
Package purpose: Tree-sitter grammar for Microsoft SQL Server T-SQL
Static code signals:
  • LIFECYCLE_SCRIPT: 'install' -> 'node-gyp-build'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 27d — — —
Possible Squatted Stub
— npm latest — — 🪝
Package purpose: macOS Intel native payload for Fabr Client
Static code signals:
  • LIFECYCLE_SCRIPT: 'postinstall' -> 'node postinstall.js'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 28d — — —
Possible Squatted Stub
— npm latest — — 🪝
Static code signals:
  • LIFECYCLE_SCRIPT: 'preinstall' -> 'npx only-allow pnpm'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 28d — — —
Possible Squatted Stub
— npm latest — — 🪝
Package purpose: Stencil Component Starter
Static code signals:
  • LIFECYCLE_SCRIPT: 'preinstall' -> 'npx only-allow pnpm'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 28d — — —
Possible Squatted Stub
— npm latest Tierney Cyren — 🪝
Package purpose: A personal card for Richard Hess (@eswat42)
Static code signals:
  • LIFECYCLE_SCRIPT: 'preinstall' -> 'npx only-allow pnpm'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 29d — — —
Possible Squatted Stub
— npm latest — — 🌐
Package purpose: Binance market connector plugin for dsh-trading: public market data over REST+WS implementing the @dshtrading/api contracts
Static code signals:
  • MISSING_SOURCE_REPOSITORY_URL
  • SOURCE_CODE_NETWORK_CALL: 'fetch/axios/XMLHttpRequest' found in package/lib/rest.js:154

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 29d — — —
Possible Squatted Stub
— npm latest — — 🪝
Package purpose: Thin alias for @junction41/dispatcher. `npm install -g j41-dispatcher` installs the current CLI (not frozen 2.0.0).
Static code signals:
  • LIFECYCLE_SCRIPT: 'postinstall' -> 'node bin/postinstall.js'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 29d — — —
Possible Squatted Stub
— npm latest — — 🪝
Package purpose: Prebuilt `duhem` binary for linux-x64.
Static code signals:
  • LIFECYCLE_SCRIPT: 'postinstall' -> 'node postinstall.js'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 30d — — —
Possible Squatted Stub
— npm latest — — 🌐
Package purpose: NextClaw Discord channel extension process.
Static code signals:
  • MISSING_SOURCE_REPOSITORY_URL
  • SOURCE_CODE_NETWORK_CALL: 'fetch/axios/XMLHttpRequest' found in package/dist/services/discord-channel.service.js:72

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 31d — — —
Possible Squatted Stub
— npm latest — — 🪝
Package purpose: Centralized service to override motors on humanoids and other places
Static code signals:
  • LIFECYCLE_SCRIPT: 'preinstall' -> 'npx only-allow pnpm'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 31d — — —
Possible Squatted Stub
— npm latest — — 🪝
Package purpose: Contains model information for the current button
Static code signals:
  • LIFECYCLE_SCRIPT: 'preinstall' -> 'npx only-allow pnpm'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 31d — — —
Possible Squatted Stub
— npm latest — — 🪝
Package purpose: Service that takes active input modes from the player and exposes it to every other player via the server.
Static code signals:
  • LIFECYCLE_SCRIPT: 'preinstall' -> 'npx only-allow pnpm'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 31d — — —
Possible Squatted Stub
— npm latest — — 🪝
Package purpose: Clip characters locally on the client of other clients so they don't interfer with physics.
Static code signals:
  • LIFECYCLE_SCRIPT: 'preinstall' -> 'npx only-allow pnpm'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 31d — — —
Possible Squatted Stub
— npm latest — — 🪝
Package purpose: Permission provider for Roblox, including authenticating against group membership
Static code signals:
  • LIFECYCLE_SCRIPT: 'preinstall' -> 'npx only-allow pnpm'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 31d — — —
Possible Squatted Stub
— npm latest — — 🪝
Package purpose: Quenty's TimeSyncService keeps time synchronized between all clients and the server
Static code signals:
  • LIFECYCLE_SCRIPT: 'preinstall' -> 'npx only-allow pnpm'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 31d — — —
Possible Squatted Stub
— npm latest — — 🪝
Package purpose: Utility service that provides text filtering to the client
Static code signals:
  • LIFECYCLE_SCRIPT: 'preinstall' -> 'npx only-allow pnpm'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 31d — — —
Possible Squatted Stub
— npm latest — — 🪝
Package purpose: Utility functions for grabbing the Roblox API from the web
Static code signals:
  • LIFECYCLE_SCRIPT: 'preinstall' -> 'npx only-allow pnpm'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 31d — — —
Possible Squatted Stub
— npm latest — — 🪝
Package purpose: Provides utilities for working with Roblox's streaming system
Static code signals:
  • LIFECYCLE_SCRIPT: 'preinstall' -> 'npx only-allow pnpm'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 31d — — —
Possible Squatted Stub
— npm latest — — 🪝
Package purpose: Handles actions involving HumanoidDescription objects, including loading character appearance.
Static code signals:
  • LIFECYCLE_SCRIPT: 'preinstall' -> 'npx only-allow pnpm'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 31d — — —
Possible Squatted Stub
— npm latest — — 🪝
Package purpose: Binder that will automatically bind to each player's humanoid
Static code signals:
  • LIFECYCLE_SCRIPT: 'preinstall' -> 'npx only-allow pnpm'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 31d — — —
Possible Squatted Stub
— npm latest — — 🪝
Package purpose: Bind to game close API in a centralized location.
Static code signals:
  • LIFECYCLE_SCRIPT: 'preinstall' -> 'npx only-allow pnpm'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 31d — — —
Possible Squatted Stub
— npm latest — — 🪝
Package purpose: Allows transparency to manually be controlled for a character in first-person mode
Static code signals:
  • LIFECYCLE_SCRIPT: 'preinstall' -> 'npx only-allow pnpm'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 31d — — —
Possible Squatted Stub
— npm latest — — 🪝
Package purpose: Utlity functions to help find friends of a user. Also contains utility to make testing in studio easier.
Static code signals:
  • LIFECYCLE_SCRIPT: 'preinstall' -> 'npx only-allow pnpm'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 31d — — —
Possible Squatted Stub
— npm latest — — 🪝
Package purpose: Utility methods for tools
Static code signals:
  • LIFECYCLE_SCRIPT: 'preinstall' -> 'npx only-allow pnpm'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 31d — — —
Possible Squatted Stub
— npm latest — — 🪝
Package purpose: Holds utilities to work with Roblox seats
Static code signals:
  • LIFECYCLE_SCRIPT: 'preinstall' -> 'npx only-allow pnpm'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 31d — — —
Possible Squatted Stub
— npm latest — — 🪝
Package purpose: Player utility functions
Static code signals:
  • LIFECYCLE_SCRIPT: 'preinstall' -> 'npx only-allow pnpm'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 31d — — —
Possible Squatted Stub
— npm latest — — 🪝
Package purpose: Determines if parts are touching or not
Static code signals:
  • LIFECYCLE_SCRIPT: 'preinstall' -> 'npx only-allow pnpm'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 31d — — —
Possible Squatted Stub
— npm latest — — 🪝
Package purpose: Tracks the equipped player of a tool
Static code signals:
  • LIFECYCLE_SCRIPT: 'preinstall' -> 'npx only-allow pnpm'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 31d — — —
Possible Squatted Stub
— npm latest — — 🪝
Package purpose: Utilities involving UserService in Roblox
Static code signals:
  • LIFECYCLE_SCRIPT: 'preinstall' -> 'npx only-allow pnpm'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →
25 31d — — —
Possible Squatted Stub
— npm latest — — 🪝
Package purpose: UI object utils library for Roblox
Static code signals:
  • LIFECYCLE_SCRIPT: 'preinstall' -> 'npx only-allow pnpm'

Signals reflect what our detector observed, not a confirmed determination of wrongdoing.

View package on npm →

LINK COPIED TO CLIPBOARD