Command Palette

Search for a command to run...

UnylyUnyly
Browse all

Demokiller

FreeNot checked

AI agent production gate: kill demos and turn them into production-deliverable systems

GitHubEmbed

About

AI agent production gate: kill demos and turn them into production-deliverable systems

README

Demo Killer

AI 造 demo,Demo Killer 杀掉 demo 幻觉。
面向 AI 生成项目的开源生产就绪闸门 — 320+ 条规则、26 种项目类型、17 种语言、一条命令。

npm downloads CI license stars

English | 快速开始 | 它检查什么 | 给 Agent 使用 | 项目类型 | 语言


问题

你花了三个月打磨项目,用 AI 工具加速开发,功能测试都过了,准备上线。

但你心里清楚:生产环境比 demo 严酷得多。

  • API Key 硬编码在源码里
  • 任何接口都没有输入校验
  • Webhook 签名从未验证
  • Admin 路由对所有人开放
  • CORS 全开,没有 CSP,没有 HTTPS 重定向
  • 零测试、零错误处理

你的 linter 给了 87 分。Demo Killer 给你:Launch Blocked


一条命令

npx demokiller inspect . --markdown

不用安装,不用配置。指向任何项目,直接给结论。

verdict: Launch Blocked

  DK-AI-001  blocker  检测到硬编码 API Key
    文件:    src/lib/openai.ts
    后果:    API Key 暴露在源码中,任何有仓库访问权限的人都能看到
    修复:    将 Key 移到环境变量,.env 加入 .gitignore

  DK-CORS-001  high  CORS 允许所有来源
    文件:    src/server.ts
    后果:    任何网站都可以向你的 API 发起认证请求
    修复:    限制 origins 为你的实际域名

每个发现告诉你 什么问题在哪里为什么重要怎么修


它检查什么

Demo Killer 不只是 lint — 它跑的是生产就绪审计

检查维度 发现什么
安全 硬编码密钥、SQL 注入、XSS、SSRF、命令注入、路径穿越
认证 路由缺认证、弱会话配置、Webhook 未签名
输入校验 未清洗的请求体、缺少参数检查、无类型安全
错误处理 吞异常、缺 try/catch、暴露堆栈
可观测性 无日志、无健康检查、无优雅关闭
性能 N+1 查询、缺超时、无连接池
Agent 安全 Prompt 注入、未检查的工具执行、上下文泄露
业务逻辑 支付缺幂等、无事务安全、竞态条件
TypeScript strict 关闭、缺类型声明
测试 零测试文件、无 CI
依赖 已知漏洞、未使用包、缺 lockfile
部署 Docker 缺健康检查、无优雅关闭、无环境变量文档

Demo Killer 还会针对 26 种项目类型 跑专属规则 — Python API 和区块链合约检查的完全不同。


结果怎么看

判定 含义
Launch Blocked 有 blocker,不要上线
Hardening Required 有 high 级别问题,上线需风险评估
Minor Issues 有 medium 级别问题,可以上线但要跟踪
Production Ready 无显著问题,可以上线

每个发现包含:

  • 文件和行号 — 问题在哪
  • 严重级别 — blocker / high / medium / advisory
  • 后果 — 忽略这个问题在生产环境会发生什么
  • 验收标准 — "修好了"具体长什么样

快速开始

# 全局安装
npm install -g demokiller

# 检查任何项目
demokiller inspect .

# 输出 Markdown(适合 PR 和文档)
demokiller inspect . --format markdown

# 输出 SARIF(接 GitHub Code Scanning)
demokiller inspect . --format sarif > results.sarif

# 只看 blocker
demokiller inspect . --severity blocker

# 保存基线,下次只看新增问题
demokiller inspect . --save-baseline .dk-baseline.json
demokiller recheck .

# 脚手架生成 Agent 集成文件
demokiller init .

或者完全不装:

npx demokiller inspect . --markdown

给 Agent 使用

Demo Killer 是 Agent 原生的。支持 MCP、结构化 JSON、SARIF,能直接生成 Agent 指导文件。

Claude Code

// .claude/settings.json
{
  "mcpServers": {
    "demokiller": {
      "command": "npx",
      "args": ["demokiller-mcp"]
    }
  }
}

然后跟 Claude 说:"跑一下 Demo Killer 检查,把 blocker 全部修掉。"

Cursor / Windsurf / Claude Desktop

