Claude Code, Skill
cli
Firecrawl CLI and agent skills: web search, scraping, crawling and browser interaction from your terminal or any coding agent.
Compatibility: Not stated.
Grade C
One Medium finding. Read the findings before installing.
Not a guarantee. A hygiene check of the source at the commit shown, not a security audit.
Rescanned at commit 2de80d5c7a89.
INSTALL_LIFECYCLE_HOOK
Why this grade
- INSTALL_LIFECYCLE_HOOK Medium
A package install hook (preinstall, install, postinstall or prepare) runs a script.
README.md, line 49
curl -fsSL https://firecrawl.dev/install.sh | bash -s -- --agent openclaw
Any High, or two or more Medium findings, give D. One Medium gives C. Low findings or a security Note give B. Each code names a finding behind the letter.
Grades are a hygiene check of the source at the commit shown, on the date checked, not a security audit or a guarantee. The free directory grades are automated. Before release, a PlugVet engineer reviews every paid report and any grade we hold back, including all F grades, against the source code and the evidence we quote.
What was checked
Plain notes from the hygiene checks.
Permissions
Concern
can delete files.
PERMISSION_DELETE_FILES
src/commands/init.ts, line 754
fs.rmSync(tmpDir, { recursive: true, force: true });
src/commands/init.ts, line 759
fs.rmSync(tmpDir, { recursive: true, force: true });
src/commands/init.ts, line 807
fs.rmSync(tmpTar, { force: true });
Show more
src/commands/init.ts, line 808
fs.rmSync(extractDir, { recursive: true, force: true });
src/commands/skills-native.ts, line 386
fs.unlinkSync(tarball);
src/commands/skills-native.ts, line 454
fs.rmSync(destDir, { recursive: true, force: true });
src/commands/skills-native.ts, line 495
fs.unlinkSync(linkPath);
src/commands/skills-native.ts, line 497
fs.rmSync(linkPath, { recursive: true, force: true });
Install and update
Concern
runs a script at install time. The docs document an installer that pipes a download into a shell.
INSTALL_LIFECYCLE_HOOK INSTALL_DOCUMENTED_INSTALLER
README.md, line 49
curl -fsSL https://firecrawl.dev/install.sh | bash -s -- --agent openclaw
scripts/install.sh, line 5
# Usage: curl -fsSL https://firecrawl.dev/install.sh | bash
scripts/install.sh, line 214
# curl -fsSL https://firecrawl.dev/install.sh | bash -s -- --agent openclaw
Show more
package.json, line 19
prepare
Network
Concern
can reach a host that is not written as a fixed address.
NETWORK_NO_FIXED_HOST
scripts/install.sh, line 59
if command -v curl &>/dev/null; then
scripts/install.sh, line 60
version=$(curl -fsSL "$url" | grep '"tag_name"' | sed -E 's/.*"tag_name": *"([^"]+)".*/\1/')
scripts/install.sh, line 61
elif command -v wget &>/dev/null; then
Show more
scripts/install.sh, line 62
version=$(wget -qO- "$url" | grep '"tag_name"' | sed -E 's/.*"tag_name": *"([^"]+)".*/\1/')
scripts/install.sh, line 64
error "Neither curl nor wget found. Please install one and retry."
scripts/install.sh, line 81
if command -v curl &>/dev/null; then
scripts/install.sh, line 82
curl -fsSL --progress-bar "$url" -o "$dest"
scripts/install.sh, line 83
elif command -v wget &>/dev/null; then
Secrets
Concern
reads a credential or environment file.
SECRETS_ENV_READ SECRETS_PATH_DOTENV
src/commands/init.ts, line 636
apiKey && process.env.FIRECRAWL_API_KEY === apiKey
src/commands/launch.ts, line 250
!installOnly && apiKey && process.env.FIRECRAWL_API_KEY !== apiKey
src/commands/status.ts, line 62
if (process.env.FIRECRAWL_API_KEY) {
Show more
src/utils/auth.ts, line 689
const apiKey = process.env.FIRECRAWL_API_KEY;
src/utils/config.ts, line 32
process.env.FIRECRAWL_API_KEY ||
src/utils/config.ts, line 68
if (process.env.FIRECRAWL_API_KEY) return process.env.FIRECRAWL_API_KEY;
src/utils/agent-scaffold/credentials.ts, line 52
if (process.env.FIRECRAWL_API_KEY) {
src/utils/agent-scaffold/credentials.ts, line 53
return { key: process.env.FIRECRAWL_API_KEY, source: 'env' };
src/index.ts, line 2794
.description('Pull FIRECRAWL_API_KEY into a local .env file')
src/index.ts, line 2795
.option('-f, --file <path>', 'Target env file (default: .env)')
src/commands/doctor.ts, line 220
const envPath = path.join(cwd, '.env');
src/commands/doctor.ts, line 491
name: 'Local .env',
src/commands/doctor.ts, line 498
name: 'Local .env',
src/commands/doctor.ts, line 505
name: 'Local .env',
src/commands/doctor.ts, line 512
name: 'Local .env',
src/commands/env.ts, line 3
* Pull authenticated environment variables into project .env files
Agent instructions
Pass
No instruction to ignore earlier instructions or to hide a step.
Obfuscation
Pass
No encoded or minified payload found.
Licence
Note
no licence file found.
LICENCE_MISSING
Maintainer activity
Pass
The latest commit is within the last 365 days.
Note
Hygiene check of commit 2de80d5c7a89. can delete files. runs a script at install time. can reach a host that is not written as a fixed address. reads a credential or environment file. no licence file found.
Date and source
Date checked:
github.com
Commit graded: 2de80d5c7a89cabfbf6aa4d068418eb569fbc273
This link goes to the original host. PlugVet does not host or check what you download from there, and installing it is your own decision and risk.