other
- Location
install.sh:20- Finding
Undisclosed Installation Telemetry Sent to an External Service
- Content
View full analysis
- Remediation
View remediation
Security audit
Security checks for vulnerabilities and agentic risk
The skill is not proven malicious, but its installer makes under-disclosed persistent shell changes, sends install telemetry, and lacks the declared executable.
Review this skill before installing. Only run install.sh if you accept a persistent ~/.zshrc PATH change and an install analytics ping; also verify that a legitimate loomlens executable is supplied or installed from a trusted source before using the command.
install.sh:20Undisclosed Installation Telemetry Sent to an External Service
install.sh:17Persistent Prepending of a User-Writable Directory to PATH
package.json:5Declared LoomLens Executable Is Missing from the Package
The declared purpose is prompt cost estimation, but the detected behavior includes installation/setup actions, modifying .zshrc, and sending network telemetry. This mismatch is dangerous because users may approve the skill expecting a harmless estimator while it changes local shell configuration and transmits data, which can persistently alter the environment and expose sensitive metadata without informed consent.
The skill advertises shell-capable installation requirements but does not declare any explicit tool scope such as permissions or allowed-tools. That creates an unnecessary trust gap: consumers cannot tell what execution capabilities are intended, and hidden shell use increases the chance of unsafe command execution during install or runtime.
Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.
LOCAL_BIN="${HOME}/.local/bin"
echo "Installing ${SKILL_NAME}..."
mkdir -p "$OPENCLAW_SKILLS" "$LOCAL_BIN"
# Symlink into OpenClaw skills dir
ln -sf "$SCRIPT_DIR" "$OPENCLAW_SKILLS/${SKILL_NAME}"
The script silently appends to the user's ~/.zshrc to modify PATH without warning or confirmation. Persistent shell configuration changes are sensitive because they alter future command resolution and user environment beyond the immediate installation, which is not clearly justified by the skill's stated purpose.
The install script modifies a shell startup file without explicit warning or confirmation, creating persistent side effects outside the skill's immediate install location. This is dangerous because users may not realize their shell behavior has been changed, and such changes can affect future sessions and command execution.
The installer makes an unsolicited outbound POST request during installation that is unrelated to the core function of estimating prompt costs. Even though the payload is limited to skill, version, and source, hidden telemetry in an install script violates least surprise and creates privacy and trust concerns, especially because it occurs automatically and in the background.
The script sends a network analytics request during installation without clearly warning the user or asking consent. Silent outbound traffic in an installer is a trust and privacy risk, particularly when the skill's advertised purpose does not require contacting a remote analytics endpoint during setup.
The hardcoded remote domain indicates the installer contacts an external service as part of setup. In the context of a local utility skill, this expands the trust boundary unnecessarily and introduces an avoidable dependency on a network endpoint during install.
grep -q '~/.local/bin' "${HOME}/.zshrc" 2>/dev/null || echo 'export PATH="$HOME/.local/bin:$PATH"' >> "${HOME}/.zshrc"
# Fire install ping (no auth needed — tracks community installs)
curl -s -m 5 -X POST "https://api.signalloomai.com/v1/analytics/install" \
-H "Content-Type: application/json" \
-d "{\"skill\":\"${SKILL_SLUG}\",\"version\":\"${VERSION}\",\"source\":\"clawhub\"}" &
The hardcoded remote domain indicates the installer contacts an external service as part of setup. In the context of a local utility skill, this expands the trust boundary unnecessarily and introduces an avoidable dependency on a network endpoint during install.
grep -q '~/.local/bin' "${HOME}/.zshrc" 2>/dev/null || echo 'export PATH="$HOME/.local/bin:$PATH"' >> "${HOME}/.zshrc"
# Fire install ping (no auth needed — tracks community installs)
curl -s -m 5 -X POST "https://api.signalloomai.com/v1/analytics/install" \
-H "Content-Type: application/json" \
-d "{\"skill\":\"${SKILL_SLUG}\",\"version\":\"${VERSION}\",\"source\":\"clawhub\"}" &
The comment minimizes the analytics behavior by saying it 'only tracks installs,' while the code transmits structured metadata including skill name, version, and source to a remote service. The mismatch between the reassuring comment and the actual network behavior reduces transparency and can mislead reviewers or users about what the installer does.