{
  "mcpServers": {
    "demokiller": {
      "command": "npx",
      "args": ["demokiller-mcp"]
    }
  }
}

GitHub Actions

- name: Production Gate
  run: npx demokiller inspect . --format sarif > results.sarif

- name: Upload SARIF
  uses: github/codeql-action/upload-sarif@v3
  with:
    sarif_file: results.sarif

Agent Skill

运行 demokiller init . 后,支持 Skill 的 Agent 会获得 /demokiller 命令 — 自动触发生产就绪检查,优先处理 blocker,生成可执行的修复计划。


支持的项目类型

Demo Killer 检测 26 种项目类型,每种都有专属深度规则。


Web App
Next.js, React, Vue, Express, FastAPI, Django, Gin

CLI Tool
Commander, Yargs, Oclif, Click, Cobra

Library / SDK
npm package, Python package, Go module

Python API
FastAPI, Flask, Django, Litestar

桌面应用
Electron, Tauri

移动应用
React Native, Flutter, Capacitor

游戏
Phaser, Pixi, Three.js, Godot, Unity

ML Pipeline
PyTorch, TensorFlow, Pandas, Scikit

Agent / MCP
LLM agents, 工具调用, MCP 服务器

API Gateway
Kong, Express Gateway, http-proxy

浏览器扩展
Chrome, Firefox, Manifest V3

IDE 插件
VS Code 扩展

CI/CD
GitHub Actions, GitLab CI, Jenkins

数据库迁移
Knex, Prisma, TypeORM, Alembic

定时任务
node-cron, Celery, APScheduler

Serverless
AWS Lambda, Vercel, Cloudflare

消息队列
Kafka, RabbitMQ, BullMQ, SQS

IaC
Terraform, Pulumi, CDK, CloudFormation

WASM
wasm-pack, AssemblyScript

区块链
Solidity, ethers.js, web3.js

IoT / 嵌入式
PlatformIO, Johnny-Five, Arduino

DevOps 脚本
Shell, zx, 部署自动化

静态站点
Astro, Hugo, Gatsby, Eleventy

CMS
Strapi, Directus, Keystone, Payload

监控
Prometheus, Grafana, StatsD, Datadog

支付系统
Stripe, PayPal, Square

认证服务
Passport, NextAuth, Clerk, Auth.js

系统级 C/C++
内核, 驱动, 原生应用, 嵌入式固件

每种类型在通用规则之上,额外获得 3-6 条专属深度规则。


支持的语言

Demo Killer 能分析 17 种语言,其中 16 种有专属语言规则。

完整规则覆盖 — 专属语言规则 + 路由检测 + 调用图:

语言 专属规则 路由检测 调用图 污点分析
TypeScript 通用规则 (DK-AGENT, DK-ERR, DK-PERF 等)
JavaScript 通用规则
Python 7 条专属 (DK-PY-001~007) ✅ BFS
Go 20 条专属 (DK-GO-001~020) ⚠️ 正则
Rust 15 条专属 (DK-RS-001~015)
Java 10 条专属 (DK-JAVA-001~010)
C / C++ 10 条专属 (DK-C-001~010)
Kotlin 8 条专属 (DK-KT-001~008)
C# 8 条专属 (DK-CS-001~008)
PHP 8 条专属 (DK-PHP-001~008)
Ruby 8 条专属 (DK-RB-001~008)
Swift 6 条专属 (DK-SW-001~006)
Dart 5 条专属 (DK-DART-001~005)
Scala 5 条专属 (DK-SCALA-001~005)
Shell 5 条专属 (DK-SHELL-001~005)

文件级检测 — 通过文件扩展名识别,可运行项目级规则(依赖、Docker、CI/CD 等):

语言 说明
Lua 路由检测 (Lapis)
Zig 路由检测
Vue 通过 tree-sitter 解析

检测引擎说明: TypeScript/JavaScript 使用 tree-sitter AST 解析 + 完整调用图 + 污点分析。Python 使用 tree-sitter AST + BFS 调用图。Go 使用 tree-sitter AST + 正则调用图。其他语言各有 5-15 条语言专属规则(正则模式匹配)。通用规则(硬编码密钥、CORS、CSP 等)对所有检测到路由的语言均有效。


MCP Server

Demo Killer 作为 MCP 服务器运行,提供 3 个工具给 Agent:

