CocoIndex Code
为代码代理提供本地 AST 语义搜索与结构化检索。
- Star 数
- ★ 3k
- 最近更新
- 2 天前
- License
- Apache-2.0
- 主语言
- Python
- FA 评分
- 66/100 · 存在缺口
30 秒速览
- 运行形态
- 可在哪里用
- 通用 · 跨平台Codex · Claude Code · OpenAI API
- 费用
- 软件免费,模型调用费用自付
- 上手难度
- 低 · 几分钟可跑通
- 开始前需要
- 典型场景
- 刚接手陌生 Python、TypeScript 或 Rust 仓库的开发者,需要用“用户会话如何管理”这类描述定位实现。
- 不适合
- 在 macOS 上依赖 Docker 运行本地嵌入推理的团队(Docker 无法使用 Metal GPU)
- 需要 ccc grep 结构搜索的用户,该功能需本地构建 CocoIndex
- 源码审查
- 66/100 · 存在缺口
这个 Agent 能做什么,适合哪些场景?
CocoIndex Code 是一个面向代码库的嵌入式语义搜索 CLI,底层使用 CocoIndex 的 Rust 索引引擎。它通过 ccc 命令初始化项目、构建或增量更新索引,并返回带路径、语言、代码内容、行号和相似度的匹配代码块。除了 CLI,它可作为 ccc mcp stdio 服务器向 Codex、Claude Code、OpenCode 和 Kilo Code 提供 search 工具,也提供可安装给兼容代理的 ccc skill。索引和项目设置默认保存在项目的 .cocoindex_code 目录,后台 daemon 会在首次使用时启动并保持嵌入模型热加载。部署可使用原生 Python 工具链,或使用持久 Docker 容器运行。
执行 ccc init 创建全局与项目 YAML 设置,并将 .cocoindex_code/ 写入 .gitignore;ccc index 会建立或更新索引,且文档说明它只重新索引变更文件。ccc search <query> 使用语义相似度检索,可按 --lang、--path、--offset、--limit 过滤,并可用 --refresh 先更新索引。ccc grep <pattern> 使用 CocoIndex 的 code_match 按语法结构匹配源码,无需索引、daemon 或嵌入模型。运行 ccc mcp 时,它公开 search(query, limit, offset, refresh_index, languages, paths) 工具,返回代码块及其元数据。嵌入可来自本地 SentenceTransformers,或通过 LiteLLM 使用云端提供商。
- 刚接手陌生 Python、TypeScript 或 Rust 仓库的开发者,需要用“用户会话如何管理”这类描述定位实现。
- 使用 Codex 或 Claude Code 的工程师,希望代理通过 MCP 的 search 工具检索相关代码块。
- 不确定函数或类名、普通文本 grep 难以命中的维护者,需要按自然语言概念搜索实现。
- 需要查找函数定义、调用或类结构的开发者,可用 ccc grep 编写 AST 模式而非依赖格式一致的文本。
- 希望在团队或受限主机上使用固定运行环境的工程师,可用持久 Docker 容器保持 daemon 和模型缓存。
如何安装或部署这个 Agent?
本地安装(包含无需 API 密钥的本地嵌入):
pipx install 'cocoindex-code[full]'或:
uv tool install --upgrade 'cocoindex-code[full]'进入目标代码库后首次可运行:
ccc init
ccc index
ccc search "authentication logic"[full] 默认使用本地 Snowflake/snowflake-arctic-embed-xs。若安装 slim 版 cocoindex-code,则需配置云端嵌入提供商及其 API 密钥。
如何使用这个 Agent?
直接检索:ccc search "database schema";按语言过滤:ccc search --lang python --lang markdown schema;先刷新再查:ccc search --refresh "query handler"。结构化检索示例:ccc grep 'def \NAME(\(ARGS*\)):'。给 Codex 注册 MCP:codex mcp add cocoindex-code -- ccc mcp;随后 MCP 的 search 工具可接受 query、limit、offset、refresh_index、languages 和 paths。安装 ccc skill 可运行:npx skills add cocoindex-io/cocoindex-code。
这个 Agent 有哪些优点和局限?
- 同时提供语义检索和无需索引的 ccc grep AST 结构化检索,适合不同的代码定位任务。
- ccc mcp 以 stdio 暴露明确的 search 工具,可直接接入已文档化的 Codex 和 Claude Code 工作流。
- 支持本地 SentenceTransformers,也可借助 LiteLLM 使用多种云端嵌入服务;本地默认模型不需要 API 密钥。
- 索引嵌入项目目录,并通过后台 daemon 保持模型热加载;Docker 部署可让容器内 daemon 跨会话保持运行。
- 本地完整安装会引入约 1 GB 的 torch 与 transformers 依赖;完整 Docker 镜像约 5 GB。
- slim 安装依赖云端嵌入提供商和 API 密钥,使用时会增加网络与供应商配置要求。
- 更换嵌入模型后需要执行 ccc reset && ccc index,因为向量维度可能不同。
- ccc grep 依赖 CocoIndex 的 code_match;文档说明在该功能发布前需要使用本地 CocoIndex 构建。
这个 Agent 与同类方案有什么区别?
与相关度最高的同类 agent 并排比较关键指标。
| Agent | 源码审查 | 形态 / 费用 | Star | 最近更新 | 主语言 | 完整支持的平台 |
|---|---|---|---|---|---|---|
| CocoIndex Code 当前 | 66 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 3k | 2 天前 | Python | Codex · Claude Code · OpenAI API |
| Claude Context — 基于语义搜索的代码库上下文插件 | 59 · 缺口较多 | MCP 服务器免费 + 模型费 | ★ 13k | 3 个月前 | TypeScript | Codex · Claude Code · OpenAI API |
| AOCI-CODE:给编码智能体的代码库认知索引 | 82 · 表现良好 | 命令行工具免费 + 模型费 | ★ 1.9k | 1 天前 | Go | Codex · Claude Code |
| Arbor 自主研究优化器 | 63 · 存在缺口 | 命令行工具免费 + 模型费 | ★ 1.1k | 5 天前 | Python | Codex · Claude Code · OpenAI API · Claude API |
FollowAgents 如何评估这个 Agent?
查看各维度的扣分理由
CLI、Skill 和 MCP 都围绕当前代码库索引与搜索;README 说明默认工作目录范围、配置文件、可选云端或本地嵌入,以及 Docker 挂载范围,并提示挂载整个 HOME 会赋予容器读写权限。`ccc reset` 有确认选项且 `-f` 可跳过,但 `ccc index`、MCP 搜索刷新和插件编辑钩子会读取或更新索引,证据未展示逐次确认或完整敏感数据处理策略。依赖有版本范围但没有依赖审计证据;代码及文档提到守护进程、模型下载和云端提供商,外部效应说明不完整。重置可删索引,`--all` 还会删除设置,恢复依赖重建;作者和仓库身份在元数据中有署名,但发布者未获验证,故来源归属有限。
README、Skill、CLI/MCP 说明与实现片段对初始化、搜索、刷新和守护进程的大体行为相互吻合;静态证据未能覆盖所有实现细节。核心 CocoIndex 依赖限制在 1.0.x 范围,其他依赖仍使用下限范围,且依赖可用性或兼容矩阵证据有限。CLI 对缺失设置、守护进程启动失败和搜索失败提供错误消息,MCP 捕获异常并返回失败结果;未见足以支持全面错误恢复评分的证据。
文档具体覆盖 Claude Code、Grok、Oh My Pi、MCP、直接 CLI、Docker、云端和本地嵌入等开发者场景,语言与路径过滤、分页及技能触发条件也写得明确。能力边界有所交代:语义搜索依赖索引与嵌入,结构搜索本地运行但依赖尚未发布的 CocoIndex 功能。多种安装和运行环境均有说明,但 Python、Docker、模型体积及平台差异带来适配成本。
README 按安装、集成、CLI、Docker、配置和功能组织,包含多平台安装步骤、命令示例、故障管理说明与限制;CLAUDE.md 是仓库开发指导,不是产品指令。命令和插件名称总体稳定,但包名、CLI、插件及遗留入口并存。许可证文件与项目元数据一致。样本有 VCS 版本配置和发布工作流,但没有清晰的面向用户变更日志证据;安全联系和修复范围明确,长期维护责任及响应承诺则有限。
搜索结果提供文件、语言、代码、行号和相似度,MCP/CLI 支持限制结果数、分页和过滤;`ccc grep` 提供不需索引的结构搜索,体现实际补充价值。README 声称节省 token 和快速设置,但此处没有量化证据。全量本地嵌入需要约 1 GB 依赖或约 5 GB Docker 镜像,云端方案需要密钥;因此收益取决于使用方式和资源成本。
README 中的命令、选项和结果字段可在 Skill、CLI、MCP 实现、配置元数据及测试夹具中找到部分对应,CI 与发布工作流也能支持项目结构和发布流程的描述。README 的 token 节省和设置时间属于未由所给材料验证的宣传性主张;样本文件只覆盖部分代码,测试夹具不能证明测试实际通过。评分因此限于可追溯的静态证据,不将主张当作已验证结果。
- Docker 快速启动示例会挂载整个 HOME 并赋予容器读写权限;需要更窄访问范围时,应按文档改挂载目标目录。
- 语义搜索可能将代码发送给配置的云端嵌入提供商;审查并配置提供商与密钥,且本地嵌入会占用较多存储和计算资源。
- `ccc reset --all` 会删除项目设置;结构搜索依赖尚未发布的 CocoIndex 功能。
最近版本
来自该项目 GitHub Releases 的最新发布记录,说明为上游原文摘录,未经本站改写或测试。
-
发布说明摘录
What's Changed * fix(indexer): reprocess unchanged files when chunking config changes by @L4XB in https://github.com/cocoindex-io/cocoindex-code/pull/287 * fix(daemon): guard socket unlinking on shutdown by checking bound node identity by @pranav440 in https://github.com/cocoindex-io/cocoindex-code/pull/291 * fix(indexer): fingerprint chunkers at import time, pass language overrides as memo arg by @georgeh0 in https://github.com/cocoindex-io/cocoindex-code/pull/299 …在 GitHub 查看 ↗ -
发布说明摘录
What's Changed * Add Oh My Pi marketplace catalog by @MickaelV0 in https://github.com/cocoindex-io/cocoindex-code/pull/277 * feat: add Elixir language support by @dclausen in https://github.com/cocoindex-io/cocoindex-code/pull/279 * feat(omp): session-start and post-edit index hooks by @MickaelV0 in https://github.com/cocoindex-io/cocoindex-code/pull/281 * chore(deps): bump transformers from 5.5.0 to 5.10.1 by @dependabot[bot] in https://github.com/cocoindex-io/cocoindex-code/pull/282 …在 GitHub 查看 ↗ -
发布说明摘录
What's Changed * fix(search): surface daemon tracebacks and reject NULL KNN distances by @georgeh0 in https://github.com/cocoindex-io/cocoindex-code/pull/271 Full Changelog: https://github.com/cocoindex-io/cocoindex-code/compare/v0.2.40...v0.2.41在 GitHub 查看 ↗
常见问题
是否必须使用云端 API 或付费模型?
它会读取或上传我的源码吗?
索引是否需要每次手动重建?
MCP 搜索会返回什么?
谢谢反馈,我们会据此改进页面。