Cortex项目
让你的AI编码助手变得更聪明。
Project Cortex提供了对以下内容的深入语义理解 代码和文档 从LLM驱动的编码工具,如Claude Code、Cursor等。通过解析、索引和分块你的代码和文档到一个可搜索的向量数据库中,它使人工智能助手不仅能够掌握代码的功能,还能掌握它存在的原因——揭示文档中的架构决策、设计模式和团队知识。
它做什么
Cortex项目有两个主要组成部分:
- 智能代码和文档索引器 -从项目中提取结构化知识:
代码提取 (通过树保姆):
- 符号:高级概述(包、导入、带行号的类型/函数名称) - 定义:完整的类型定义、接口和函数签名 - 数据:常量和初始化变量
文档提取:
- 语义组块:当令牌限制允许时,按标题/节拆分文档 - 建筑文脉:表面设计文件、ADR、最佳实践 - 多格式支持:Markdown、RST和文本文件
- MCP服务器 -将索引块加载到内存中的向量数据库(chromem-go)中,并通过模型上下文协议公开它们,使AI编码助手能够同时对代码和文档进行语义搜索。
为什么选择Cortex项目?
- 架构理解LLM访问设计决策、系统架构和代码背后的“为什么”,而不仅仅是“什么”
- 语义搜索:按含义查找相关代码和文档,而不仅仅是关键字
- 统一知识库:同时搜索实现和基本原理-弥合代码和意图之间的差距
- 隐私第一:支持敏感代码库的本地嵌入模型
- 快速增量更新:仅重新处理更改的文件
- Git友好:存储为JSON文件的索引,可以进行版本控制
快速开始
安装
选项1:通过安装 go install (推荐)
go install github.com/mvp-joe/project-cortex/cmd/cortex@v1.3.1这将安装 cortex CLI包括:
- 代码和文档索引器
- 用于AI助手的MCP服务器
选项2:下载预构建的二进制文件
从以下网址下载适用于您平台的最新版本 :
- 皮质 -用于索引和MCP服务器的主CLI
为您的项目建立索引
导航到项目目录并运行:
# One-time indexing
cortex index
# Watch mode for active development
cortex index --watch这创建了一个 .cortex/ 目录包含:
.cortex/
config.yml # Configuration
chunks/
code-symbols.json # High-level code map
code-definitions.json # Type/function signatures
code-data.json # Constants and values
doc-chunks.json # Documentation (README, guides, etc.)这 doc-chunks.json 该文件包含分块文档(在令牌限制内按标题/部分拆分),使您的AI助手能够理解架构决策、设计模式和实现选择背后的推理。
配置MCP集成
选项1:按项目配置(推荐)
创建 .mcp.json 在项目根目录中:
{
"mcpServers": {
"cortex": {
"command": "cortex",
"args": ["mcp"]
}
}
}选项2:全局配置
添加到 ~/.claude/mcp.json:
{
"mcpServers": {
"cortex": {
"command": "cortex",
"args": ["mcp"],
"cwd": "/path/to/your/project"
}
}
}看 MCP集成指南 有关详细的设置说明。
支持的语言
- 去
- Types/JavaScript(包括JSX/TSX)
- python
- 锈
- C/C++
- PHP
- 红宝石
- Java
看 语言支持 了解从每种语言中提取的内容的详细信息。
运作原理
- 解析:Tree sitter分析代码的AST
- 提取:三层提取创建结构化表示
- 块:代码和文档被分块以进行最佳向量搜索
- 嵌入:使用可配置模型嵌入内容
- 索引:块存储为版本控制的JSON文件
- 搜索:MCP服务器将块加载到内存中的向量数据库中,用于语义查询
如需深入了解,请参阅 建筑.
关于嵌入
Cortex项目使用 向量嵌入 启用语义搜索-按含义而不仅仅是关键字查找代码和文档。默认情况下,Cortex使用 皮质嵌入,一个独立的嵌入服务器,它:
- 作为共享服务在所有项目中运行
- 将ML模型一次性加载到内存中(而不是每个项目)
- 提供本地、隐私优先的嵌入(你的代码永远不会离开你的机器)
- 需要时自动下载并启动-无需手动设置
关于二进制大小的说明:The cortex-embed 二进制文件约为300MB,因为它捆绑了完整的Python 3.11运行时和ML库(句子转换器、PyTorch)。这种设计选择优先考虑零依赖安装而不是文件大小——用户不需要管理Python环境、pip依赖关系或模型下载。二进制文件下载一次到 ~/.cortex/bin/ 并在所有项目中共享。
看 皮质嵌入文档 了解技术细节。
未来的支持:我们计划为喜欢远程嵌入提供商的用户支持远程嵌入提供商(OpenAI、Anthropic等)。
配置
创建或编辑 .cortex/config.yml:
例子:
#Embedding model configuration
embedding:
provider: "local" # or "openai"
model: "BAAI/bge-small-en-v1.5"
dimensions: 384 # Vector size (must match model)
endpoint: "http://localhost:8080/embed"
# Indexing options
indexing:
ignore_patterns:
- "node_modules/**"
- "vendor/**"
- ".git/**"
max_chunk_size: 1000
# Languages to index (default: all supported)
languages:
- go
- typescript
- python看 配置指南 对于所有选项。
发展
此项目使用 任务 为了建设和发展。常用命令:
# List all available tasks
task --list
# Build binaries
task build # Build cortex CLI
task build:embed # Build cortex-embed with Python runtime
task build:cross:all # Cross-compile for all platforms
# Run
task run # Build and run cortex
task run:embed # Build and run embedding server
# Testing & Quality
task test # Run tests
task test:coverage # Run tests with coverage report
task check # Run all checks (fmt, vet, lint, test)
# Development
task fmt # Format code
task lint # Run linter
task info # Show build information
# Python Dependencies (for cortex-embed)
task python:deps:darwin-arm64 # Generate for macOS ARM64 (fast)
task python:deps:all # Generate for all platforms (slow)
# Clean
task clean # Remove build artifacts
task clean:all # Remove builds and Python deps看 task --list 对于所有可用命令,请检查 任务文件.yml.
添加语言支持
看 贡献指南 了解如何添加新的语言解析器。
文档
用例
- 大型代码库:维护数千个文件的架构上下文-了解系统设计,而不仅仅是单个功能
- 面向人类和人工智能的入职培训:新工程师掌握设计理念、最佳实践以及技术决策背后的“为什么”
- 遗留系统:发现仅从代码中不明显的架构决策和约束
- 复杂域:理解需要代码和广泛的领域知识文档的项目
- 记录良好的项目:投资于设计文档、ADR和架构指南的团队受益于对这些知识的语义访问
- 受监管行业:医疗、财务或合规性繁重的代码库,其中的文档解释了限制和要求
- 了解权衡:关于为什么选择方法A而不是方法B的表面记录讨论
许可证
Cortex项目根据Apache许可证2.0获得许可。看 许可证 获取完整的许可证文本。
版权所有2025项目Cortex贡献者
贡献
欢迎投稿!看 贡献指南.