工具 功能
inspect_project 完整审计,JSON 或 Markdown 输出
list_launch_blockers 只返回 blocker 级别发现
generate_hardening_plan 三阶段修复计划:blocker → 加固 → 改进

启动服务器:

npx demokiller-mcp

CLI 命令

命令 用途
demokiller inspect . 完整生产就绪审计
demokiller inspect . --format markdown Markdown 输出,适合 PR
demokiller inspect . --format sarif SARIF 输出,接 GitHub Code Scanning
demokiller inspect . --severity blocker 只看上线阻塞项
demokiller inspect . --save-baseline .dk.json 保存当前状态为基线
demokiller recheck . 对比基线,只看新增问题
demokiller init . 脚手架生成 Agent 集成文件
demokiller benchmark benchmarks/list.json 跑 benchmark 套件

自定义规则

Demo Killer 支持通过 .demokiller/plugins/ 目录添加自定义规则。

// .demokiller/plugins/my-rules.json
[
  {
    "ruleId": "CUSTOM-NO-TODO",
    "title": "生产代码中不允许 TODO",
    "severity": "low",
    "confidence": "high",
    "patterns": ["//\\s*TODO"],
    "fileGlobs": [".ts", ".tsx", ".js", ".jsx"],
    "consequence": "TODO 注释表示未完成的工作,不应上线。",
    "acceptanceCriteria": ["上线前解决所有 TODO 注释。"]
  }
]

支持两种检测方式:

  • patterns — 正则匹配(适合简单模式)
  • detect — JavaScript 函数字符串(适合复杂逻辑,如计数、上下文判断)

详见 examples/custom-rule-example.json


vs. 其他工具

CodeQL SonarQube Semgrep Snyk Demo Killer
目的 找漏洞 找代码坏味道 找模式 找依赖漏洞 找上线阻塞项
输出 "47 个中等问题" "D 评级" "12 个发现" "3 个高危" "Launch Blocked"
项目类型 通用 通用 通用 通用 26 种,类型专属规则
Agent 原生 ✅ MCP, Skills, JSON, SARIF
结论 分数 4 级结论
后果说明 "忽略这个会怎样"
验收标准 "修好了长什么样"

CodeQL 告诉你代码有什么问题。Demo Killer 告诉你项目能不能上线。


真实项目验证

Demo Killer 已在 111 个真实开源项目上完成验证,覆盖 52 个领域17 种语言

指标 数值
测试项目数 111
领域覆盖 52
语言覆盖 17
无 Blocker 项目 65.8%
测试用例 170

误报修复效果(v0.7.7):

规则 修复前 修复后 降幅
DK-TAINT-001 35 次 4 次 -89%
DK-ENV-016 32 次 0 次 -100%
DK-SHELL-002 13 次 0 次 -100%
DK-AGENT-007 11 次 0 次 -100%

剩余 blocker 均为真实问题:PaaS 命令注入(coolify)、嵌入式固件漏洞(tasmota)、实时库数据暴露(socketio)。


Roadmap

  • VS Code 扩展
  • 更多真实项目 benchmark 数据积累
  • 逐文件分析替换内容拼接(减少跨文件误报)

License

MIT — 随便用。

为真正要上线的人而造,不是为 demo 而造。

from github.com/AVIDS2/demokiller

Install Demokiller in Claude Desktop, Claude Code & Cursor

Recommended · one command, every IDE
unyly install demokiller

Installs into Claude Desktop, Claude Code, Cursor & VS Code — handles npx, uvx and build-from-source repos for you.

First time? Get the CLI: curl -fsSL https://unyly.org/install | sh

Or configure manually

Run in your terminal:

claude mcp add demokiller -- npx -y demokiller

FAQ

Is Demokiller MCP free?

Yes, Demokiller MCP is free — one-click install via Unyly at no cost.

Does Demokiller need an API key?

No, Demokiller runs without API keys or environment variables.

Is Demokiller hosted or self-hosted?

Self-hosted: the server runs locally on your machine via the install command above.

How do I install Demokiller in Claude Desktop, Claude Code or Cursor?

Open Demokiller on unyly.org, pick your client tab (Claude Desktop, Claude Code, Cursor) and press Install — the config is generated automatically, no JSON editing.

Related MCPs

Compare Demokiller with

Not sure what to pick?

Find your stack in 60 seconds

Author?

Embed badge for your README

Browse similar

All ai MCPs