Skip to content
Report library
Purpose / Browser automation

Firecrawl Build Onboarding Skill Security Audit

What the author says it does (original text)

Get Firecrawl credentials and SDK setup into a project. Use when an application needs `FIRECRAWL_API_KEY`, when an agent should add Firecrawl to `.env`, when the user wants to authenticate Firecrawl for app code, or when choosing the first SDK and docs for a new Firecrawl integration. This skill includes its own browser auth flow, so it does not depend on the website onboarding skill.

Independent security check

Security risks found

Files checked
4
Risks found
3
Could it run dangerous commands?Looks for programs run straight after downloading, remote control of your computer, and hidden commands.Risks found: 1
Medium risk

Unpinned npx command downloads and executes the “latest” installer

Source references: 2
What we found

The installation uses `npx -y ...@latest`, which suppresses npx confirmation and executes whatever current version the registry serves. It also installs the CLI, CLI skills, and build skills together, exceeding the scope of selecting one SDK for the project.

Why this matters

If the upstream package is compromised, mistakenly released, or changes behavior later, its installer can act with the user's permissions, including modifying project or local files, accessing available credentials, and opening the browser flow.

This command uses npx to fetch and execute an unpinned latest package and uses `-y` to skip confirmation. The documentation says it installs the CLI, CLI skills, and build skills and opens browser authentication. Those components match the onboarding purpose, but the scope is broad; the user should confirm all components and browser sign-in are wanted before authorizing execution.

SKILL.md:29In the instructionsOpen original file
If you haven't installed yet, one command sets up both the CLI tools(for live web work) and the build skills (for app integration):```bashnpx -y firecrawl-cli@latest init --all --browser```This installs the Firecrawl CLI, the CLI skills, and these build skillstogether. It also opens browser auth so the human can sign in or createan account. No separate `npx skills add` step is needed.
Show 1 other places
SKILL.md:36In the instructionsOpen original file
This installs the Firecrawl CLI, the CLI skills, and these build skillstogether. It also opens browser auth so the human can sign in or createan account. No separate `npx skills add` step is needed.
Could it expose your files or keys?Looks for uploads of files containing passwords or keys, and keys written directly in the code.Risks found: 1
Medium risk

The API key enters an agent-visible response, command text, and project `.env`

Source references: 4
What we found

The completion response returns the API key directly, after which the example embeds the real key in a shell command and appends it to `.env`. Although the project guidance warns against hardcoding credentials in source files, it does not require checking that `.env` is ignored by version control or keep the key out of agent and terminal records.

Why this matters

If tool logs, shell history, session transcripts, or repository commits capture these values, anyone able to read them may consume the Firecrawl account's permissions and quota. Re-running the append command can also leave multiple key values.

The auth flow polls a remote endpoint with session values; a successful response contains the API key in plaintext, then instructs placing that key in a shell command that appends to `.env`. If an agent performs these steps, the key may appear in agent-visible responses and terminal history/logs; it could also be committed if `.env` is not ignored. The setup guide recommends environment variables or a secret manager, but the shown instructions do not check version-control exclusion. The user can prohibit the agent from reading or echoing the real key and require a `.gitignore` check first.

references/auth-flow.md:32In the instructionsOpen original file
- `{"status":"pending"}` - continue polling- `{"status":"complete","apiKey":"fc-...","teamName":"..."}`## Step 4: Save the key```bashecho "FIRECRAWL_API_KEY=fc-..." >> .env```
Show 3 other places
references/auth-flow.md:35In the instructionsOpen original file
## Step 4: Save the key```bashecho "FIRECRAWL_API_KEY=fc-..." >> .env```
references/project-setup.md:16In the instructionsOpen original file
Project setup guidance:- Keep the key in environment variables or the platform secret manager.- Do not hardcode credentials in source files.- If the app has separate environments, mirror the key setup across development, preview, and production as needed.
references/auth-flow.md:23In the instructionsOpen original file
```httpPOST https://www.firecrawl.dev/api/auth/cli/statusContent-Type: application/json{"session_id":"$SESSION_ID","code_verifier":"$CODE_VERIFIER"}```
Could it delete files or keep running?Looks for broad file deletion, disk overwrites, and programs set to start automatically.No risks found
Could it bypass safety checks?Looks for skipped website security checks, excessive file access, or actions that skip your approval.Risks found: 1
Low risk

The install command does not pin a dependency version

Source references: 2
What we found

The installation command does not specify dependency versions. The same command may download different code later, so what you install can differ from what was checked.

Why this matters

A later install may download different code even though the command and this report have not changed.

The installation step explicitly uses `@latest` rather than a fixed version. When run later, npx may download and execute code different from what was reviewed; `-y` also accepts installation prompts automatically. The user can ask for a verified pinned version and confirm the package name, version, and publisher before running it.

SKILL.md:38In the instructionsOpen original file
together. It also opens browser auth so the human can sign in or createan account. No separate `npx skills add` step is needed.
Show 1 other places
SKILL.md:33In the instructionsOpen original file
```bashnpx -y firecrawl-cli@latest init --all --browser```
Could it mislead the AI or hide text?Checks the skill instructions for requests to ignore you, influence the report, or hide text in invisible characters.No risks found
Could it change links or payment recipients without asking?Looks for forced referral or payment changes combined with instructions to hide the change.No risks found

Inside this skill

6 instruction sections

This Skill onboards Firecrawl credentials and an SDK into a project; it requires a hosted API key and defines browser authorization, SDK installation, and `.env` configuration as its main workflow.

