使用说明
Cacode
开源代码分析工具 它审查您的项目的代码质量、最佳实践、性能、安全性、架构和数据库问题。连接到任何LLM,自动发现MCP服务器,分析数据库模式,并生成交互式HTML报告。
开源代码分析工具 他们检查您的项目以寻找代码质量、良好的实践、性能、安全性、体系结构和数据库问题。它连接到任何LLM,自动发现MCP服务器,分析数据库架构并生成交互式HTML报告。
目录/目录
- 安装/安装
- 初始设置/初始设置
- 快速启动/快速启动
- 命令/Comandos
- 配置/配置
- LLM供应商
- 数据库分析/数据库分析
- MCP集成/集成MCP
- Git远程分析/仓库分析Git
- CI/CD集成
- 报告/报告
- 自定义规则/自定义规则
- 例子/例子
安装/安装
npm install -g cacode
要求/要求: Node.js>=18.0.0
初始设置/初始设置
选项A:您已安装Claude Code(零配置)
如果你已经有了 克劳德代码 安装并验证, 你不需要配置任何东西.CACode会自动检测到它并询问您是否要使用它:
如果你已经有了 克劳德代码 安装和认证, 您不需要设置任何内容。Cacode会自动检测到它,并询问您是否想使用它:
cacode analyze ./my-project
# > Claude Code detectado en tu sistema.
# > ¿Deseas usar Claude Code para el analisis? (y/n): y
# > Usando Claude Code como proveedor LLM
不需要API密钥。透明地使用您现有的Claude Code订阅。
没有API密钥。透明地使用您现有的Claude Code订阅。
选项B:配置API密钥(任何提供程序)
如果您更喜欢使用特定的提供程序,或者没有Claude代码,请配置API密钥:
如果您更喜欢使用特定的提供程序,或者您没有Claude Code,请配置密钥API:
cacode init --global
这创建了两个文件/这创建了两个文件:
~/.cacode/
├── .env # API keys + database credentials
└── .cacode.yml # Default analysis settings
位置 / Location
|---|---|
| 视窗 | C:\Users\<you>\.cacode\ |
| macOS | /Users/<you>/.cacode/ |
| Linux | /home/<you>/.cacode/ |
1.设置您的API密钥/Configurat tu API密钥
编辑 ~/.cacode/.env:
# Choose ONE provider / Elige UN proveedor:
# Anthropic (Claude) - Default / Por defecto
ANTHROPIC_API_KEY=sk-ant-xxxxxxxxxxxxxxxxxxxx
# OpenAI (GPT)
# OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxx
# Google Gemini
# GEMINI_API_KEY=AIxxxxxxxxxxxxxxxxxxxxx
# OpenRouter (200+ models with one key / 200+ modelos con una key)
# OPENROUTER_API_KEY=sk-or-xxxxxxxxxxxxxxxxxxxx
# Ollama - No API key needed / No necesita API key
# Just run: ollama serve
2.(可选)设置数据库凭据/(可选)配置BD凭据
在同一个 ~/.cacode/.env:
在同一时间 ~/.cacode/.env:
# Database connection / Conexion a base de datos
DB_TYPE=postgresql
DATABASE_URL=postgresql://user:password@localhost:5432/mydb
就是这样。您只需配置一次,即可分析任何项目。
这就是全部。配置一次,分析任何项目。
快速启动/快速启动
英语:
# 1. Install
npm install -g cacode
# 2. Configure (one time only)
cacode init --global
# Edit ~/.cacode/.env with your API key
# 3. Analyze any project (3 modes)
cacode analyze ./my-project # Local project
cacode analyze https://github.com/user/repo.git # Git repository
cacode analyze ./src/controllers/auth.ts # Single file
# The report opens automatically in your browser
西班牙语:
# 1. Instalar
npm install -g cacode
# 2. Configurar (solo una vez)
cacode init --global
# Edita ~/.cacode/.env con tu API key
# 3. Analiza lo que necesites (3 modos)
cacode analyze ./mi-proyecto # Proyecto local
cacode analyze https://github.com/user/repo.git # Repositorio Git
cacode analyze ./src/controllers/auth.ts # Archivo individual
# El reporte se abre automaticamente en tu navegador
命令/Comandos
cacode init
初始化配置文件。
初始化配置文件。
# Global setup (one time) - creates ~/.cacode/.env and ~/.cacode/.cacode.yml
# Configuracion global (una vez) - crea ~/.cacode/.env y ~/.cacode/.cacode.yml
cacode init --global
# Per-project overrides (optional) - creates .cacode.yml in current directory
# Sobreescrituras por proyecto (opcional) - crea .cacode.yml en directorio actual
cacode init
# Overwrite existing / Sobreescribir existente
cacode init --global --force
cacode analyze [path]
主命令。分析本地项目、远程Git存储库或单个文件。
主要指挥部。分析本地项目、远程Git存储库或单个文件。
# ── Local project / Proyecto local ──
cacode analyze # Current directory / Directorio actual
cacode analyze ./my-project # Specific path / Ruta especifica
# ── Git repository / Repositorio Git ──
cacode analyze https://github.com/user/repo.git
cacode analyze https://github.com/user/repo.git --branch develop
# ── Single file / Archivo individual ──
cacode analyze ./src/auth/login.ts
cacode analyze ./app/Http/Controllers/UserController.php
cacode analyze C:\Projects\my-app\src\index.js
单文件模式 仅对一个文件运行快速、集中的分析。非常适合在开发过程中快速审查。它从父目录中检测项目上下文(语言、框架),但只分析指定的文件。
个人档案模式 运行快速且专注于单个文件的分析。非常适合在开发过程中进行快速审查。从父目录检测项目上下文(语言、框架),但仅分析指定的文件。
选项/选项:
| Option | Description (EN) | Description (ES) |
|---|---|---|
--provider <name> |
LLM提供者: anthropic, openai, gemini, ollama, openrouter, openai-compatible, claude-code |
供应商LLM |
--model <model> LLM模型使用 |
||
--config <path> |
通往 .cacode.yml |
文件路径 .cacode.yml |
--output <dir> |
报表输出目录 | 报表输出目录 |
--no-browser |
不要在浏览器中打开报告 | 不要在浏览器中打开报告 |
-v, --verbose |
启用调试日志记录 | Habilitar日志去授权 |
--ci CI mode: non-zero exit if score < threshold. CI mode: non-zero exit if score < threshold. CI mode: non-zero exit if score < threshold. CI mode: non-zero exit if score < threshold. CI mode: non-zero exit if score < threshold. |
||
--threshold <n> |
CI模式的最低得分(默认值:70) | CI模式下的最低得分 |
--format <fmt> |
输出格式: html 或 json |
输出格式: html 哦 json |
--since <ref> |
自Git Ref以来仅分析更改的文件 | 仅分析自Git Ref以来更改的文件 |
--branch <branch> |
要克隆的Git分支(远程存储库) | Rama de Git a clonar(远程存储) |
--lang <lang> |
报告语言: en 或 es |
报告语言: en 哦 es |
cacode registry
搜索可用的MCP服务器。
寻找可用的MCP服务器。
cacode registry search typescript
cacode registry search postgresql
cacode registry list
配置/配置
CACode使用分层配置系统。您可以全局配置所有内容一次,并可选择覆盖每个项目。
Cacode使用分层配置系统。您可以全局配置所有内容一次,并可以选择按项目覆盖。
位置/文件位置
~/.cacode/ # GLOBAL (all projects / todos los proyectos)
├── .env # API keys, database credentials
└── .cacode.yml # Default analysis settings
./my-project/ # PER-PROJECT overrides (optional / opcional)
└── .cacode.yml # Only what you want to change
优先顺序/优先顺序
后来的消息来源覆盖了以前的消息来源/后来的消息来源覆盖了以前的消息来源:
1. Built-in defaults (lowest priority / menor prioridad)
2. ~/.cacode/.cacode.yml (global config)
3. ./project/.cacode.yml (project config)
4. ~/.cacode/.env (global env vars)
5. ./project/.env (project env vars - DB only)
6. CLI flags (highest priority / mayor prioridad)
全局配置/全局配置
~/.cacode/.cacode.yml:
llm:
provider: anthropic # anthropic | openai | ollama | gemini
model: claude-sonnet-4-20250514 # Model name / Nombre del modelo
maxTokens: 4096
temperature: 0.2
analysis:
categories:
- best-practices # Code quality / Calidad de codigo
- performance # Bottlenecks / Cuellos de botella
- security # Vulnerabilities / Vulnerabilidades
- rendering # UI optimization / Optimizacion de UI
- architecture # Design patterns / Patrones de diseno
- database # DB schema & queries / Esquema y queries de BD
exclude:
- "node_modules/**"
- "dist/**"
- "build/**"
- ".git/**"
- "coverage/**"
concurrency: 3 # Parallel analysis / Analisis paralelo
maxFileSize: 100000 # Max file size in bytes / Tamano maximo en bytes
database:
enabled: true
readOnly: true # Read-only connection / Conexion solo lectura
connectionTimeout: 10000
mcp:
autoDiscover: true # Auto-discover MCP servers / Auto-descubrir servidores MCP
servers: [] # Custom servers / Servidores personalizados
report:
outputDir: ./cacode-reports
openInBrowser: true
format: html # html | json
includeSourceCode: true
每个项目覆盖/每个项目覆盖
如果特定项目需要不同的设置,请创建 ./project/.cacode.yml 随着 只有您要更改的字段:
如果项目需要不同的设置,请创建 ./project/.cacode.yml 骗局 只有你想改变的领域:
# Only analyze security for this project
# Solo analizar seguridad para este proyecto
analysis:
categories:
- security
- performance
# Disable database for this project
# Deshabilitar base de datos para este proyecto
database:
enabled: false
LLM供应商
Claude Code(零配置/无配置)
如果您的系统上安装了Claude Code,CACode可以直接使用它。不需要API密钥。
如果Claude Code安装在您的系统上,Cacode可以直接使用它。不需要API密钥。
# Auto-detected / Auto-detectado
cacode analyze ./my-project
# CACode asks: "¿Deseas usar Claude Code para el analisis?"
# Or explicitly / O explicitamente
cacode analyze ./my-project --provider claude-code
cacode analyze ./my-project --provider claude-code --model opus
通过Claude Code提供的型号: sonnet (默认), opus, haiku
API密钥提供程序/带有API密钥的供应商
所有API密钥都进入 ~/.cacode/.env你只设置了一次。
所有API密钥都进入 ~/.cacode/.env.设置它们一次。
人类学(克劳德)
# ~/.cacode/.env
ANTHROPIC_API_KEY=sk-ant-...
cacode analyze . --provider anthropic --model claude-sonnet-4-20250514
OpenAI(GPT)
# ~/.cacode/.env
OPENAI_API_KEY=sk-...
cacode analyze . --provider openai --model gpt-4o
Ollama(本地模型/本地模型)
不需要API密钥。Ollama一定在当地跑步。
不需要API密钥。Ollama必须在本地运行。
# Start Ollama first / Inicia Ollama primero
ollama serve
# Then analyze / Luego analiza
cacode analyze . --provider ollama --model llama3
cacode analyze . --provider ollama --model deepseek-coder
cacode analyze . --provider ollama --model mistral
谷歌双子座
# ~/.cacode/.env
GEMINI_API_KEY=AI...
cacode analyze . --provider gemini --model gemini-pro
OpenRouter(访问200+型号/访问200+型号)
使用以下任何型号 开放路由 (Anthropic、OpenAI、Meta、Mistral等),带有单个API键。
使用任何模型 开放路由 (Anthropic,OpenAI,Meta,Mistral等)使用单个API密钥。
# ~/.cacode/.env
OPENROUTER_API_KEY=sk-or-...
cacode analyze . --provider openrouter --model anthropic/claude-sonnet-4
cacode analyze . --provider openrouter --model openai/gpt-4o
cacode analyze . --provider openrouter --model meta-llama/llama-3-70b
OpenAI兼容(自定义端点/端点个性化)
使用遵循OpenAI格式的任何API(LM Studio、vLLM、Azure OpenAI等)。
使用遵循OpenAI格式的任何API(LM Studio、VLLM、Azure OpenAI等)。
# ~/.cacode/.env
OPENAI_COMPATIBLE_API_KEY=your-key
# ~/.cacode/.cacode.yml
llm:
provider: openai-compatible
model: my-custom-model
baseUrl: http://localhost:8080/v1
自动检测/自动检测
提供程序是从您的 .env 如果 --provider 未指定:
从您的 .env 如果没有指定 --provider:
| API密钥/变量 | 检测到提供程序/Provedor detectado | 默认模型/Modelo Default |
|---|---|---|
ANTHROPIC_API_KEY |
人类学 | claude-sonnet-4-20250514 |
OPENAI_API_KEY |
OpenAI | gpt-4o |
GEMINI_API_KEY |
双子座 | 双子座专业 |
OPENROUTER_API_KEY |
OpenRouter | 人/claude-sonnet-4 |
| (无-已安装Claude Code) | Claude Code CLI | 十四行诗 |
优先级顺序:Anthropic>OpenAI>Gemini>OpenRouter>Claude Code CLI
Orden de prioridad:人类学>OpenAI>双子座>OpenRouter>克劳德代码CLI
数据库分析/数据库分析
CACode连接到数据库以分析模式、索引、查询和数据流。
CaCode连接到您的数据库以分析架构、索引、查询和数据流。
设置/设置
将数据库凭据添加到 ~/.cacode/.env:
将BD凭据添加到 ~/.cacode/.env:
DB_TYPE=postgresql
DATABASE_URL=postgresql://user:password@localhost:5432/mydb
或者,如果不同的项目使用不同的数据库,请将它们放在项目自己的数据库中 .env:
O、 如果不同的项目使用不同的数据库,请将它们放在 .env 项目本身:
# ./my-project/.env
DB_TYPE=mysql
DATABASE_URL=mysql://user:password@localhost:3306/projectdb
支持的数据库/支持的数据库
| 数据库 | 驱动程序 | URL格式 |
|---|---|---|
| PostgreSQL | pg |
postgresql://user:pass@host:5432/db |
| MySQL/MariaDB | mysql2 |
mysql://user:pass@host:3306/db |
| SQLite | better-sqlite3 |
sqlite:./path/to/file.db |
| MongoDB | mongodb |
mongodb://user:pass@host:27017/db |
ORM检测
从项目文件中自动检测ORM:
从项目文件自动检测您的ORM:
- 棱镜 -从
prisma/schema.prisma或package.json - 类型ORM -从
package.json(typeorm) - Sequelize -从
package.json(sequelize) - 细雨 -从
package.json(drizzle-orm) - SQL炼金术 -从
requirements.txt - Django ORM -从
requirements.txt或manage.py
分析什么/问题分析
- 模式:表、列、类型、主键、外键/制表符、columnas、tipos、PK、FK
- 索引:缺少索引、冗余索引/索引缺陷、索引冗余
- 查询:在代码中发现原始SQL和ORM查询/SQL crudo y query ORM en el codigo
- 数据流:端点->服务->查询->表跟踪/流跟踪
- N+1检测:循环内查询/循环内查询
- 安全:SQL注入,硬编码凭据/Inyeccion SQL,硬编码凭证
- ER图:报告中的视觉实体关系图/Diagrama ER视觉环境报告
MCP集成/集成MCP
CACode发现并安装 MCP(模型上下文协议) 服务器使用专门的工具增强分析。
CaCode发现和安装服务器 MCP(模型上下文协议) 使用专业工具改进分析。
自我发现/自我发现
当 mcp.autoDiscover 启用(默认),CACode:
当 mcp.autoDiscover 启用(默认),cacode:
- 检测您的项目的语言和数据库/检测语言和数据库
- 在MCP注册表中搜索匹配的服务器/Busca服务商
- 通过安装
npx(没有手动安装)/npx(无手动设置) - 对您的代码运行他们的分析工具/对您的代码运行他们的分析工具
- 将结果作为LLM的上下文提供/将结果作为LLM的上下文提供
自定义MCP服务器/自定义MCP服务器
增添 ~/.cacode/.cacode.yml (全球)或 ./project/.cacode.yml (每个项目):
添加到 ~/.cacode/.cacode.yml (全球)o ./project/.cacode.yml (按项目):
mcp:
servers:
- name: my-custom-linter
command: npx
args: ["-y", "@my-org/mcp-linter"]
env:
CUSTOM_VAR: "value"
- name: security-scanner
command: npx
args: ["-y", "@security/mcp-scanner"]
技能整合/技能整合
CACode自动从以下位置获取社区最佳实践 技能s.sh 基于您检测到的框架和语言。这些指导方针被注入LLM提示中,以进行更准确、框架感知的分析。
Cacode自动从 技能s.sh 基于检测到的框架和语言。这些指南被注入LLM的提示符中,以便对该框架进行更准确和更有意识的分析。
它是如何工作的/COM函数a
- CACode检测项目的框架(React、Angular、Laravel等)
- 从以下方面解决匹配技能问题
skills-map.json注册表 - 从GitHub获取技能内容(markdown最佳实践)
- 将它们作为LLM上下文与MCP结果和框架知识一起注入
可用技能/技能争议
| 框架 | 技能 |
|---|---|
| React/Next.js | vercel-react-best-practices, next-best-practices |
| 角度 | angular-component, angular-signals |
| 查看 | vue-best-practices, vue-pinia-best-practices, vue-testing-best-practices |
| 斯维尔特 | svelte5-best-practices |
NestJS。 nestjs-best-practices (架构、安全、数据库、性能) |
|
| Laravel | laravel-specialist (口才、路线、队列) |
| 快递 | nodejs-backend-patterns |
| Django | python-design-patterns, python-performance-optimization |
| TypeScript | vercel-composition-patterns |
python python-anti-patterns, python-type-safety |
|
| 安全 | secrets-management |
| 数据库 | postgresql-table-design, sql-optimization-patterns |
| 建筑 | architecture-patterns |
技能从公共GitHub存储库中获取,并在分析过程中缓存。无需配置。
这些技能是从GitHub的公共回购中获得的,并在分析过程中被隐藏。不需要设置。
Git远程分析/仓库分析Git
直接通过URL分析任何公共Git存储库。只需粘贴GitHub(或GitLab/Bitbucket)链接,CACode就会处理一切:克隆、分析、生成报告和清理。
直接通过URL分析任何公开的Git存储库。它只粘贴GitHub链接(或Gitlab/BitBucket),而CaCode负责一切:克隆、分析、生成报告和清理。
支持的URL格式/支持的URL格式
# GitHub - HTTPS (with or without .git)
cacode analyze https://github.com/user/repo.git
cacode analyze https://github.com/user/repo
# GitLab
cacode analyze https://gitlab.com/user/repo.git
# Bitbucket
cacode analyze https://bitbucket.org/user/repo.git
# Specific branch / Rama especifica
cacode analyze https://github.com/user/repo.git --branch develop
cacode analyze https://github.com/user/repo --branch feature/auth
# SSH (requires SSH key configured / requiere clave SSH configurada)
cacode analyze git@github.com:user/repo.git
它是如何工作的/COM函数a
当您提供Git URL而不是本地路径时,CACode会自动运行以下过程:
当您提供Git URL而不是本地路径时,CaCode会自动执行以下过程:
cacode analyze https://github.com/user/repo.git
│
▼
┌────────────────────────┐
│ 1. Detect Git URL │ Recognizes GitHub, GitLab, Bitbucket
│ Detectar URL Git │ URLs automatically (HTTPS or SSH)
└───────────┬────────────┘
▼
┌────────────────────────┐
│ 2. Shallow clone │ git clone --depth 1 to temp directory
│ Clonar superficial │ Fast: only downloads latest commit
└───────────┬────────────┘
▼
┌────────────────────────┐
│ 3. Full analysis │ Same pipeline as local projects:
│ Analisis completo │ languages, MCP, LLM, DB, report
└───────────┬────────────┘
▼
┌────────────────────────┐
│ 4. Generate report │ HTML report saved locally and
│ Generar reporte │ opened in your browser
└───────────┬────────────┘
▼
┌────────────────────────┐
│ 5. Cleanup │ Temporary clone deleted
│ Limpiar │ automatically after analysis
└────────────────────────┘
循序渐进的例子
英语:
# 1. You find a GitHub project you want to review
# No need to fork, clone, or download anything
# 2. Run CACode with the GitHub URL
cacode analyze https://github.com/expressjs/express.git
# 3. CACode will:
# - Clone the repo to a temp folder (fast shallow clone)
# - Detect languages (JavaScript 92%, etc.)
# - Search and connect MCP servers for detected frameworks
# - Analyze all source code files with the configured LLM
# - Generate an HTML report and open it in your browser
# - Delete the temp folder automatically
# 4. Want a specific branch?
cacode analyze https://github.com/expressjs/express.git --branch 5.x
# 5. Want verbose output to see every step?
cacode analyze https://github.com/user/repo --verbose
西班牙语:
# 1. Encuentras un proyecto en GitHub que quieres revisar
# No necesitas hacer fork, clonar ni descargar nada
# 2. Ejecuta CACode con la URL de GitHub
cacode analyze https://github.com/expressjs/express.git
# 3. CACode hara:
# - Clonar el repo a una carpeta temporal (clone superficial rapido)
# - Detectar lenguajes (JavaScript 92%, etc.)
# - Buscar y conectar MCP servers para los frameworks detectados
# - Analizar todos los archivos de codigo con el LLM configurado
# - Generar un reporte HTML y abrirlo en tu navegador
# - Eliminar la carpeta temporal automaticamente
# 4. ¿Quieres una rama especifica?
cacode analyze https://github.com/expressjs/express.git --branch 5.x
# 5. ¿Quieres ver cada paso en detalle?
cacode analyze https://github.com/user/repo --verbose
重要提示/重要事项
- 仅限公共存储库 (除非您为私有存储库配置了SSH密钥)/ 只有公共休息 (除非您为私人RESP配置了SSH密钥)
- 需要
git安装 在您的系统上/ 需要gitinstalado 在你的系统中 - 用途
--depth 1(浅层克隆)提高速度——只下载最新的提交/Usa--depth 1(表面克隆)对于速度-只下载最后一个提交 - 克隆超时为2分钟-大型REPO可能需要良好的连接/克隆超时为2分钟-大型REPO可能需要良好的连接
- 临时文件夹为 总是清理干净,即使分析失败/La carpeta temporal 总是干净的,即使分析失败
- 这
--branchflag与分支名称和标签一起使用/El-flag--branch它与分支名称和标记一起工作
CI/CD集成
在CI管道中使用CACode来执行代码质量标准。
在您的IC管道中使用Cacode来应用代码质量标准。
GitHub操作
name: Code Review
on: [push, pull_request]
jobs:
review:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install CACode
run: npm install -g cacode
- name: Run Analysis
env:
ANTHROPIC_API_KEY: ${{ secrets.ANTHROPIC_API_KEY }}
run: cacode analyze . --ci --threshold 70 --format json --no-browser
GitLab 的
code-review:
image: node:20
script:
- npm install -g cacode
- cacode analyze . --ci --threshold 70 --format json --no-browser
variables:
ANTHROPIC_API_KEY: $ANTHROPIC_API_KEY
CI Mode Options / CI 模式选项
# Fail if score < 70 (default) / Falla si score < 70 (default)
cacode analyze . --ci
# Custom threshold / Threshold personalizado
cacode analyze . --ci --threshold 80
# JSON output for machine parsing / Salida JSON para parseo automatico
cacode analyze . --ci --threshold 75 --format json
# Only analyze changed files / Solo analizar archivos cambiados
cacode analyze . --ci --since HEAD~1
# Combined / Combinado
cacode analyze . --ci --threshold 80 --format json --no-browser --since HEAD~5
退出代码/退出代码:
0-分数>=阈值(通过/未通过)1-分数<阈值(失败/重新测试)
报告/报告
HTML报告功能/报告HTML特征
- 总体评分:动画甜甜圈图表(0-100)/带有动画甜甜圈图表的总分
- 类别细分每个类别的个人分数
- 发行卡片:具有严重性、描述、建议和代码片段的详细问题/具有严重性、描述、建议和代码片段的问题卡
- 严重性筛选器:切换关键/警告/信息/严重性过滤器
- 类别过滤器:按分析类别筛选/按分析类别过滤
- 搜索:按关键字搜索问题/公共汽车问题por palabra clave
- 暗/亮模式:切换主题/更改主题
- 可折叠截面:展开/折叠类别/分组表
- 数据库部分ER图,表卡,数据库特定问题
- 打印友好:打印清洁输出/打印清洁输出
JSON报告/报告JSON
cacode analyze . --format json
输出结构/输出结构:
{
"projectPath": "./my-project",
"timestamp": "2026-02-23T...",
"overallScore": 72,
"categories": [
{ "category": "security", "score": 65, "issues": [...] },
{ "category": "performance", "score": 80, "issues": [...] }
],
"issues": [...],
"dbAnalysis": {
"schema": { "tables": [...], "relations": [...], "indexes": [...] },
"queriesFound": [...],
"flows": [...]
},
"metadata": {
"totalFiles": 51,
"analyzedFiles": 38,
"duration": 45000,
"provider": "anthropic",
"model": "claude-sonnet-4-20250514"
}
}
自定义规则/自定义规则
在中创建自定义分析规则 .cacode-rules/ 目录(在项目中或全局):
在目录中创建自定义分析规则 .cacode-rules/ (在项目中或全球):
# .cacode-rules/my-rules.yml
rules:
- id: no-console-error
category: best-practices
severity: warning
title: "console.error should use logger"
description: "Use the project logger instead of console.error for consistent error handling."
pattern: "console\\.error\\("
languages: ["TypeScript", "JavaScript"]
- id: no-any-params
category: best-practices
severity: warning
title: "Function parameter typed as any"
description: "Avoid using 'any' for function parameters. Use specific types."
pattern: "\\(\\w+:\\s*any"
languages: ["TypeScript"]
filePattern: "src/.*\\.ts$"
规则栏/规则栏
| 字段/字段 | 必填/必填 | 描述(英语) | 描述(英语) |
|---|---|---|---|
id |
是/Si | 唯一规则标识符 | 标识符unico |
category |
是/是 | best-practices, performance, security, rendering, architecture, database 类别 |
|
severity |
是/是 | critical, warning, info |
严重程度 |
title |
是/Si | 短刊标题 | Titulo corto del issue |
description |
是/是 | 详细说明 | 详细说明 |
pattern |
是/Si | 匹配正则表达式模式 | Patron正则表达式一辆公共汽车 |
languages |
否 | 仅限于特定语言 | 限制特定语言 |
filePattern |
否 | Regex to filter file paths | Regex to filter paths |
suggestion |
否 | 如何解决问题 | Como corrigir el问题 |
分析类别/分析类别
| 类别/类别 | 它检查什么/重访 |
|---|---|
best-practices |
命名约定、DRY、SOLID、错误处理、代码复杂性/约定、DRY、SOLID和错误处理 |
performance |
内存泄漏,O(n^2),同步操作,n+1查询,缓存/Fugas de memoria,操作sincronas,n+1 |
security |
SQL注入、XSS、CSRF、硬编码秘密、eval()、不安全URL/Inyeccion SQL、XSS和secretos硬编码 |
rendering |
重新渲染、缺少记忆、缺少键、代码拆分/重新渲染、记忆错误 |
architecture |
关注分离,循环DEPS,GOD对象,耦合/责任分离,耦合 |
database |
模式规范化、缺少索引、N+1、事务、SQL注入/规范化、索引、事务 |
例子/例子
基本分析
cacode analyze ./my-express-app
使用OpenAI/Analizar对OpenAI进行分析
# Set key once in ~/.cacode/.env: OPENAI_API_KEY=sk-...
cacode analyze . --provider openai --model gpt-4o
用局部模型分析/Analizar con modelo局部
ollama serve # In another terminal / En otra terminal
cacode analyze . --provider ollama --model llama3
仅分析安全和性能/仅分析安全和性能
创建 ./project/.cacode.yml:
analysis:
categories:
- security
- performance
分析远程仓库/Analizar仓库remoto
cacode analyze https://github.com/expressjs/express.git --branch 5.x
脚本的JSON输出/Salida JSON对位脚本
cacode analyze . --format json --no-browser
cat cacode-reports/report-2026-02-23.json | jq '.overallScore'
使用数据库进行全面分析/使用数据库进行全面分析
# ~/.cacode/.env already has:
# DB_TYPE=postgresql
# DATABASE_URL=postgresql://user:pass@localhost:5432/mydb
cacode analyze . --verbose
产量/Salida:
✓ Usando openrouter API (anthropic/claude-sonnet-4) para analisis profundo
[1/8] Detectando lenguajes...
✓ Lenguajes: TypeScript (65%), Python (30%), SQL (5%)
✓ Frameworks: NestJS, Prisma
[2/8] Detectando base de datos...
✓ postgresql via .env (ORM: Prisma)
[3/8] Configurando MCP servers...
✓ 2 MCP server(s) conectados
[4/8] Ejecutando MCP skills...
ℹ MCP: 15 tool results + 3 resources obtenidos
[5/8] Obteniendo skills de best practices...
✓ 2 skills obtenidos de skills.sh
[6/8] Analizando codigo...
ℹ 38 archivos de codigo recolectados
[7/8] Analizando base de datos...
✓ 12 tablas, 8 relaciones, 15 indices
[8/8] Generando reporte...
✓ Reporte: ./cacode-reports/report-2026-02-24.html
Score: 72/100
Critical: 3 Warning: 12 Info: 24
单个文件分析/单个文件分析:
cacode analyze ./src/auth/login.ts
ℹ Archivo: login.ts
[1/4] Detectando lenguajes...
✓ Lenguajes: TypeScript (100%)
✓ Frameworks: Express
[2/4] Analizando codigo...
ℹ Archivo: login.ts (TypeScript, 2450 bytes)
[3/4] Generando reporte...
✓ Reporte: ./cacode-reports/report-2026-02-24.html
Score: 68/100
Critical: 1 Warning: 4 Info: 2
所有环境变量/所有环境变量
所有变量都进入 ~/.cacode/.env:
所有变量都在 ~/.cacode/.env:
| 变量 | 描述 (EN) | 描述 (ES) |
|---|---|---|
ANTHROPIC_API_KEY |
Anthropic/Claude API密钥 | API密钥de Anthropic/Claude |
OPENAI_API_KEY |
OpenAI API密钥 | API密钥de OpenAI |
GEMINI_API_KEY |
Google Gemini API密钥 | API密钥de Google Gemini |
OPENROUTER_API_KEY |
OpenRouter API密钥(sk-or-…) | API密钥de OpenRouter |
OPENAI_COMPATIBLE_API_KEY |
自定义OpenAI兼容API密钥 | API密钥para API兼容con OpenAI |
DB_TYPE |
数据库类型: postgresql, mysql, mongodb, sqlite |
数据库类型 |
DATABASE_URL |
数据库连接字符串 | BD的字符串解连接 |
发展/发展
# Clone the repo / Clonar el repo
git clone https://github.com/your-org/cacode.git
cd cacode
# Install dependencies / Instalar dependencias
npm install
# Build / Compilar
npm run build
# Run tests / Ejecutar tests
npm test
# Watch mode / Modo watch
npm run dev
许可证/执照
麻省理工学院
