
Product
Socket Threat Intel Now Shows Which Malware Campaigns Were Blocked or Detected
Socket Threat Intel now shows which malware campaigns were blocked or detected in your organization, with links to scans and Firewall events.
shippable-dev
Advanced tools
Find the leaks in your AI-built app before you ship: open Supabase/Firebase data, keys in client code, vulnerable libraries. Read-only, with proof.
Find the leaks in your AI-built app before you ship it.
Apps built with Lovable, Bolt, v0, Replit or Cursor often go live with their database open to anyone, secret keys in the browser bundle, or libraries with known vulnerabilities. Shippable checks for these from the outside, the way an attacker would, and shows you proof plus a fix you can paste straight into your AI tool.
npx shippable-dev scan localhost:5173
npx shippable-dev scan localhost:3000
No sign-up and no verification: it's your own machine. A local scan checks:
service_role keys, API keys and tokens shipped to the browser.It also reads your project folder (the one you run it from), on your machine only, and flags:
service_role key in a VITE_ or NEXT_PUBLIC_ variable, or a key written into your code. Detection covers many more providers, including Supabase's new sb_secret_ keys..env files in git, or not yet in .gitignore.firestore.rules, storage.rules and database.rules.json.verify_jwt alone doesn't, the public anon key passes it). CAPTCHA, rate limits and webhook signatures count as protection.Origin header.USING (true) read rules, and storage policies with no owner condition.SECURITY DEFINER functions anyone (or any signed-in user) can call, policies that trust user_metadata, views that skip Row Level Security or expose auth.users, and tables anonymous visitors can write to.match_documents and similar) that doesn't limit results to the signed-in user.+alias gets around them), login or reset responses that say whether an email has an account, and session tokens put in URLs.package-lock.json, pnpm-lock.yaml or yarn.lock) is checked against the OSV vulnerability database. Only package names and versions are sent to OSV, never your code.Point it at another folder with --project <dir>, or skip these checks with --no-project. The MCP server takes an optional projectDir for the same thing.
Headers, HTTPS, source maps and exposed files depend on your host, so a local scan skips them. Scan your deployed URL for those.
After each scan, the full report opens in your browser on shippable.dev, with a copy button for every fix. The report travels inside the link itself (after the #), which browsers never send to a server, so Shippable never receives your findings. When it can't open a browser (an AI agent runs it, --no-open, or no browser), the CLI writes a small local file that opens the report and prints its path, because a long link gets garbled when an agent repeats it. In CI it is never opened or printed, because CI logs can be public.
npx shippable-dev scan https://myapp.lovable.app
The first run prints a meta tag and a prompt to paste into your AI tool. Deploy it, run the same command again, and the scan starts. Shippable only scans apps you can prove you own.
A live scan also checks what depends on your host: security headers and HTTPS, CORS that lets other sites read logged-in data, exposed files (.env, .git, backups, docker-compose), debug and API-docs pages, error pages that reveal internals, whether your domain is protected against email spoofing (SPF and DMARC), AI system prompts shipped in your JavaScript, and admin tools left open on your subdomains (n8n, Metabase, Grafana, Evolution API and similar). Subdomains come from public certificate logs (crt.sh and Cert Spotter), which receive only your domain name. It only reads; it never sends anything that could change your app.
--browser)npx shippable-dev scan localhost:3000 --browser
Opt-in, and it only runs after the usual ownership check. It opens your page in your own installed Chrome (or Edge) in headless mode as a first-time visitor, records which trackers fire and which cookies get set, then, if there is a cookie banner, clicks its "reject" and reloads to see whether the trackers really stopped. It never types, signs in or submits anything. It needs Google Chrome (or run npx playwright install chromium); without one the scan carries on and says so. The MCP shippable_scan tool takes browser: true for the same. Results come from your machine's location: some banners only show to EU visitors.
The command exits with 1 when it finds a critical or high issue, so it can block a deploy:
npx shippable-dev scan https://staging.myapp.com || exit 1
Exit codes: 0 nothing critical or high; 1 critical or high findings; 2 nothing was checked: bad usage, the app couldn't be reached, the scan would have left the allowed network, ownership isn't verified yet, or the host's bot protection blocked the scan. Output has no colour when piped or when NO_COLOR is set.
Shippable only reads. It never writes, deletes or changes anything in your app or database. When it proves a table is open, it reads at most a few rows and shows you those as the evidence.
Shippable runs as an MCP server, so Cursor, Claude Code, Windsurf, VS Code and other agents can scan the app they're building and apply the fixes themselves. It adds two tools: shippable_scan checks the running app from outside, and shippable_review_code runs the code checks above, then gives your agent a checklist for what patterns can't catch (plan limits enforced only in the frontend, whether each function checks the record it's given).
Claude Code
claude mcp add shippable -- npx -y shippable-dev mcp
Cursor (.cursor/mcp.json), Windsurf and most other agents:
{
"mcpServers": {
"shippable": { "command": "npx", "args": ["-y", "shippable-dev", "mcp"] }
}
}
VS Code (.vscode/mcp.json):
{
"servers": {
"shippable": { "command": "npx", "args": ["-y", "shippable-dev", "mcp"] }
}
}
Then ask your agent to "scan my app with Shippable before we ship", or to "review my code with Shippable". For a live URL, the first scan gives the agent a meta tag to add and deploy; the next scan runs.
Add this to AGENTS.md, CLAUDE.md or .cursor/rules:
Before telling me this app is ready to ship, run `npx shippable-dev scan <dev server URL>` and fix every critical and high finding.
Scanning an app you don't own may be illegal where you live. The command-line scanner makes this hard on purpose: live URLs need an ownership tag that only the app's owner can deploy, and local scans refuse to reach anything except your own machine and the database services they check. You are responsible for how you use it.
Every request from this scanner identifies itself with the user agent Shippable-CLI. If you see it and didn't run it yourself, you can block that user agent at your host or firewall.
The scanner never tries to get around a challenge. It stops its extra checks, says so in the report, and you can re-scan after about 10 minutes. To allow the full scan on Vercel:
To know whether the CLI and MCP server are used at all, each scan sends one anonymous ping to shippable.dev:
~/.config/shippable/telemetry.jsonNever sent: URLs, hostnames, file names, code, findings or anything from your app. No IP address is stored. The ping never slows or fails a scan.
Turn it off with SHIPPABLE_TELEMETRY=0 (or DO_NOT_TRACK=1). A notice is printed the first time it runs.
Apache-2.0. The license covers the code only; it doesn't grant use of the Shippable name or the Patchy mascot.
Prefer a browser? Run the same scan at shippable.dev.
FAQs
Find the leaks in your AI-built app before you ship: open Supabase/Firebase data, keys in client code, vulnerable libraries. Read-only, with proof.
The npm package shippable-dev receives a total of 438 weekly downloads. As such, shippable-dev popularity was classified as not popular.
We found that shippable-dev demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.

Product
Socket Threat Intel now shows which malware campaigns were blocked or detected in your organization, with links to scans and Firewall events.

Security News
Fixes for eMudhra and Brotli are out. Getting them everywhere they’re needed means tracking down bundled libraries, runtimes, and certificate stores.

Threat Research
/Security News
Socket uncovered secret-stealing workflows that ran in LiteLLM’s GitHub repository 11 days before the supply chain attack on PyPI and Docker.