BLA
BLA (Blind LLM Agents) is the open-source Blue Defense MCP and CLI built to protect software artifacts against automated AI reverse-engineering workflows.
Your AI writes the code. Kompile makes sure it does not leak. Check your app for exposed keys and open doors, fix them with your own AI, and stay protected every week.
SecurityTypeScriptGitHub @raheefJOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Open-source, read-only security checks for apps built with AI: leaked keys, exposed files, open panels, vulnerable Next.js. CLI, GitHub Action and MCP server.
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
Read-only security checks for apps built with AI. Point it at a site you own. In a few seconds you get a grade, every problem it found, and a plain-English fix for each.
It is built for the mistakes that Lovable, Bolt, v0, Cursor and Replit apps actually ship with:
• secret API keys in the browser bundle
• .env files and backups served to anyone
• source maps that publish your source code
• open admin and AI tool panels
• vulnerable Next.js versions
• forgotten subdomains that someone else can take over
• Never attacks. It sends ordinary GET andRead the full README ↗Read-only security checks for apps built with AI. Point it at a site you own. In a few seconds you get a grade, every problem it found, and a plain-English fix for each.
npx kompile-scan yourapp.com --i-own-this
It is built for the mistakes that Lovable, Bolt, v0, Cursor and Replit apps actually ship with:
.env files and backups served to anyone| Area | Checks |
|---|---|
| HTTPS | Certificate validity and expiry, TLS version, HTTP to HTTPS redirect, HSTS strength, CAA record |
| Headers | Content-Security-Policy quality, clickjacking protection, nosniff, Referrer-Policy, cookie flags, version banners |
| Leaked secrets | About 25 secret key formats in the page and its scripts: Stripe, OpenAI, Anthropic, AWS, Supabase service_role, Groq, OpenRouter, Resend, SendGrid, Slack, GitHub and more. Publishable keys are ignored on purpose. |
| Exposed files | .env variants, .git, backups and SQL dumps, Dockerfile, build configs (next.config.js, vite.config, vercel.json), Prometheus /metrics, Spring actuator, Go pprof, logs |
| Exposure | Directory listings (including folders named in robots.txt), public source maps, verbose error pages (Python, Django, Laravel, Node, Express, Java, ASP.NET, Rails), public OpenAPI and Swagger UI, GraphQL introspection, admin, database and AI panels (phpMyAdmin, Adminer, Supabase Studio, Jupyter, Ollama, n8n and others) |
| Supply chain | Scripts from hijacked CDNs (polyfill.io), front-end libraries with known CVEs, Next.js versions npm marks as vulnerable, missing subresource integrity, mixed content |
| DNS and email | SPF and DMARC, subdomain takeover via certificate-transparency logs and dangling CNAMEs |
--i-own-this. The hosted version at kompile.tv verifies ownership with DNS or a file before every scan.The exit code is 1 when a problem at or above --fail-on is found (the default is medium), so a deploy that leaks a key can fail the build. The Action also puts the report in the job summary and the findings in your repository's Security tab.
# .github/workflows/kompile-scan.yml
name: Kompile Scan
on: [deployment_status]
permissions:
security-events: write
jobs:
scan:
if: github.event.deployment_status.state == 'success'
runs-on: ubuntu-latest
steps:
- uses: raheefJ/kompile-scan@v0
with:
hostname: ${{ vars.SITE_HOSTNAME }}
fail-on: high
- uses: github/codeql-action/upload-sarif@v3
if: always()
with:
sarif_file: kompile-scan.sarif
Kompile Scan ships an MCP server. Your agent (Claude, Cursor, Windsurf and others) can scan your live site, apply the fixes in your code, and scan again until you get an A.
{ "mcpServers": { "kompile-scan": { "command": "npx", "args": ["-y", "-p", "kompile-scan", "kompile-scan-mcp"] } } }
The scan_site tool needs i_own_this: true, so the agent has to confirm ownership with you first. It never logs in or changes anything on the site.
--format | Use it for |
|---|---|
text | your terminal (the default) |
json | scripts and dashboards |
markdown | pull-request comments and job summaries |
sarif | GitHub code scanning (the Security tab) |
prompt | pasting into Cursor, Claude, Lovable or Bolt so it fixes everything at once |
import { runScan } from "kompile-scan";
const report = await runScan("yourapp.com", { basePath: "/app" });
console.log(report.grade, report.findings.filter((f) => f.status === "fail"));
npm run bench # the corpus of local test sites with planted problems and traps
npm run bench:mutate # 400 generated sites mixing problems, traps, hosts and frameworks
New checks, fingerprints and test sites are very welcome. See CONTRIBUTING.md.
Copyright (C) 2026 Kompile contributors.
Licensed under the GNU Affero General Public License v3.0 or later. You may use, change and share it. If you run a modified version as a network service, you must share your changes under the same license. See LICENSE.