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\\.cacode\ | | macOS | /Users//.cacode/ | | Linux | /home//.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 serve2.(可选)设置数据库凭据/(可选)配置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 --forcecacode 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 | LLM提供者: anthropic, openai, gemini, ollama, openrouter, openai-compatible, claude-code | 供应商LLM |
--model LLM模型使用 | ||
| `--config | ||
| ` | 通往 .cacode.yml | 文件路径 .cacode.yml |
--output | 报表输出目录 | 报表输出目录 |
--no-browser | 不要在浏览器中打开报告 | 不要在浏览器中打开报告 |
-v, --verbose | 启用调试日志记录 | Habilitar日志去授权 |
--ci CI mode: non-zero exit if score \` | CI模式的最低得分(默认值:70) | CI模式下的最低得分 |
--format | 输出格式: html 或 json | 输出格式: html 哦 json |
--since | 自Git Ref以来仅分析更改的文件 | 仅分析自Git Ref以来更改的文件 |
| `--branch | ||
| ` | 要克隆的Git分支(远程存储库) | Rama de Git a clonar(远程存储) |
--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-20250514OpenAI(GPT)
# ~/.cacode/.env
OPENAI_API_KEY=sk-...cacode analyze . --provider openai --model gpt-4oOllama(本地模型/本地模型)
不需要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-proOpenRouter(访问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-70bOpenAI兼容(自定义端点/端点个性化)
使用遵循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-browserGitLab 的
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_KEYCI Mode Options / CI 模式选项
# Fail if score =阈值(通过/未通过)
- `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
______________________________________________________________________
## 许可证/执照
麻省理工学院