View source
SKILL.md:3In the instructionsOpen original file
name: firecrawl-build-onboardingdescription: Get Firecrawl credentials and SDK setup into a project. Use when an application needs `FIRECRAWL_API_KEY`, when an agent should add Firecrawl to `.env`, when the user wants to authenticate Firecrawl for app code, or when choosing the first SDK and docs for a new Firecrawl integration. This skill includes its own browser auth flow, so it does not depend on the website onboarding skill.license: ISC
SKILL.md:11In the instructionsOpen original file
inputs:  - name: FIRECRAWL_API_KEY    description: Firecrawl API key used for hosted Firecrawl API requests.    required: true  - name: FIRECRAWL_API_URL

When no key exists, the flow generates PKCE-style parameters, asks the user to authorize on Firecrawl's site, and has the agent submit the session ID and verifier to a status endpoint; the completion response directly contains the API key.

View source
references/auth-flow.md:8In the instructionsOpen original file
```bashSESSION_ID=$(openssl rand -hex 32)CODE_VERIFIER=$(openssl rand -base64 32 | tr '+/' '-_' | tr -d '=\n' | head -c 43)CODE_CHALLENGE=$(printf '%s' "$CODE_VERIFIER" | openssl dgst -sha256 -binary | openssl base64 -A | tr '+/' '-_' | tr -d '=')```
references/auth-flow.md:16In the instructionsOpen original file
```texthttps://www.firecrawl.dev/cli-auth?code_challenge=$CODE_CHALLENGE&source=coding-agent#session_id=$SESSION_ID```
references/auth-flow.md:23In the instructionsOpen original file
```httpPOST https://www.firecrawl.dev/api/auth/cli/statusContent-Type: application/json{"session_id":"$SESSION_ID","code_verifier":"$CODE_VERIFIER"}```
references/auth-flow.md:32In the instructionsOpen original file
- `{"status":"pending"}` - continue polling- `{"status":"complete","apiKey":"fc-...","teamName":"..."}`

After setup, the Skill directs the agent to add an SDK or REST call and perform a smoke test using one real Firecrawl request.

View source
SKILL.md:95In the instructionsOpen original file
1. decide whether this is a fresh project or an existing codebase2. ask what Firecrawl should do in the product3. pick the narrowest endpoint that matches that behavior4. read the source-of-truth page for the project language before writing code5. add the SDK or REST call in code6. run a smoke test that proves one real Firecrawl request succeeds7. use the endpoint-specific skills in this repo for implementation guidance8. if you also need live web tooling during the current task, the CLI skills are already installed — use `firecrawl/cli`
Start here · InstructionsSKILL.md
firecrawl-build-onboarding
Lines connect the instruction file to its sections, not an observed execution order. Select a section to read the source.

File reference map

References: 3
Files making referencesReferenced content
Lines show actual file references, not execution order. Select a node to highlight its connections and inspect the files and source locations. Dashed lines include files that still need locating.
Files and check records4 files

Coverage and gaps

Content covered in each file

These are the source ranges included in this check, not a guarantee that every issue has been resolved.

  • SKILL.mdFull text included
  • references/auth-flow.mdFull text included
  • references/project-setup.mdFull text included
  • references/sdk-installation.mdFull text included

This report is for the version above. We read the available code and instructions without running the skill or checking extra packages it installs. This is not a promise of safety: a different version or setup may behave differently.

  • SKILL.mdInstructions
  • references/auth-flow.mdSupporting file
  • references/project-setup.mdSupporting file
  • references/sdk-installation.mdSupporting file

Operations mentioned in code and instructions

Read keys or account settings
SKILL.md:3In the instructionsOpen original file
name: firecrawl-build-onboardingdescription: Get Firecrawl credentials and SDK setup into a project. Use when an application needs `FIRECRAWL_API_KEY`, when an agent should add Firecrawl to `.env`, when the user wants to authenticate Firecrawl for app code, or when choosing the first SDK and docs for a new Firecrawl integration. This skill includes its own browser auth flow, so it does not depend on the website onboarding skill.license: ISC
SKILL.md:11In the instructionsOpen original file
inputs:  - name: FIRECRAWL_API_KEY    description: Firecrawl API key used for hosted Firecrawl API requests.
SKILL.md:42In the instructionsOpen original file
- a project needs `FIRECRAWL_API_KEY`- the user wants Firecrawl wired into `.env`
Connect to websites
SKILL.md:8In the instructionsOpen original file
  version: "0.1.0"  homepage: https://www.firecrawl.dev  source: https://github.com/firecrawl/skills
SKILL.md:9In the instructionsOpen original file
  homepage: https://www.firecrawl.dev  source: https://github.com/firecrawl/skillsinputs:
SKILL.md:12In the instructionsOpen original file
  - name: FIRECRAWL_API_KEY    description: Firecrawl API key used for hosted Firecrawl API requests.    required: true
Run commands
SKILL.md:32In the instructionsOpen original file
```bashnpx -y firecrawl-cli@latest init --all --browser
references/auth-flow.md:7In the instructionsOpen original file
```bashSESSION_ID=$(openssl rand -hex 32)
references/auth-flow.md:37In the instructionsOpen original file
```bashecho "FIRECRAWL_API_KEY=fc-..." >> .env
Install extra software packages
SKILL.md:33In the instructionsOpen original file
```bashnpx -y firecrawl-cli@latest init --all --browser```
SKILL.md:38In the instructionsOpen original file
together. It also opens browser auth so the human can sign in or createan account. No separate `npx skills add` step is needed.
references/sdk-installation.md:8In the instructionsOpen original file
```bashnpm install @mendable/firecrawl-js```
Lines read
182
File checksum (to compare versions)
330f407bdf4c3851aa7774b7324a1de273a5711d5b025a2fa5ed4100edf6da19