[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"similar-cocoindex-io--cocoindex-code":3,"tool-cocoindex-io--cocoindex-code":64},[4,17,27,35,48,56],{"id":5,"name":6,"github_repo":7,"description_zh":8,"stars":9,"difficulty_score":10,"last_commit_at":11,"category_tags":12,"status":16},3808,"stable-diffusion-webui","AUTOMATIC1111\u002Fstable-diffusion-webui","stable-diffusion-webui 是一个基于 Gradio 构建的网页版操作界面，旨在让用户能够轻松地在本地运行和使用强大的 Stable Diffusion 图像生成模型。它解决了原始模型依赖命令行、操作门槛高且功能分散的痛点，将复杂的 AI 绘图流程整合进一个直观易用的图形化平台。\n\n无论是希望快速上手的普通创作者、需要精细控制画面细节的设计师，还是想要深入探索模型潜力的开发者与研究人员，都能从中获益。其核心亮点在于极高的功能丰富度：不仅支持文生图、图生图、局部重绘（Inpainting）和外绘（Outpainting）等基础模式，还独创了注意力机制调整、提示词矩阵、负向提示词以及“高清修复”等高级功能。此外，它内置了 GFPGAN 和 CodeFormer 等人脸修复工具，支持多种神经网络放大算法，并允许用户通过插件系统无限扩展能力。即使是显存有限的设备，stable-diffusion-webui 也提供了相应的优化选项，让高质量的 AI 艺术创作变得触手可及。",162132,3,"2026-04-05T11:01:52",[13,14,15],"开发框架","图像","Agent","ready",{"id":18,"name":19,"github_repo":20,"description_zh":21,"stars":22,"difficulty_score":23,"last_commit_at":24,"category_tags":25,"status":16},1381,"everything-claude-code","affaan-m\u002Feverything-claude-code","everything-claude-code 是一套专为 AI 编程助手（如 Claude Code、Codex、Cursor 等）打造的高性能优化系统。它不仅仅是一组配置文件，而是一个经过长期实战打磨的完整框架，旨在解决 AI 代理在实际开发中面临的效率低下、记忆丢失、安全隐患及缺乏持续学习能力等核心痛点。\n\n通过引入技能模块化、直觉增强、记忆持久化机制以及内置的安全扫描功能，everything-claude-code 能显著提升 AI 在复杂任务中的表现，帮助开发者构建更稳定、更智能的生产级 AI 代理。其独特的“研究优先”开发理念和针对 Token 消耗的优化策略，使得模型响应更快、成本更低，同时有效防御潜在的攻击向量。\n\n这套工具特别适合软件开发者、AI 研究人员以及希望深度定制 AI 工作流的技术团队使用。无论您是在构建大型代码库，还是需要 AI 协助进行安全审计与自动化测试，everything-claude-code 都能提供强大的底层支持。作为一个曾荣获 Anthropic 黑客大奖的开源项目，它融合了多语言支持与丰富的实战钩子（hooks），让 AI 真正成长为懂上",140436,2,"2026-04-05T23:32:43",[13,15,26],"语言模型",{"id":28,"name":29,"github_repo":30,"description_zh":31,"stars":32,"difficulty_score":23,"last_commit_at":33,"category_tags":34,"status":16},2271,"ComfyUI","Comfy-Org\u002FComfyUI","ComfyUI 是一款功能强大且高度模块化的视觉 AI 引擎，专为设计和执行复杂的 Stable Diffusion 图像生成流程而打造。它摒弃了传统的代码编写模式，采用直观的节点式流程图界面，让用户通过连接不同的功能模块即可构建个性化的生成管线。\n\n这一设计巧妙解决了高级 AI 绘图工作流配置复杂、灵活性不足的痛点。用户无需具备编程背景，也能自由组合模型、调整参数并实时预览效果，轻松实现从基础文生图到多步骤高清修复等各类复杂任务。ComfyUI 拥有极佳的兼容性，不仅支持 Windows、macOS 和 Linux 全平台，还广泛适配 NVIDIA、AMD、Intel 及苹果 Silicon 等多种硬件架构，并率先支持 SDXL、Flux、SD3 等前沿模型。\n\n无论是希望深入探索算法潜力的研究人员和开发者，还是追求极致创作自由度的设计师与资深 AI 绘画爱好者，ComfyUI 都能提供强大的支持。其独特的模块化架构允许社区不断扩展新功能，使其成为当前最灵活、生态最丰富的开源扩散模型工具之一，帮助用户将创意高效转化为现实。",107662,"2026-04-03T11:11:01",[13,14,15],{"id":36,"name":37,"github_repo":38,"description_zh":39,"stars":40,"difficulty_score":23,"last_commit_at":41,"category_tags":42,"status":16},2268,"ML-For-Beginners","microsoft\u002FML-For-Beginners","ML-For-Beginners 是由微软推出的一套系统化机器学习入门课程，旨在帮助零基础用户轻松掌握经典机器学习知识。这套课程将学习路径规划为 12 周，包含 26 节精炼课程和 52 道配套测验，内容涵盖从基础概念到实际应用的完整流程，有效解决了初学者面对庞大知识体系时无从下手、缺乏结构化指导的痛点。\n\n无论是希望转型的开发者、需要补充算法背景的研究人员，还是对人工智能充满好奇的普通爱好者，都能从中受益。课程不仅提供了清晰的理论讲解，还强调动手实践，让用户在循序渐进中建立扎实的技能基础。其独特的亮点在于强大的多语言支持，通过自动化机制提供了包括简体中文在内的 50 多种语言版本，极大地降低了全球不同背景用户的学习门槛。此外，项目采用开源协作模式，社区活跃且内容持续更新，确保学习者能获取前沿且准确的技术资讯。如果你正寻找一条清晰、友好且专业的机器学习入门之路，ML-For-Beginners 将是理想的起点。",84991,"2026-04-05T10:45:23",[14,43,44,45,15,46,26,13,47],"数据工具","视频","插件","其他","音频",{"id":49,"name":50,"github_repo":51,"description_zh":52,"stars":53,"difficulty_score":10,"last_commit_at":54,"category_tags":55,"status":16},3128,"ragflow","infiniflow\u002Fragflow","RAGFlow 是一款领先的开源检索增强生成（RAG）引擎，旨在为大语言模型构建更精准、可靠的上下文层。它巧妙地将前沿的 RAG 技术与智能体（Agent）能力相结合，不仅支持从各类文档中高效提取知识，还能让模型基于这些知识进行逻辑推理和任务执行。\n\n在大模型应用中，幻觉问题和知识滞后是常见痛点。RAGFlow 通过深度解析复杂文档结构（如表格、图表及混合排版），显著提升了信息检索的准确度，从而有效减少模型“胡编乱造”的现象，确保回答既有据可依又具备时效性。其内置的智能体机制更进一步，使系统不仅能回答问题，还能自主规划步骤解决复杂问题。\n\n这款工具特别适合开发者、企业技术团队以及 AI 研究人员使用。无论是希望快速搭建私有知识库问答系统，还是致力于探索大模型在垂直领域落地的创新者，都能从中受益。RAGFlow 提供了可视化的工作流编排界面和灵活的 API 接口，既降低了非算法背景用户的上手门槛，也满足了专业开发者对系统深度定制的需求。作为基于 Apache 2.0 协议开源的项目，它正成为连接通用大模型与行业专有知识之间的重要桥梁。",77062,"2026-04-04T04:44:48",[15,14,13,26,46],{"id":57,"name":58,"github_repo":59,"description_zh":60,"stars":61,"difficulty_score":10,"last_commit_at":62,"category_tags":63,"status":16},2181,"OpenHands","OpenHands\u002FOpenHands","OpenHands 是一个专注于 AI 驱动开发的开源平台，旨在让智能体（Agent）像人类开发者一样理解、编写和调试代码。它解决了传统编程中重复性劳动多、环境配置复杂以及人机协作效率低等痛点，通过自动化流程显著提升开发速度。\n\n无论是希望提升编码效率的软件工程师、探索智能体技术的研究人员，还是需要快速原型验证的技术团队，都能从中受益。OpenHands 提供了灵活多样的使用方式：既可以通过命令行（CLI）或本地图形界面在个人电脑上轻松上手，体验类似 Devin 的流畅交互；也能利用其强大的 Python SDK 自定义智能体逻辑，甚至在云端大规模部署上千个智能体并行工作。\n\n其核心技术亮点在于模块化的软件智能体 SDK，这不仅构成了平台的引擎，还支持高度可组合的开发模式。此外，OpenHands 在 SWE-bench 基准测试中取得了 77.6% 的优异成绩，证明了其解决真实世界软件工程问题的能力。平台还具备完善的企业级功能，支持与 Slack、Jira 等工具集成，并提供细粒度的权限管理，适合从个人开发者到大型企业的各类用户场景。",70626,"2026-04-05T22:51:36",[26,15,13,45],{"id":65,"github_repo":66,"name":67,"description_en":68,"description_zh":69,"ai_summary_zh":70,"readme_en":71,"readme_zh":72,"quickstart_zh":73,"use_case_zh":74,"hero_image_url":75,"owner_login":76,"owner_name":77,"owner_avatar_url":78,"owner_bio":79,"owner_company":80,"owner_location":80,"owner_email":81,"owner_twitter":82,"owner_website":83,"owner_url":84,"languages":85,"stars":98,"forks":99,"last_commit_at":100,"license":101,"difficulty_score":102,"env_os":103,"env_gpu":104,"env_ram":105,"env_deps":106,"category_tags":114,"github_topics":115,"view_count":10,"oss_zip_url":80,"oss_zip_packed_at":80,"status":16,"created_at":126,"updated_at":127,"faqs":128,"releases":159},3767,"cocoindex-io\u002Fcocoindex-code","cocoindex-code","A super light-weight embedded code search engine CLI (AST based) that just works - saves 70% token and improves speed for coding agent  🌟 Star if you like it!","cocoindex-code 是一款超轻量级的嵌入式代码搜索命令行工具，专为提升编程效率而生。它基于抽象语法树（AST）进行语义级代码搜索，能够精准理解代码逻辑而非仅仅匹配文本，从而帮助开发者在庞大的代码库中快速定位所需功能。\n\n在使用 AI 编程助手（如 Claude、Cursor 等）时，cocoindex-code 能显著减少上下文传递的 Token 消耗，节省幅度高达 70%，同时大幅提升搜索与响应速度。它解决了传统关键词搜索不够智能、以及直接让 AI 阅读全量代码导致成本高昂且缓慢的痛点。\n\n这款工具非常适合软件开发者、技术团队以及经常使用 AI 辅助编程的人员。其最大亮点在于“零配置”即可上手：安装后无需复杂初始化，内置本地嵌入模型，完全免费且保护隐私。此外，它支持通过 Skill 或 MCP 协议无缝集成到各类 Coding Agent 中，让 AI 自动调用语义搜索能力，实现更智能的代码理解与生成。底层依托高性能的 Rust 引擎 CocoIndex，确保了极速的数据处理体验。无论是日常开发调试，还是维护大型项目，cocoindex-code 都能成为你得力的智能搜索伙","cocoindex-code 是一款超轻量级的嵌入式代码搜索命令行工具，专为提升编程效率而生。它基于抽象语法树（AST）进行语义级代码搜索，能够精准理解代码逻辑而非仅仅匹配文本，从而帮助开发者在庞大的代码库中快速定位所需功能。\n\n在使用 AI 编程助手（如 Claude、Cursor 等）时，cocoindex-code 能显著减少上下文传递的 Token 消耗，节省幅度高达 70%，同时大幅提升搜索与响应速度。它解决了传统关键词搜索不够智能、以及直接让 AI 阅读全量代码导致成本高昂且缓慢的痛点。\n\n这款工具非常适合软件开发者、技术团队以及经常使用 AI 辅助编程的人员。其最大亮点在于“零配置”即可上手：安装后无需复杂初始化，内置本地嵌入模型，完全免费且保护隐私。此外，它支持通过 Skill 或 MCP 协议无缝集成到各类 Coding Agent 中，让 AI 自动调用语义搜索能力，实现更智能的代码理解与生成。底层依托高性能的 Rust 引擎 CocoIndex，确保了极速的数据处理体验。无论是日常开发调试，还是维护大型项目，cocoindex-code 都能成为你得力的智能搜索伙伴。","\u003Cp align=\"center\">\n\u003Cimg width=\"2428\" alt=\"cocoindex code\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcocoindex-io_cocoindex-code_readme_369289efe9d3.png\" \u002F>\n\u003C\u002Fp>\n\n\n\u003Ch1 align=\"center\">AST-based semantic code search that just works\u003C\u002Fh1>\n\n![effect](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcocoindex-io_cocoindex-code_readme_905934cd31b5.png)\n\n\nA lightweight, effective **(AST-based)** semantic code search tool for your codebase. Built on [CocoIndex](https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex) — a Rust-based ultra performant data transformation engine. Use it from the CLI, or integrate with Claude, Codex, Cursor — any coding agent — via [Skill](#skill-recommended) or [MCP](#mcp-server).\n\n- Instant token saving by 70%.\n- **1 min setup** — install and go, zero config needed!\n\n\u003Cdiv align=\"center\">\n\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1314801574169673738?logo=discord&color=5B5BD6&logoColor=white)](https:\u002F\u002Fdiscord.com\u002Finvite\u002FzpA9S2DR7s)\n[![GitHub](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fcocoindex-io\u002Fcocoindex?color=5B5BD6)](https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex)\n[![Documentation](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDocumentation-394e79?logo=readthedocs&logoColor=00B9FF)](https:\u002F\u002Fcocoindex.io\u002Fdocs\u002Fgetting_started\u002Fquickstart)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache%202.0-5B5BD6?logoColor=white)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FApache-2.0)\n\u003C!--[![PyPI - Downloads](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fdm\u002Fcocoindex)](https:\u002F\u002Fpypistats.org\u002Fpackages\u002Fcocoindex) -->\n[![PyPI Downloads](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcocoindex-io_cocoindex-code_readme_2db37a3b2783.png)](https:\u002F\u002Fpepy.tech\u002Fprojects\u002Fcocoindex)\n[![CI](https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex\u002Factions\u002Fworkflows\u002FCI.yml\u002Fbadge.svg?event=push&color=5B5BD6)](https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex\u002Factions\u002Fworkflows\u002FCI.yml)\n[![release](https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex\u002Factions\u002Fworkflows\u002Frelease.yml\u002Fbadge.svg?event=push&color=5B5BD6)](https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex\u002Factions\u002Fworkflows\u002Frelease.yml)\n\n\n🌟 Please help star [CocoIndex](https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex) if you like this project!\n\n[Deutsch](https:\u002F\u002Freadme-i18n.com\u002Fcocoindex-io\u002Fcocoindex-code?lang=de) |\n[English](https:\u002F\u002Freadme-i18n.com\u002Fcocoindex-io\u002Fcocoindex-code?lang=en) |\n[Español](https:\u002F\u002Freadme-i18n.com\u002Fcocoindex-io\u002Fcocoindex-code?lang=es) |\n[français](https:\u002F\u002Freadme-i18n.com\u002Fcocoindex-io\u002Fcocoindex-code?lang=fr) |\n[日本語](https:\u002F\u002Freadme-i18n.com\u002Fcocoindex-io\u002Fcocoindex-code?lang=ja) |\n[한국어](https:\u002F\u002Freadme-i18n.com\u002Fcocoindex-io\u002Fcocoindex-code?lang=ko) |\n[Português](https:\u002F\u002Freadme-i18n.com\u002Fcocoindex-io\u002Fcocoindex-code?lang=pt) |\n[Русский](https:\u002F\u002Freadme-i18n.com\u002Fcocoindex-io\u002Fcocoindex-code?lang=ru) |\n[中文](https:\u002F\u002Freadme-i18n.com\u002Fcocoindex-io\u002Fcocoindex-code?lang=zh)\n\n\u003C\u002Fdiv>\n\n\n## Get Started — zero config, let's go!\n\n### Install\n\nUsing [pipx](https:\u002F\u002Fpipx.pypa.io\u002Fstable\u002Finstallation\u002F):\n```bash\npipx install cocoindex-code       # first install\npipx upgrade cocoindex-code       # upgrade\n```\n\nUsing [uv](https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002Fgetting-started\u002Finstallation\u002F):\n```bash\nuv tool install --upgrade cocoindex-code --prerelease explicit --with \"cocoindex>=1.0.0a24\"\n```\n\nThe default embedding model runs locally ([sentence-transformers\u002Fall-MiniLM-L6-v2](https:\u002F\u002Fhuggingface.co\u002Fsentence-transformers\u002Fall-MiniLM-L6-v2)) — no API key required, completely free.\n\nNext, set up your [coding agent integration](#coding-agent-integration) — or jump to [Manual CLI Usage](#manual-cli-usage) if you prefer direct control.\n\n## Coding Agent Integration\n\n### Skill (Recommended)\n\nInstall the `ccc` skill so your coding agent automatically uses semantic search when needed:\n\n```bash\nnpx skills add cocoindex-io\u002Fcocoindex-code\n```\n\nThat's it — no `ccc init` or `ccc index` needed. The skill teaches the agent to handle initialization, indexing, and searching on its own. It will automatically keep the index up to date as you work.\n\nThe agent uses semantic search automatically when it would be helpful. You can also nudge it explicitly — just ask it to search the codebase, e.g. *\"find how user sessions are managed\"*, or type `\u002Fccc` to invoke the skill directly.\n\nWorks with [Claude Code](https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fclaude-code) and other skill-compatible agents.\n\n### MCP Server\n\nAlternatively, use `ccc mcp` to run as an MCP server:\n\n\u003Cdetails>\n\u003Csummary>Claude Code\u003C\u002Fsummary>\n\n```bash\nclaude mcp add cocoindex-code -- ccc mcp\n```\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Codex\u003C\u002Fsummary>\n\n```bash\ncodex mcp add cocoindex-code -- ccc mcp\n```\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>OpenCode\u003C\u002Fsummary>\n\n```bash\nopencode mcp add\n```\nEnter MCP server name: `cocoindex-code`\nSelect MCP server type: `local`\nEnter command to run: `ccc mcp`\n\nOr use opencode.json:\n```json\n{\n  \"$schema\": \"https:\u002F\u002Fopencode.ai\u002Fconfig.json\",\n  \"mcp\": {\n    \"cocoindex-code\": {\n      \"type\": \"local\",\n      \"command\": [\n        \"ccc\", \"mcp\"\n      ]\n    }\n  }\n}\n```\n\u003C\u002Fdetails>\n\nOnce configured, the agent automatically decides when semantic code search is helpful — finding code by description, exploring unfamiliar codebases, fuzzy\u002Fconceptual matches, or locating implementations without knowing exact names.\n\n> **Note:** The `cocoindex-code` command (without subcommand) still works as an MCP server for backward compatibility. It auto-creates settings from environment variables on first run.\n\n\u003Cdetails>\n\u003Csummary>MCP Tool Reference\u003C\u002Fsummary>\n\nWhen running as an MCP server (`ccc mcp`), the following tool is exposed:\n\n**`search`** — Search the codebase using semantic similarity.\n\n```\nsearch(\n    query: str,                          # Natural language query or code snippet\n    limit: int = 5,                      # Maximum results (1-100)\n    offset: int = 0,                     # Pagination offset\n    refresh_index: bool = True,          # Refresh index before querying\n    languages: list[str] | None = None,  # Filter by language (e.g. [\"python\", \"typescript\"])\n    paths: list[str] | None = None,      # Filter by path glob (e.g. [\"src\u002Futils\u002F*\"])\n)\n```\n\nReturns matching code chunks with file path, language, code content, line numbers, and similarity score.\n\u003C\u002Fdetails>\n\n## Manual CLI Usage\n\nYou can also use the CLI directly — useful for manual control, running indexing after changing settings, checking status, or searching outside an agent.\n\n```bash\nccc init                                # initialize project (creates settings)\nccc index                               # build the index\nccc search \"authentication logic\"       # search!\n```\n\nThe background daemon starts automatically on first use.\n\n> **Tip:** `ccc index` auto-initializes if you haven't run `ccc init` yet, so you can skip straight to indexing.\n\n### CLI Reference\n\n| Command | Description |\n|---------|-------------|\n| `ccc init` | Initialize a project — creates settings files, adds `.cocoindex_code\u002F` to `.gitignore` |\n| `ccc index` | Build or update the index (auto-inits if needed). Shows streaming progress. |\n| `ccc search \u003Cquery>` | Semantic search across the codebase |\n| `ccc status` | Show index stats (chunk count, file count, language breakdown) |\n| `ccc mcp` | Run as MCP server in stdio mode |\n| `ccc doctor` | Run diagnostics — checks settings, daemon, model, file matching, and index health |\n| `ccc reset` | Delete index databases. `--all` also removes settings. `-f` skips confirmation. |\n| `ccc daemon status` | Show daemon version, uptime, and loaded projects |\n| `ccc daemon restart` | Restart the background daemon |\n| `ccc daemon stop` | Stop the daemon |\n\n### Search Options\n\n```bash\nccc search database schema                           # basic search\nccc search --lang python --lang markdown schema      # filter by language\nccc search --path 'src\u002Futils\u002F*' query handler        # filter by path\nccc search --offset 10 --limit 5 database schema     # pagination\nccc search --refresh database schema                 # update index first, then search\n```\n\nBy default, `ccc search` scopes results to your current working directory (relative to the project root). Use `--path` to override.\n\n## Docker\n\nA Docker image is available for teams who want a reproducible, dependency-free\nsetup — no Python, `uv`, or system dependencies required on the host.\n\nThe recommended approach is a **persistent container**: start it once, and use\n`docker exec` to run CLI commands or connect MCP sessions to it. The daemon\ninside stays warm across sessions, so the embedding model is loaded only once.\n\n### Step 1 — Start the container\n\n```bash\ndocker run -d --name cocoindex-code \\\n  --volume \"$(pwd):\u002Fworkspace\" \\\n  --volume cocoindex-db:\u002Fdb \\\n  --volume cocoindex-model-cache:\u002Froot\u002F.cache \\\n  ghcr.io\u002Fcocoindex-io\u002Fcocoindex-code:latest\n```\n\n- `\u002Fworkspace` — mount your project root here\n- `cocoindex-db` — index databases live inside the container (fast native I\u002FO, no cross-OS volume issues)\n- `cocoindex-model-cache` — persists the embedding model across image upgrades\n\n### Step 2 — Index your codebase\n\n```bash\ndocker exec -it cocoindex-code ccc index\n```\n\n### Step 3 — Connect your coding agent\n\n\u003Cdetails>\n\u003Csummary>Claude Code\u003C\u002Fsummary>\n\n```bash\nclaude mcp add cocoindex-code -- docker exec -i cocoindex-code ccc mcp\n```\n\nOr via `.mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"cocoindex-code\": {\n      \"type\": \"stdio\",\n      \"command\": \"docker\",\n      \"args\": [\"exec\", \"-i\", \"cocoindex-code\", \"ccc\", \"mcp\"]\n    }\n  }\n}\n```\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Codex\u003C\u002Fsummary>\n\n```bash\ncodex mcp add cocoindex-code -- docker exec -i cocoindex-code ccc mcp\n```\n\u003C\u002Fdetails>\n\n### CLI usage inside the container\n\nAll `ccc` commands work via `docker exec`:\n\n```bash\ndocker exec -it cocoindex-code ccc index\ndocker exec -it cocoindex-code ccc search \"authentication logic\"\ndocker exec -it cocoindex-code ccc status\n```\n\nOr set an alias on your host so it feels native:\n\n```bash\nalias ccc='docker exec -it cocoindex-code ccc'\n```\n\n### Configuration via environment variables\n\nPass configuration to `docker run` with `-e`:\n\n```bash\n# Extra extensions (e.g. Typesafe Config, SBT build files)\n-e COCOINDEX_CODE_EXTRA_EXTENSIONS=\"conf,sbt\"\n\n# Exclude build artefacts (Scala\u002FSBT example)\n-e COCOINDEX_CODE_EXCLUDE_PATTERNS='[\"**\u002Ftarget\u002F**\",\"**\u002F.bloop\u002F**\",\"**\u002F.metals\u002F**\"]'\n\n# Swap in a code-optimised embedding model\n-e COCOINDEX_CODE_EMBEDDING_MODEL=voyage\u002Fvoyage-code-3\n-e VOYAGE_API_KEY=your-key\n```\n\n### Build the image locally\n\n```bash\ndocker build -t cocoindex-code:local -f docker\u002FDockerfile .\n```\n\n## Features\n- **Semantic Code Search**: Find relevant code using natural language queries when grep doesn't work well, and save tokens immediately.\n- **Ultra Performant**: ⚡ Built on top of ultra performant [Rust indexing engine](https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex). Only re-indexes changed files for fast updates.\n- **Multi-Language Support**: Python, JavaScript\u002FTypeScript, Rust, Go, Java, C\u002FC++, C#, SQL, Shell, and more.\n- **Embedded**: Portable and just works, no database setup required!\n- **Flexible Embeddings**: Local SentenceTransformers by default (free!) or 100+ cloud providers via LiteLLM.\n\n## Configuration\n\nConfiguration lives in two YAML files, both created automatically by `ccc init`.\n\n### User Settings (`~\u002F.cocoindex_code\u002Fglobal_settings.yml`)\n\nShared across all projects. Controls the embedding model and environment variables for the daemon.\n\n```yaml\nembedding:\n  provider: sentence-transformers                    # or \"litellm\"\n  model: sentence-transformers\u002Fall-MiniLM-L6-v2\n  device: mps                                        # optional: cpu, cuda, mps (auto-detected if omitted)\n\nenvs:                                                # extra environment variables for the daemon\n  OPENAI_API_KEY: your-key                           # only needed if not already in your shell environment\n```\n\n> **Note:** The daemon inherits your shell environment. If an API key (e.g. `OPENAI_API_KEY`) is already set as an environment variable, you don't need to duplicate it in `envs`. The `envs` field is only for values that aren't in your environment.\n\n### Project Settings (`\u003Cproject>\u002F.cocoindex_code\u002Fsettings.yml`)\n\nPer-project. Controls which files to index.\n\n```yaml\ninclude_patterns:\n  - \"**\u002F*.py\"\n  - \"**\u002F*.js\"\n  - \"**\u002F*.ts\"\n  - \"**\u002F*.rs\"\n  - \"**\u002F*.go\"\n  # ... (sensible defaults for 28+ file types)\n\nexclude_patterns:\n  - \"**\u002F.*\"                # hidden directories\n  - \"**\u002F__pycache__\"\n  - \"**\u002Fnode_modules\"\n  - \"**\u002Fdist\"\n  # ...\n\nlanguage_overrides:\n  - ext: inc               # treat .inc files as PHP\n    lang: php\n\nchunkers:\n  - ext: toml              # use a custom chunker for .toml files\n    module: example_toml_chunker:toml_chunker\n```\n\n> `.cocoindex_code\u002F` is automatically added to `.gitignore` during init.\n\nUse `chunkers` when you want to control how a file type is split into chunks before indexing.\n\n`module: example_toml_chunker:toml_chunker` means:\n- `example_toml_chunker` is a local Python module\n- `toml_chunker` is the function inside that module\n\nIn practice, this usually means:\n- you create a Python file in your project, for example `example_toml_chunker.py`\n- you add a function in that file\n- you point `settings.yml` at it with `module.path:function_name`\n\nThe function should use this signature:\n\n```python\nfrom pathlib import Path\nfrom cocoindex_code.chunking import Chunk\n\ndef my_chunker(path: Path, content: str) -> tuple[str | None, list[Chunk]]:\n    ...\n```\n\n- `path` is the file being indexed\n- `content` is the full text of that file\n- return `language_override` as a string like `\"toml\"` if you want to override language detection\n- return `None` as `language_override` if you want to keep the detected language\n- return a `list[Chunk]` with the chunks you want stored in the index\n\nSee [`src\u002Fcocoindex_code\u002Fchunking.py`](.\u002Fsrc\u002Fcocoindex_code\u002Fchunking.py) for the public types and [`tests\u002Fexample_toml_chunker.py`](.\u002Ftests\u002Fexample_toml_chunker.py) for a complete example.\n\n## Embedding Models\n\nBy default, a local SentenceTransformers model ([sentence-transformers\u002Fall-MiniLM-L6-v2](https:\u002F\u002Fhuggingface.co\u002Fsentence-transformers\u002Fall-MiniLM-L6-v2)) is used — no API key required. To use a different model, edit `~\u002F.cocoindex_code\u002Fglobal_settings.yml`.\n\n> The `envs` entries below are only needed if the key isn't already in your shell environment — the daemon inherits your environment automatically.\n\n\u003Cdetails>\n\u003Csummary>Ollama (Local)\u003C\u002Fsummary>\n\n```yaml\nembedding:\n  model: ollama\u002Fnomic-embed-text\n```\n\nSet `OLLAMA_API_BASE` in `envs:` if your Ollama server is not at `http:\u002F\u002Flocalhost:11434`.\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>OpenAI\u003C\u002Fsummary>\n\n```yaml\nembedding:\n  model: text-embedding-3-small\nenvs:\n  OPENAI_API_KEY: your-api-key\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Azure OpenAI\u003C\u002Fsummary>\n\n```yaml\nembedding:\n  model: azure\u002Fyour-deployment-name\nenvs:\n  AZURE_API_KEY: your-api-key\n  AZURE_API_BASE: https:\u002F\u002Fyour-resource.openai.azure.com\n  AZURE_API_VERSION: \"2024-06-01\"\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Gemini\u003C\u002Fsummary>\n\n```yaml\nembedding:\n  model: gemini\u002Fgemini-embedding-001\nenvs:\n  GEMINI_API_KEY: your-api-key\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Mistral\u003C\u002Fsummary>\n\n```yaml\nembedding:\n  model: mistral\u002Fmistral-embed\nenvs:\n  MISTRAL_API_KEY: your-api-key\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Voyage (Code-Optimized)\u003C\u002Fsummary>\n\n```yaml\nembedding:\n  model: voyage\u002Fvoyage-code-3\nenvs:\n  VOYAGE_API_KEY: your-api-key\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Cohere\u003C\u002Fsummary>\n\n```yaml\nembedding:\n  model: cohere\u002Fembed-v4.0\nenvs:\n  COHERE_API_KEY: your-api-key\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>AWS Bedrock\u003C\u002Fsummary>\n\n```yaml\nembedding:\n  model: bedrock\u002Famazon.titan-embed-text-v2:0\nenvs:\n  AWS_ACCESS_KEY_ID: your-access-key\n  AWS_SECRET_ACCESS_KEY: your-secret-key\n  AWS_REGION_NAME: us-east-1\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Nebius\u003C\u002Fsummary>\n\n```yaml\nembedding:\n  model: nebius\u002FBAAI\u002Fbge-en-icl\nenvs:\n  NEBIUS_API_KEY: your-api-key\n```\n\n\u003C\u002Fdetails>\n\nAny [LiteLLM-supported model](https:\u002F\u002Fdocs.litellm.ai\u002Fdocs\u002Fembedding\u002Fsupported_embedding) works. When using a LiteLLM model, set `provider: litellm` (or omit `provider` — LiteLLM is the default for non-`sentence-transformers` models).\n\n### Local SentenceTransformers Models\n\nSet `provider: sentence-transformers` and use any [SentenceTransformers](https:\u002F\u002Fwww.sbert.net\u002F) model (no API key required).\n\n**Example — general purpose text model:**\n```yaml\nembedding:\n  provider: sentence-transformers\n  model: nomic-ai\u002Fnomic-embed-text-v1.5\n```\n\n**GPU-optimised code retrieval:**\n\n[`nomic-ai\u002FCodeRankEmbed`](https:\u002F\u002Fhuggingface.co\u002Fnomic-ai\u002FCodeRankEmbed) delivers significantly better code retrieval than the default model. It is 137M parameters, requires ~1 GB VRAM, and has an 8192-token context window.\n\n```yaml\nembedding:\n  provider: sentence-transformers\n  model: nomic-ai\u002FCodeRankEmbed\n```\n\n**Note:** Switching models requires re-indexing your codebase (`ccc reset && ccc index`) since the vector dimensions differ.\n\n## Supported Languages\n\n| Language | Aliases | File Extensions |\n|----------|---------|-----------------|\n| c | | `.c` |\n| cpp | c++ | `.cpp`, `.cc`, `.cxx`, `.h`, `.hpp` |\n| csharp | csharp, cs | `.cs` |\n| css | | `.css`, `.scss` |\n| dtd | | `.dtd` |\n| fortran | f, f90, f95, f03 | `.f`, `.f90`, `.f95`, `.f03` |\n| go | golang | `.go` |\n| html | | `.html`, `.htm` |\n| java | | `.java` |\n| javascript | js | `.js` |\n| json | | `.json` |\n| kotlin | | `.kt`, `.kts` |\n| lua | | `.lua` |\n| markdown | md | `.md`, `.mdx` |\n| pascal | pas, dpr, delphi | `.pas`, `.dpr` |\n| php | | `.php` |\n| python | | `.py` |\n| r | | `.r` |\n| ruby | | `.rb` |\n| rust | rs | `.rs` |\n| scala | | `.scala` |\n| solidity | | `.sol` |\n| sql | | `.sql` |\n| swift | | `.swift` |\n| toml | | `.toml` |\n| tsx | | `.tsx` |\n| typescript | ts | `.ts` |\n| xml | | `.xml` |\n| yaml | | `.yaml`, `.yml` |\n\n### Custom Database Location\n\nBy default, index databases (`cocoindex.db` and `target_sqlite.db`) live alongside settings in `\u003Cproject>\u002F.cocoindex_code\u002F`. When running in Docker, you may want the databases on the container's native filesystem for performance (LMDB doesn't work well on mounted volumes) while keeping the source code and settings on a mounted volume.\n\nSet `COCOINDEX_CODE_DB_PATH_MAPPING` to remap database locations by path prefix:\n\n```bash\nCOCOINDEX_CODE_DB_PATH_MAPPING=\u002Fworkspace=\u002Fdb-files\n```\n\nWith this mapping, a project at `\u002Fworkspace\u002Fmyrepo` stores its databases in `\u002Fdb-files\u002Fmyrepo\u002F` instead of `\u002Fworkspace\u002Fmyrepo\u002F.cocoindex_code\u002F`. Settings files remain in the original location.\n\nMultiple mappings are comma-separated and resolved in order (first match wins):\n\n```bash\nCOCOINDEX_CODE_DB_PATH_MAPPING=\u002Fworkspace=\u002Fdb-files,\u002Fworkspace2=\u002Fdb-files2\n```\n\nBoth source and target must be absolute paths. If no mapping matches, the default location is used.\n\n## Troubleshooting\n\nRun `ccc doctor` to diagnose common issues. It checks your settings, daemon health, embedding model, file matching, and index status — all in one command.\n\n### `sqlite3.Connection object has no attribute enable_load_extension`\n\nSome Python installations (e.g. the one pre-installed on macOS) ship with a SQLite library that doesn't enable extensions.\n\n**macOS fix:** Install Python through [Homebrew](https:\u002F\u002Fbrew.sh\u002F):\n\n```bash\nbrew install python3\n```\n\nThen re-install cocoindex-code (see [Get Started](#get-started--zero-config-lets-go) for install options):\n\nUsing pipx:\n```bash\npipx install cocoindex-code       # first install\npipx upgrade cocoindex-code       # upgrade\n```\n\nUsing uv (install or upgrade):\n```bash\nuv tool install --upgrade cocoindex-code --prerelease explicit --with \"cocoindex>=1.0.0a24\"\n```\n\n## Legacy: Environment Variables\n\nIf you previously configured `cocoindex-code` via environment variables, the `cocoindex-code` MCP command still reads them and auto-migrates to YAML settings on first run. We recommend switching to the YAML settings for new setups.\n\n| Environment Variable | YAML Equivalent |\n|---------------------|-----------------|\n| `COCOINDEX_CODE_EMBEDDING_MODEL` | `embedding.model` in `global_settings.yml` |\n| `COCOINDEX_CODE_DEVICE` | `embedding.device` in `global_settings.yml` |\n| `COCOINDEX_CODE_ROOT_PATH` | Run `ccc init` in your project root instead |\n| `COCOINDEX_CODE_EXCLUDED_PATTERNS` | `exclude_patterns` in project `settings.yml` |\n| `COCOINDEX_CODE_EXTRA_EXTENSIONS` | `include_patterns` + `language_overrides` in project `settings.yml` |\n\n## Large codebase \u002F Enterprise\n[CocoIndex](https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex) is an ultra efficient indexing engine that also works on large codebases at scale for enterprises. In enterprise scenarios it is a lot more efficient to share indexes with teammates when there are large or many repos. We also have advanced features like branch dedupe etc designed for enterprise users.\n\nIf you need help with remote setup, please email our maintainer linghua@cocoindex.io, happy to help!\n\n## Contributing\n\nWe welcome contributions! Before you start, please install the [pre-commit](https:\u002F\u002Fpre-commit.com\u002F) hooks so that linting, formatting, type checking, and tests run automatically before each commit:\n\n```bash\npip install pre-commit\npre-commit install\n```\n\nThis catches common issues — trailing whitespace, lint errors (Ruff), type errors (mypy), and test failures — before they reach CI.\n\nFor more details, see our [contributing guide](https:\u002F\u002Fcocoindex.io\u002Fdocs\u002Fcontributing\u002Fguide).\n\n## License\n\nApache-2.0\n","\u003Cp align=\"center\">\n\u003Cimg width=\"2428\" alt=\"cocoindex代码\" src=\"https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcocoindex-io_cocoindex-code_readme_369289efe9d3.png\" \u002F>\n\u003C\u002Fp>\n\n\n\u003Ch1 align=\"center\">基于AST的语义代码搜索，开箱即用\u003C\u002Fh1>\n\n![effect](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcocoindex-io_cocoindex-code_readme_905934cd31b5.png)\n\n\n一款轻量级、高效的 **(基于AST)** 语义代码搜索工具，专为您的代码库设计。它构建于 [CocoIndex](https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex) 之上——一个基于Rust的超高效数据转换引擎。您可以通过CLI使用它，也可以通过 [Skill](#skill-recommended) 或 [MCP](#mcp-server) 将其集成到Claude、Codex、Cursor等任何编码助手中。\n\n- 立即节省70%的token消耗。\n- **1分钟设置** — 安装即用，无需任何配置！\n\n\u003Cdiv align=\"center\">\n\n[![Discord](https:\u002F\u002Fimg.shields.io\u002Fdiscord\u002F1314801574169673738?logo=discord&color=5B5BD6&logoColor=white)](https:\u002F\u002Fdiscord.com\u002Finvite\u002FzpA9S2DR7s)\n[![GitHub](https:\u002F\u002Fimg.shields.io\u002Fgithub\u002Fstars\u002Fcocoindex-io\u002Fcocoindex?color=5B5BD6)](https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex)\n[![Documentation](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FDocumentation-394e79?logo=readthedocs&logoColor=00B9FF)](https:\u002F\u002Fcocoindex.io\u002Fdocs\u002Fgetting_started\u002Fquickstart)\n[![License](https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache%202.0-5B5BD6?logoColor=white)](https:\u002F\u002Fopensource.org\u002Flicenses\u002FApache-2.0)\n\u003C!--[![PyPI - Downloads](https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fdm\u002Fcocoindex)](https:\u002F\u002Fpypistats.org\u002Fpackages\u002Fcocoindex) -->\n[![PyPI Downloads](https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcocoindex-io_cocoindex-code_readme_2db37a3b2783.png)](https:\u002F\u002Fpepy.tech\u002Fprojects\u002Fcocoindex)\n[![CI](https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex\u002Factions\u002Fworkflows\u002FCI.yml\u002Fbadge.svg?event=push&color=5B5BD6)](https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex\u002Factions\u002Fworkflows\u002FCI.yml)\n[![release](https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex\u002Factions\u002Fworkflows\u002Frelease.yml\u002Fbadge.svg?event=push&color=5B5BD6)](https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex\u002Factions\u002Fworkflows\u002Frelease.yml)\n\n\n🌟 如果您喜欢这个项目，请帮忙给 [CocoIndex](https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex) 点个赞吧！\n\n[Deutsch](https:\u002F\u002Freadme-i18n.com\u002Fcocoindex-io\u002Fcocoindex-code?lang=de) |\n[English](https:\u002F\u002Freadme-i18n.com\u002Fcocoindex-io\u002Fcocoindex-code?lang=en) |\n[Español](https:\u002F\u002Freadme-i18n.com\u002Fcocoindex-io\u002Fcocoindex-code?lang=es) |\n[français](https:\u002F\u002Freadme-i18n.com\u002Fcocoindex-io\u002Fcocoindex-code?lang=fr) |\n[日本語](https:\u002F\u002Freadme-i18n.com\u002Fcocoindex-io\u002Fcocoindex-code?lang=ja) |\n[한국어](https:\u002F\u002Freadme-i18n.com\u002Fcocoindex-io\u002Fcocoindex-code?lang=ko) |\n[Português](https:\u002F\u002Freadme-i18n.com\u002Fcocoindex-io\u002Fcocoindex-code?lang=pt) |\n[Русский](https:\u002F\u002Freadme-i18n.com\u002Fcocoindex-io\u002Fcocoindex-code?lang=ru) |\n[中文](https:\u002F\u002Freadme-i18n.com\u002Fcocoindex-io\u002Fcocoindex-code?lang=zh)\n\n\u003C\u002Fdiv>\n\n\n## 开始使用 — 无需配置，马上上手！\n\n### 安装\n\n使用 [pipx](https:\u002F\u002Fpipx.pypa.io\u002Fstable\u002Finstallation\u002F)：\n```bash\npipx install cocoindex-code       # 首次安装\npipx upgrade cocoindex-code       # 升级\n```\n\n使用 [uv](https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002Fgetting-started\u002Finstallation\u002F)：\n```bash\nuv tool install --upgrade cocoindex-code --prerelease explicit --with \"cocoindex>=1.0.0a24\"\n```\n\n默认嵌入模型在本地运行（[sentence-transformers\u002Fall-MiniLM-L6-v2](https:\u002F\u002Fhuggingface.co\u002Fsentence-transformers\u002Fall-MiniLM-L6-v2))——无需API密钥，完全免费。\n\n接下来，设置您的 [编码助手集成](#coding-agent-integration)——或者如果您更喜欢直接控制，可以直接跳到 [手动CLI使用](#manual-cli-usage)。\n\n## 编码助手集成\n\n### Skill（推荐）\n\n安装 `ccc` 技能，这样您的编码助手会在需要时自动使用语义搜索：\n\n```bash\nnpx skills add cocoindex-io\u002Fcocoindex-code\n```\n\n就这么简单——无需 `ccc init` 或 `ccc index`。该技能会教会助手自行完成初始化、索引和搜索。它会在您工作时自动保持索引最新。\n\n当语义搜索有帮助时，助手会自动使用它。您也可以明确提示它——只需让它搜索代码库，例如“查找用户会话是如何管理的”，或者输入 `\u002Fccc` 直接调用该技能。\n\n适用于 [Claude Code](https:\u002F\u002Fdocs.anthropic.com\u002Fen\u002Fdocs\u002Fclaude-code) 及其他兼容技能的助手。\n\n### MCP服务器\n\n或者，您可以使用 `ccc mcp` 作为MCP服务器运行：\n\n\u003Cdetails>\n\u003Csummary>Claude Code\u003C\u002Fsummary>\n\n```bash\nclaude mcp add cocoindex-code -- ccc mcp\n```\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Codex\u003C\u002Fsummary>\n\n```bash\ncodex mcp add cocoindex-code -- ccc mcp\n```\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>OpenCode\u003C\u002Fsummary>\n\n```bash\nopencode mcp add\n输入MCP服务器名称：`cocoindex-code`\n选择MCP服务器类型：`local`\n输入要运行的命令：`ccc mcp`\n\n或者使用 opencode.json：\n```json\n{\n  \"$schema\": \"https:\u002F\u002Fopencode.ai\u002Fconfig.json\",\n  \"mcp\": {\n    \"cocoindex-code\": {\n      \"type\": \"local\",\n      \"command\": [\n        \"ccc\", \"mcp\"\n      ]\n    }\n  }\n}\n```\n\u003C\u002Fdetails>\n\n一旦配置完毕，助手会自动判断何时使用语义代码搜索是有帮助的——根据描述查找代码、探索不熟悉的代码库、进行模糊或概念匹配，或者在不知道确切名称的情况下定位实现。\n\n> **注意：** `cocoindex-code` 命令（无子命令）仍然可以作为MCP服务器运行，以保持向后兼容性。首次运行时，它会根据环境变量自动创建设置。\n\n\u003Cdetails>\n\u003Csummary>MCP工具参考\u003C\u002Fsummary>\n\n作为MCP服务器运行时（`ccc mcp`），会暴露以下工具：\n\n**`search`** — 使用语义相似度搜索代码库。\n\n```\nsearch(\n    query: str,                          # 自然语言查询或代码片段\n    limit: int = 5,                      # 最大结果数（1-100）\n    offset: int = 0,                     # 分页偏移量\n    refresh_index: bool = True,          # 查询前刷新索引\n    languages: list[str] | None = None,  # 按语言过滤（例如[\"python\", \"typescript\"]）\n    paths: list[str] | None = None,      # 按路径glob过滤（例如[\"src\u002Futils\u002F*\"]）\n)\n```\n\n返回匹配的代码片段，包含文件路径、语言、代码内容、行号和相似度分数。\n\u003C\u002Fdetails>\n\n## 手动CLI使用\n\n您也可以直接使用CLI——这对于手动控制、更改设置后重新索引、检查状态，或在助手之外进行搜索非常有用。\n\n```bash\nccc init                                # 初始化项目（创建设置）\nccc index                               # 构建索引\nccc search \"authentication logic\"       # 搜索！\n```\n\n后台守护进程会在首次使用时自动启动。\n\n> **提示：** 如果您尚未运行 `ccc init`，`ccc index` 会自动初始化，因此您可以直接跳到索引阶段。\n\n### CLI 参考\n\n| 命令 | 描述 |\n|---------|-------------|\n| `ccc init` | 初始化项目 — 创建设置文件，并将 `.cocoindex_code\u002F` 添加到 `.gitignore` 中 |\n| `ccc index` | 构建或更新索引（必要时自动初始化）。显示流式进度。 |\n| `ccc search \u003Cquery>` | 在代码库中进行语义搜索 |\n| `ccc status` | 显示索引统计信息（分块数、文件数、语言分布） |\n| `ccc mcp` | 以 stdio 模式作为 MCP 服务器运行 |\n| `ccc doctor` | 运行诊断 — 检查设置、守护进程、模型、文件匹配和索引健康状况 |\n| `ccc reset` | 删除索引数据库。`--all` 选项还会移除设置。`-f` 选项可跳过确认。 |\n| `ccc daemon status` | 显示守护进程版本、运行时间和已加载的项目 |\n| `ccc daemon restart` | 重启后台守护进程 |\n| `ccc daemon stop` | 停止守护进程 |\n\n### 搜索选项\n\n```bash\nccc search database schema                           # 基本搜索\nccc search --lang python --lang markdown schema      # 按语言过滤\nccc search --path 'src\u002Futils\u002F*' query handler        # 按路径过滤\nccc search --offset 10 --limit 5 database schema     # 分页\nccc search --refresh database schema                 # 先更新索引，再进行搜索\n```\n\n默认情况下，`ccc search` 的搜索范围限定在当前工作目录内（相对于项目根目录）。可以使用 `--path` 参数来覆盖此行为。\n\n## Docker\n\n对于希望拥有可复现且无依赖环境的团队，我们提供了 Docker 镜像——宿主机上无需安装 Python、`uv` 或其他系统依赖。\n\n推荐的做法是使用**持久化容器**：只需启动一次，然后通过 `docker exec` 来运行 CLI 命令或连接 MCP 会话。容器内的守护进程会在会话之间保持运行状态，因此嵌入模型只需加载一次。\n\n### 步骤 1 — 启动容器\n\n```bash\ndocker run -d --name cocoindex-code \\\n  --volume \"$(pwd):\u002Fworkspace\" \\\n  --volume cocoindex-db:\u002Fdb \\\n  --volume cocoindex-model-cache:\u002Froot\u002F.cache \\\n  ghcr.io\u002Fcocoindex-io\u002Fcocoindex-code:latest\n```\n\n- `\u002Fworkspace` — 将您的项目根目录挂载到这里\n- `cocoindex-db` — 索引数据库存储在容器内部（本地 I\u002FO 速度快，不存在跨操作系统卷的问题）\n- `cocoindex-model-cache` — 在镜像升级时仍能保留嵌入模型\n\n### 步骤 2 — 索引您的代码库\n\n```bash\ndocker exec -it cocoindex-code ccc index\n```\n\n### 步骤 3 — 连接您的编码助手\n\n\u003Cdetails>\n\u003Csummary>Claude Code\u003C\u002Fsummary>\n\n```bash\nclaude mcp add cocoindex-code -- docker exec -i cocoindex-code ccc mcp\n```\n\n或者通过 `.mcp.json`：\n\n```json\n{\n  \"mcpServers\": {\n    \"cocoindex-code\": {\n      \"type\": \"stdio\",\n      \"command\": \"docker\",\n      \"args\": [\"exec\", \"-i\", \"cocoindex-code\", \"ccc\", \"mcp\"]\n    }\n  }\n}\n```\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Codex\u003C\u002Fsummary>\n\n```bash\ncodex mcp add cocoindex-code -- docker exec -i cocoindex-code ccc mcp\n```\n\u003C\u002Fdetails>\n\n### 容器内的 CLI 使用\n\n所有 `ccc` 命令都可以通过 `docker exec` 来执行：\n\n```bash\ndocker exec -it cocoindex-code ccc index\ndocker exec -it cocoindex-code ccc search \"authentication logic\"\ndocker exec -it cocoindex-code ccc status\n```\n\n您也可以在宿主机上设置别名，使其使用起来更自然：\n\n```bash\nalias ccc='docker exec -it cocoindex-code ccc'\n```\n\n### 通过环境变量配置\n\n使用 `-e` 参数将配置传递给 `docker run`：\n\n```bash\n# 额外的文件扩展名（例如 Typesafe Config、SBT 构建文件）\n-e COCOINDEX_CODE_EXTRA_EXTENSIONS=\"conf,sbt\"\n\n# 排除构建产物（Scala\u002FSBT 示例）\n-e COCOINDEX_CODE_EXCLUDE_PATTERNS='[\"**\u002Ftarget\u002F**\",\"**\u002F.bloop\u002F**\",\"**\u002F.metals\u002F**\"]'\n\n# 替换为针对代码优化的嵌入模型\n-e COCOINDEX_CODE_EMBEDDING_MODEL=voyage\u002Fvoyage-code-3\n-e VOYAGE_API_KEY=your-key\n```\n\n### 在本地构建镜像\n\n```bash\ndocker build -t cocoindex-code:local -f docker\u002FDockerfile .\n```\n\n## 功能\n- **语义代码搜索**：当 grep 效果不佳时，使用自然语言查询找到相关代码，同时立即节省 token。\n- **超高效**：⚡ 基于高性能的 [Rust 索引引擎](https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex) 构建。仅对更改的文件重新索引，实现快速更新。\n- **多语言支持**：Python、JavaScript\u002FTypeScript、Rust、Go、Java、C\u002FC++、C#、SQL、Shell 等。\n- **嵌入式**：便携易用，无需数据库设置！\n- **灵活的嵌入模型**：默认使用本地 SentenceTransformers（免费），也可通过 LiteLLM 调用 100 多家云服务提供商的模型。\n\n## 配置\n\n配置信息存储在两个 YAML 文件中，这两个文件都会由 `ccc init` 自动创建。\n\n### 用户设置（`~\u002F.cocoindex_code\u002Fglobal_settings.yml`）\n\n在所有项目间共享。用于控制嵌入模型以及守护进程的环境变量。\n\n```yaml\nembedding:\n  provider: sentence-transformers                    # 或 \"litellm\"\n  model: sentence-transformers\u002Fall-MiniLM-L6-v2\n  device: mps                                        # 可选：cpu、cuda、mps（未指定时自动检测）\n\nenvs:                                                # 守护进程的额外环境变量\n  OPENAI_API_KEY: your-key                           # 仅当您的 shell 环境中尚未设置时才需要\n```\n\n> **注意**：守护进程会继承您的 shell 环境。如果某个 API 密钥（例如 `OPENAI_API_KEY`）已在您的 shell 环境中设置，则无需在 `envs` 中重复设置。`envs` 字段仅用于那些未包含在您环境中的值。\n\n### 项目设置（`\u003Cproject>\u002F.cocoindex_code\u002Fsettings.yml`）\n\n按项目配置。用于控制要索引的文件。\n\n```yaml\ninclude_patterns:\n  - \"**\u002F*.py\"\n  - \"**\u002F*.js\"\n  - \"**\u002F*.ts\"\n  - \"**\u002F*.rs\"\n  - \"**\u002F*.go\"\n  # ... （针对28种以上文件类型的合理默认值）\n\nexclude_patterns:\n  - \"**\u002F.*\"                # 隐藏目录\n  - \"**\u002F__pycache__\"\n  - \"**\u002Fnode_modules\"\n  - \"**\u002Fdist\"\n  # ...\n\nlanguage_overrides:\n  - ext: inc               # 将 .inc 文件视为 PHP\n    lang: php\n\nchunkers:\n  - ext: toml              # 对 .toml 文件使用自定义分块器\n    module: example_toml_chunker:toml_chunker\n```\n\n> `.cocoindex_code\u002F` 会在初始化时自动添加到 `.gitignore` 中。\n\n当您希望在索引之前控制某种文件类型如何被分割成块时，可以使用 `chunkers`。\n\n`module: example_toml_chunker:toml_chunker` 表示：\n- `example_toml_chunker` 是一个本地 Python 模块\n- `toml_chunker` 是该模块中的函数\n\n实际操作中，通常意味着：\n- 您在项目中创建一个 Python 文件，例如 `example_toml_chunker.py`\n- 在该文件中添加一个函数\n- 使用 `module.path:function_name` 将其指向 `settings.yml`\n\n该函数应采用以下签名：\n\n```python\nfrom pathlib import Path\nfrom cocoindex_code.chunking import Chunk\n\ndef my_chunker(path: Path, content: str) -> tuple[str | None, list[Chunk]]:\n    ...\n```\n\n- `path` 是正在索引的文件\n- `content` 是该文件的完整文本\n- 如果您想覆盖语言检测，请返回类似 `\"toml\"` 的字符串作为 `language_override`\n- 如果您想保留检测到的语言，请将 `language_override` 设置为 `None`\n- 返回一个包含您希望存储在索引中的分块的 `list[Chunk]`\n\n有关公共类型，请参阅 [`src\u002Fcocoindex_code\u002Fchunking.py`](.\u002Fsrc\u002Fcocoindex_code\u002Fchunking.py)，完整的示例请参考 [`tests\u002Fexample_toml_chunker.py`](.\u002Ftests\u002Fexample_toml_chunker.py)。\n\n## 嵌入模型\n\n默认情况下，会使用本地 SentenceTransformers 模型（[sentence-transformers\u002Fall-MiniLM-L6-v2](https:\u002F\u002Fhuggingface.co\u002Fsentence-transformers\u002Fall-MiniLM-L6-v2)），无需 API 密钥。若要使用其他模型，请编辑 `~\u002F.cocoindex_code\u002Fglobal_settings.yml`。\n\n> 下面的 `envs` 条目仅在您的 shell 环境中尚未包含密钥时才需要——守护进程会自动继承您的环境变量。\n\n\u003Cdetails>\n\u003Csummary>Ollama（本地）\u003C\u002Fsummary>\n\n```yaml\nembedding:\n  model: ollama\u002Fnomic-embed-text\n```\n\n如果您的 Ollama 服务器不在 `http:\u002F\u002Flocalhost:11434`，请在 `envs:` 中设置 `OLLAMA_API_BASE`。\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>OpenAI\u003C\u002Fsummary>\n\n```yaml\nembedding:\n  model: text-embedding-3-small\nenvs:\n  OPENAI_API_KEY: your-api-key\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Azure OpenAI\u003C\u002Fsummary>\n\n```yaml\nembedding:\n  model: azure\u002Fyour-deployment-name\nenvs:\n  AZURE_API_KEY: your-api-key\n  AZURE_API_BASE: https:\u002F\u002Fyour-resource.openai.azure.com\n  AZURE_API_VERSION: \"2024-06-01\"\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Gemini\u003C\u002Fsummary>\n\n```yaml\nembedding:\n  model: gemini\u002Fgemini-embedding-001\nenvs:\n  GEMINI_API_KEY: your-api-key\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Mistral\u003C\u002Fsummary>\n\n```yaml\nembedding:\n  model: mistral\u002Fmistral-embed\nenvs:\n  MISTRAL_API_KEY: your-api-key\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Voyage（代码优化版）\u003C\u002Fsummary>\n\n```yaml\nembedding:\n  model: voyage\u002Fvoyage-code-3\nenvs:\n  VOYAGE_API_KEY: your-api-key\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Cohere\u003C\u002Fsummary>\n\n```yaml\nembedding:\n  model: cohere\u002Fembed-v4.0\nenvs:\n  COHERE_API_KEY: your-api-key\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>AWS Bedrock\u003C\u002Fsummary>\n\n```yaml\nembedding:\n  model: bedrock\u002Famazon.titan-embed-text-v2:0\nenvs:\n  AWS_ACCESS_KEY_ID: your-access-key\n  AWS_SECRET_ACCESS_KEY: your-secret-key\n  AWS_REGION_NAME: us-east-1\n```\n\n\u003C\u002Fdetails>\n\n\u003Cdetails>\n\u003Csummary>Nebius\u003C\u002Fsummary>\n\n```yaml\nembedding:\n  model: nebius\u002FBAAI\u002Fbge-en-icl\nenvs:\n  NEBIUS_API_KEY: your-api-key\n```\n\n\u003C\u002Fdetails>\n\n任何 [LiteLLM 支持的模型](https:\u002F\u002Fdocs.litellm.ai\u002Fdocs\u002Fembedding\u002Fsupported_embedding) 都可以使用。使用 LiteLLM 模型时，需设置 `provider: litellm`（或省略 `provider`——对于非 `sentence-transformers` 模型，默认为 LiteLLM）。\n\n### 本地 SentenceTransformers 模型\n\n设置 `provider: sentence-transformers`，并使用任何 [SentenceTransformers](https:\u002F\u002Fwww.sbert.net\u002F) 模型（无需 API 密钥）。\n\n**示例——通用文本模型：**\n```yaml\nembedding:\n  provider: sentence-transformers\n  model: nomic-ai\u002Fnomic-embed-text-v1.5\n```\n\n**针对 GPU 优化的代码检索：**\n\n[`nomic-ai\u002FCodeRankEmbed`](https:\u002F\u002Fhuggingface.co\u002Fnomic-ai\u002FCodeRankEmbed) 提供的代码检索效果显著优于默认模型。该模型拥有 1.37 亿参数，需要约 1 GB 显存，并具有 8192 个标记的上下文窗口。\n\n```yaml\nembedding:\n  provider: sentence-transformers\n  model: nomic-ai\u002FCodeRankEmbed\n```\n\n**注意：** 更换模型需要重新索引您的代码库（`ccc reset && ccc index`），因为向量维度不同。\n\n## 支持的语言\n\n| 语言 | 别名 | 文件扩展名 |\n|----------|---------|-----------------|\n| c | | `.c` |\n| cpp | c++ | `.cpp`, `.cc`, `.cxx`, `.h`, `.hpp` |\n| csharp | csharp, cs | `.cs` |\n| css | | `.css`, `.scss` |\n| dtd | | `.dtd` |\n| fortran | f, f90, f95, f03 | `.f`, `.f90`, `.f95`, `.f03` |\n| go | golang | `.go` |\n| html | | `.html`, `.htm` |\n| java | | `.java` |\n| javascript | js | `.js` |\n| json | | `.json` |\n| kotlin | | `.kt`, `.kts` |\n| lua | | `.lua` |\n| markdown | md | `.md`, `.mdx` |\n| pascal | pas, dpr, delphi | `.pas`, `.dpr` |\n| php | | `.php` |\n| python | | `.py` |\n| r | | `.r` |\n| ruby | | `.rb` |\n| rust | rs | `.rs` |\n| scala | | `.scala` |\n| solidity | | `.sol` |\n| sql | | `.sql` |\n| swift | | `.swift` |\n| toml | | `.toml` |\n| tsx | | `.tsx` |\n| typescript | ts | `.ts` |\n| xml | | `.xml` |\n| yaml | | `.yaml`, `.yml` |\n\n### 自定义数据库位置\n\n默认情况下，索引数据库（`cocoindex.db` 和 `target_sqlite.db`）与设置文件一同位于 `\u003Cproject>\u002F.cocoindex_code\u002F`。在 Docker 中运行时，为了性能考虑，您可能希望将数据库放在容器的原生文件系统上（LMDB 在挂载卷上表现不佳），同时将源代码和设置文件保留在挂载卷上。\n\n通过设置 `COCOINDEX_CODE_DB_PATH_MAPPING`，可以根据路径前缀重新映射数据库位置：\n\n```bash\nCOCOINDEX_CODE_DB_PATH_MAPPING=\u002Fworkspace=\u002Fdb-files\n```\n\n使用此映射后，位于 `\u002Fworkspace\u002Fmyrepo` 的项目会将其数据库存储在 `\u002Fdb-files\u002Fmyrepo\u002F`，而不是 `\u002Fworkspace\u002Fmyrepo\u002F.cocoindex_code\u002F`。设置文件仍保留在原始位置。\n\n多个映射之间用逗号分隔，并按顺序解析（以第一个匹配为准）：\n\n```bash\nCOCOINDEX_CODE_DB_PATH_MAPPING=\u002Fworkspace=\u002Fdb-files,\u002Fworkspace2=\u002Fdb-files2\n```\n\n源路径和目标路径都必须是绝对路径。如果没有匹配的映射，则使用默认位置。\n\n## 故障排除\n\n运行 `ccc doctor` 可诊断常见问题。它会一次性检查您的设置、守护进程状态、嵌入模型、文件匹配情况以及索引状态。\n\n### `sqlite3.Connection 对象没有属性 enable_load_extension`\n\n某些 Python 安装（例如 macOS 上预装的版本）附带的 SQLite 库不支持扩展。\n\n**macOS 解决方案：** 通过 [Homebrew](https:\u002F\u002Fbrew.sh\u002F) 安装 Python：\n\n```bash\nbrew install python3\n```\n\n然后重新安装 cocoindex-code（安装选项请参阅[入门指南](#get-started--zero-config-lets-go)）：\n\n使用 pipx：\n```bash\npipx install cocoindex-code       # 首次安装\npipx upgrade cocoindex-code       # 升级\n```\n\n使用 uv（安装或升级）：\n```bash\nuv tool install --upgrade cocoindex-code --prerelease explicit --with \"cocoindex>=1.0.0a24\"\n```\n\n## 遗留：环境变量\n\n如果您之前曾通过环境变量配置 `cocoindex-code`，则 `cocoindex-code` 的 MCP 命令仍会读取这些变量，并在首次运行时自动迁移到 YAML 配置文件。对于新项目，我们建议切换到 YAML 配置。\n\n| 环境变量 | YAML 等效项 |\n|---------------------|-----------------|\n| `COCOINDEX_CODE_EMBEDDING_MODEL` | `global_settings.yml` 中的 `embedding.model` |\n| `COCOINDEX_CODE_DEVICE` | `global_settings.yml` 中的 `embedding.device` |\n| `COCOINDEX_CODE_ROOT_PATH` | 改为在项目根目录下运行 `ccc init` |\n| `COCOINDEX_CODE_EXCLUDED_PATTERNS` | 项目 `settings.yml` 中的 `exclude_patterns` |\n| `COCOINDEX_CODE_EXTRA_EXTENSIONS` | 项目 `settings.yml` 中的 `include_patterns` 和 `language_overrides` |\n\n## 大型代码库 \u002F 企业级应用\n[CocoIndex](https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex) 是一款超高效的索引引擎，能够处理大规模的企业级代码库。在企业场景中，当存在大量或大型代码仓库时，与团队成员共享索引将更加高效。我们还为企业用户提供了分支去重等高级功能。\n\n如果您需要远程部署方面的帮助，请发送邮件至我们的维护者 linghua@cocoindex.io，我们将竭诚为您服务！\n\n## 贡献\n我们欢迎社区贡献！在开始之前，请先安装 [pre-commit](https:\u002F\u002Fpre-commit.com\u002F) 钩子，以便在每次提交前自动运行代码检查、格式化、类型检查和测试：\n\n```bash\npip install pre-commit\npre-commit install\n```\n\n这将帮助您在代码进入 CI 流水线之前，及时发现常见的问题，例如尾随空格、代码风格错误（Ruff）、类型错误（mypy）以及测试失败。\n\n更多详细信息，请参阅我们的[贡献指南](https:\u002F\u002Fcocoindex.io\u002Fdocs\u002Fcontributing\u002Fguide)。\n\n## 许可证\nApache-2.0","# cocoindex-code 快速上手指南\n\ncocoindex-code 是一款基于抽象语法树（AST）的轻量级语义代码搜索工具。它能帮助你在大型代码库中通过自然语言快速定位代码，显著减少 AI 编程助手的 Token 消耗（最高节省 70%）。无需复杂配置，安装即可使用。\n\n## 环境准备\n\n- **操作系统**：Linux、macOS 或 Windows (WSL)\n- **运行时依赖**：\n  - 推荐安装 [pipx](https:\u002F\u002Fpipx.pypa.io\u002Fstable\u002Finstallation\u002F) 用于隔离安装 Python 应用。\n  - 或者使用 [uv](https:\u002F\u002Fdocs.astral.sh\u002Fuv\u002Fgetting-started\u002Finstallation\u002F) 进行更快速的包管理。\n- **网络要求**：首次运行时会自动下载默认的本地嵌入模型 (`sentence-transformers\u002Fall-MiniLM-L6-v2`)，请确保网络畅通。如需使用国内加速，可配置 Hugging Face 镜像环境变量。\n\n## 安装步骤\n\n你可以选择以下任意一种方式进行安装：\n\n### 方式一：使用 pipx（推荐）\n\n```bash\npipx install cocoindex-code       # 首次安装\npipx upgrade cocoindex-code       # 升级版本\n```\n\n### 方式二：使用 uv\n\n```bash\nuv tool install --upgrade cocoindex-code --prerelease explicit --with \"cocoindex>=1.0.0a24\"\n```\n\n> **提示**：默认使用本地运行的嵌入模型，无需 API Key，完全免费。\n\n## 基本使用\n\n安装完成后，你可以通过命令行直接使用，或将其集成到 Claude Code、Cursor 等 AI 编程助手之中。\n\n### 1. 命令行直接使用 (CLI)\n\n这是最基础的使用方式，适用于手动搜索或脚本调用。\n\n**初始化与索引构建**\n进入你的项目根目录，运行以下命令。`ccc index` 会自动检测并创建必要的配置文件，若未初始化会自动执行初始化流程。\n\n```bash\nccc index                               # 构建或更新代码索引（显示实时进度）\n```\n\n**执行语义搜索**\n使用自然语言描述你要查找的功能，而非精确的关键字。\n\n```bash\nccc search \"用户会话是如何管理的\"       # 搜索中文描述\nccc search \"authentication logic\"       # 搜索英文描述\n```\n\n**常用搜索选项**\n\n```bash\n# 按编程语言过滤\nccc search --lang python --lang markdown \"数据库连接池\"\n\n# 按文件路径过滤\nccc search --path 'src\u002Futils\u002F*' \"错误处理逻辑\"\n\n# 查看索引状态\nccc status\n```\n\n后台守护进程会在首次使用时自动启动，无需手动管理。\n\n### 2. 集成到 AI 编程助手 (推荐)\n\n让 AI 助手自动调用语义搜索，提升回答准确率并节省 Token。\n\n#### 方案 A：使用 Skill 模式 (最简单)\n适用于支持 Skill 的 Agent（如 Claude Code）。只需运行一次，Agent 即可自动学会何时调用搜索。\n\n```bash\nnpx skills add cocoindex-io\u002Fcocoindex-code\n```\n\n*使用方法*：在对话中直接询问 *\"查找项目中处理用户登录的代码\"*，或输入 `\u002Fccc` 强制触发搜索。\n\n#### 方案 B：使用 MCP 服务器模式\n适用于需要显式配置 MCP 的工具（如 Cursor, Codex, OpenCode）。\n\n**Claude Code 配置示例：**\n```bash\nclaude mcp add cocoindex-code -- ccc mcp\n```\n\n**Cursor \u002F 通用 MCP 配置：**\n在工具的 MCP 设置中添加以下配置：\n- **Command**: `ccc`\n- **Args**: `mcp`\n\n配置完成后，AI 助手将自动决定何时进行语义搜索，以理解代码库结构或查找具体实现。\n\n### 3. 高级用法：Docker 部署\n\n如果你希望环境完全隔离且可复现，可以使用 Docker。\n\n**启动容器：**\n```bash\ndocker run -d --name cocoindex-code \\\n  --volume \"$(pwd):\u002Fworkspace\" \\\n  --volume cocoindex-db:\u002Fdb \\\n  --volume cocoindex-model-cache:\u002Froot\u002F.cache \\\n  ghcr.io\u002Fcocoindex-io\u002Fcocoindex-code:latest\n```\n\n**在容器内构建索引和搜索：**\n```bash\ndocker exec -it cocoindex-code ccc index\ndocker exec -it cocoindex-code ccc search \"核心业务逻辑\"\n```\n\n**配置别名以便像本地命令一样使用：**\n```bash\nalias ccc='docker exec -it cocoindex-code ccc'\n```","某后端开发团队在维护一个拥有数十万行代码的遗留微服务系统时，急需定位一处隐蔽的用户会话（Session）验证逻辑漏洞。\n\n### 没有 cocoindex-code 时\n- **搜索精度低**：使用传统文本搜索（如 grep 或 IDE 全局查找）只能匹配关键词，无法识别“校验令牌”、“验证身份”等语义相近但措辞不同的代码片段，导致大量漏检。\n- **上下文噪音大**：搜索结果往往包含大量无关的注释、变量名或测试用例，开发者需人工逐行筛选，耗费大量精力辨别有效信息。\n- **AI 代理成本高昂**：若直接将整个代码库或大量文件投喂给 Coding Agent（如 Cursor、Claude）进行询问，会消耗巨额 Token 费用，且因上下文过长导致响应速度极慢甚至超时。\n- **配置门槛高**：搭建专业的语义搜索引擎通常需要复杂的向量数据库配置和漫长的索引构建过程，难以在紧急排查中即时启用。\n\n### 使用 cocoindex-code 后\n- **语义精准命中**：cocoindex-code 基于 AST（抽象语法树）进行语义理解，能直接定位到实现“会话验证”核心逻辑的函数，即使代码中未出现\"session\"关键字也能准确找到。\n- **结果纯净高效**：工具自动过滤无关噪音，仅返回高相关度的代码块及其调用关系，让开发者能秒级锁定问题源头。\n- **大幅节省资源**：通过预先检索关键上下文再投喂给 AI 代理，cocoindex-code 帮助团队节省了约 70% 的 Token 消耗，同时将 AI 的回答速度提升了数倍。\n- **零配置即时启动**：无需任何配置文件或手动初始化索引，安装后即刻运行，AI 代理可自动调用其技能实时保持代码索引更新，完美融入紧急修复流程。\n\ncocoindex-code 通过轻量级的本地语义搜索，将原本耗时数小时的代码考古工作压缩至分钟级，同时显著降低了 AI 辅助编程的成本与延迟。","https:\u002F\u002Foss.gittoolsai.com\u002Fimages\u002Fcocoindex-io_cocoindex-code_369289ef.png","cocoindex-io","CocoIndex","https:\u002F\u002Foss.gittoolsai.com\u002Favatars\u002Fcocoindex-io_e9d10946.png","Real-time data transformation framework for AI",null,"hi@cocoindex.io","cocoindex_io","https:\u002F\u002Fcocoindex.io","https:\u002F\u002Fgithub.com\u002Fcocoindex-io",[86,90,94],{"name":87,"color":88,"percentage":89},"Python","#3572A5",98.3,{"name":91,"color":92,"percentage":93},"Dockerfile","#384d54",1.6,{"name":95,"color":96,"percentage":97},"Shell","#89e051",0.1,1240,87,"2026-04-05T08:23:59","Apache-2.0",1,"Linux, macOS, Windows","非必需。支持 CPU、CUDA (NVIDIA) 或 MPS (Apple Silicon)。默认使用本地模型，若需加速可配置 GPU，具体型号和显存未说明。","未说明",{"notes":107,"python":108,"dependencies":109},"该工具基于 Rust 构建的高性能引擎 CocoIndex。默认使用本地嵌入模型（sentence-transformers\u002Fall-MiniLM-L6-v2），无需 API Key 且免费。支持通过 Docker 运行以避免本地环境依赖。可通过环境变量配置使用其他嵌入模型（如 Voyage AI）或调整文件过滤规则。首次运行会自动启动后台守护进程并下载模型。","3.8+ (推断自 pipx\u002Fuv 及通用 Python 工具链要求，原文未明确指定具体版本号)",[110,111,112,113],"cocoindex>=1.0.0a24","sentence-transformers (默认模型：all-MiniLM-L6-v2)","pipx 或 uv (安装工具)","LiteLLM (可选，用于云嵌入模型)",[45,15],[116,117,118,119,120,121,122,123,124,125],"agents","code-search","coding-agent","indexing","python","context-engineering","mcp","tree-sitter","cocoindex","ast","2026-03-27T02:49:30.150509","2026-04-06T09:52:04.341228",[129,134,139,144,149,154],{"id":130,"question_zh":131,"answer_zh":132,"source_url":133},17261,"为什么在 Windows 上执行搜索操作时会超时？","该问题已在后续版本中修复。请确保您已升级到最新版本。用户反馈确认升级后搜索功能不再超时，可以正常工作。","https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fissues\u002F51",{"id":135,"question_zh":136,"answer_zh":137,"source_url":138},17262,"如何避免使用包含安全漏洞（凭证窃取）的 litellm 依赖版本？","维护者已在新版本 v0.2.10 中将 `litellm` 依赖锁定为 \u003C= 1.82.6，并更新了上游 `cocoindex` 包以避开有问题的版本。请运行以下命令升级：\n\npipx upgrade cocoindex-code\n\n或者确保您的环境中使用的是修复后的版本，以避免安全风险。","https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fissues\u002F120",{"id":140,"question_zh":141,"answer_zh":142,"source_url":143},17263,"运行索引命令时进程卡住或内存占用过高怎么办？","建议升级到 v0.2.2 或更高版本，该版本引入了完整的 CLI 并分离了执行步骤，修复了相关 Bug。升级后请在项目目录下按以下步骤操作：\n\n1. 初始化：ccc init\n2. 建立索引：ccc index\n\n如果是在 Mac M1 等设备上遇到内存问题，可以尝试强制使用 CPU 模式：\nexport COCOINDEX_CODE_DEVICE=cpu\ncocoindex-code index","https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fissues\u002F53",{"id":145,"question_zh":146,"answer_zh":147,"source_url":148},17264,"如何配置以排除特定文件夹或文件（如 .gitignore 中的内容）不被索引？","工具现已支持自动忽略匹配 `.gitignore` 规则的文件和文件夹。这是默认行为，无需额外配置即可排除大量生成的文件或敏感数据文件。如果您之前遇到无法排除的问题，请确保已更新到修复该功能的版本（通过 Issue #54 修复）。","https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fissues\u002F45",{"id":150,"question_zh":151,"answer_zh":152,"source_url":153},17265,"索引过程极其缓慢甚至长时间无响应，如何解决？","此问题通常由旧版本的性能瓶颈引起。请升级到最新版本（如 0.2.6+），新版本显著提升了索引速度。\n\n升级命令：\npipx upgrade cocoindex-code\n\n升级后，您可以运行诊断命令检查环境状态：\nccc doctor\n\n如果仍然缓慢，请检查是否意外包含了大量非代码文件（如 Markdown 文档、大型 SQL 数据文件等），并利用 `.gitignore` 排除它们。","https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fissues\u002F103",{"id":155,"question_zh":156,"answer_zh":157,"source_url":158},17266,"如何使用自定义本地嵌入模型（例如 nomic-embed-text）？","您可以通过设置环境变量来指定自定义嵌入模型。例如，要使用 nomic-embed-text，请设置：\n\nexport COCOINDEX_CODE_EMBEDDING_MODEL=nomic-embed-text\n\n注意：确保您的本地模型服务（如 Opencode 或 LiteLLM）已正确配置并能响应该模型名称。如果配置后仍报错，请检查模型名称拼写是否正确以及后端服务是否正常运行。","https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fissues\u002F56",[160,165,170,175,180,185,190,195,200,205,210,215,220,225,230,235,240,245,250,255],{"id":161,"version":162,"summary_zh":163,"released_at":164},99469,"v0.2.10","## 变更内容\n* 功能：新增 Docker 支持，并引入 ghcr.io 发布工作流，由 @Eli-Golin 在 https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F66 中实现。\n* 杂项：将 cocoindex 版本升级至 1.0.0a38，由 @georgeh0 在 https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F121 中完成。\n\n## 新贡献者\n* @Eli-Golin 在 https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F66 中完成了首次贡献。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fcompare\u002Fv0.2.9...v0.2.10","2026-03-24T22:12:24",{"id":166,"version":167,"summary_zh":168,"released_at":169},99470,"v0.2.9","## 变更内容\n* 重构：将硬编码的文件路径整合到设置辅助函数中，由 @georgeh0 在 https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F118 中完成。\n* 功能：可插拔的分块器注册表，并与设置集成，由 @dukelion 在 https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F105 中实现。\n* 功能：向 DEFAULT_INCLUDED_PATTERNS 添加缺失的文件扩展名，由 @georgeh0 在 https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F119 中完成。\n\n## 新贡献者\n* @dukelion 在 https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F105 中完成了首次贡献。\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fcompare\u002Fv0.2.8...v0.2.9","2026-03-24T00:05:54",{"id":171,"version":172,"summary_zh":173,"released_at":174},99471,"v0.2.8","## 变更内容\n* 文档：添加贡献指南，包含 pre-commit 钩子的设置，由 @georgeh0 在 https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F115 中完成。\n* 功能：新增 COCOINDEX_CODE_DB_PATH_MAPPING 配置项，用于自定义数据库路径，由 @georgeh0 在 https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F116 中完成。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fcompare\u002Fv0.2.7...v0.2.8","2026-03-22T16:16:28",{"id":176,"version":177,"summary_zh":178,"released_at":179},99472,"v0.2.7","## 变更内容\n* 文档：由 @georgeh0 在 https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F111 中更新 README\n* 文档：由 @georgeh0 在 https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F112 中更新 `ccc doctor` 子命令的说明\n* 功能：由 @georgeh0 在 https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F114 中更优雅地处理配置文件相关问题\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fcompare\u002Fv0.2.6...v0.2.7","2026-03-21T17:31:46",{"id":181,"version":182,"summary_zh":183,"released_at":184},99473,"v0.2.6","## 变更内容\n* 功能新增：`ccc doctor` 命令，并由 @georgeh0 在 https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F110 中升级了 cocoindex 版本。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fcompare\u002Fv0.2.5...v0.2.6","2026-03-21T04:17:24",{"id":186,"version":187,"summary_zh":188,"released_at":189},99474,"v0.2.5","## 变更内容\n* 功能：由 @georgeh0 在 https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F106 中重新审视并简化了 CLI 与守护进程的连接模型。\n* 修复：确保在版本不匹配时重启守护进程，由 @georgeh0 在 https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F107 中完成。\n* 修复：正确触发加载时的索引构建，由 @georgeh0 在 https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F108 中完成。\n* 重构：将更多项目级别的操作明确归于 `Project` 层级，由 @georgeh0 在 https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F109 中完成。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fcompare\u002Fv0.2.4...v0.2.5","2026-03-20T21:04:22",{"id":191,"version":192,"summary_zh":193,"released_at":194},99475,"v0.2.4","## 变更内容\n* 修复 Windows 系统下守护进程显示可见控制台窗口的问题，由 @salmon-21 在 https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F101 中完成\n* 修复：为后台 MCP 索引使用专用的守护进程连接，由 @ScavengerCoA 在 https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F98 中完成\n* 杂项：升级 CocoIndex，由 @georgeh0 在 https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F102 中完成\n\n## 新贡献者\n* @salmon-21 在 https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F101 中完成了首次贡献\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fcompare\u002Fv0.2.3...v0.2.4","2026-03-19T01:16:33",{"id":196,"version":197,"summary_zh":198,"released_at":199},99476,"v0.2.3","## 变更内容\n* 杂项：调整分块大小，由 @georgeh0 在 https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F95 中完成\n\n\n**完整变更日志**: https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fcompare\u002Fv0.2.2...v0.2.3","2026-03-17T15:14:57",{"id":201,"version":202,"summary_zh":203,"released_at":204},99477,"v0.2.2","## 变更内容\n* 文档：由 @georgeh0 在 https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F94 中添加的技能设置参考文档\n* 修复：由 @georgeh0 在 https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F96 中实现的，优雅处理 ccc 状态中索引表缺失的问题\n* 杂项：由 @georgeh0 在 https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F97 中完成的 cocoindex 版本升级\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fcompare\u002Fv0.2.1...v0.2.2","2026-03-17T06:47:10",{"id":206,"version":207,"summary_zh":208,"released_at":209},99478,"v0.2.1","## 变更内容\n* 文档：更新 `README.md`，并由 @georgeh0 在 https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F89 中添加技能说明。\n* 文档：由 @georgeh0 在 https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F90 中提出，使相关技能拥有更强的自主权。\n* 功能：实现基于加载时索引的搜索功能，由 @georgeh0 在 https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F91 中完成。\n* 文档：鼓励在 `README.md` 中更多地介绍技能，由 @georgeh0 在 https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F93 中提出。\n* 修复：确保搜索在加载时索引未完成时能够优雅地阻塞，由 @georgeh0 在 https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F92 中完成。\n\n\n**完整变更日志**：https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fcompare\u002Fv0.2.0...v0.2.1","2026-03-17T03:35:59",{"id":211,"version":212,"summary_zh":213,"released_at":214},99479,"v0.2.0","## What's Changed\r\n* refactor: create separate `Project` to encapsulate `coco.Environment` by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F63\r\n* chore: make sure `pytest` always run in precommit by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F64\r\n* feat: preliminary implementation for daemon + CLI by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F67\r\n* fix: bring down daemon in more reliable way by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F68\r\n* chore: detect project folder more correctly by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F69\r\n* feat: show indexing progress gracefully by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F71\r\n* chore: avoid reprocessing triggered unncessarily by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F73\r\n* chore: auto-generate _version.py via hatch-vcs by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F74\r\n* feat: assorted improvements for CLI\u002Fdaemon to be resilient and ergonomic by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F72\r\n* chore: adjust chunk size by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F75\r\n* chore: shutdown the daemon more reliably by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F76\r\n* fix: close all projects on daemon shutdown by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F77\r\n* chore: minor tweak to comments added to users `.gitignore` by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F80\r\n* fix: skip files ignored by gitignore by @zerone0x in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F78\r\n* chore: format fix by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F81\r\n* chore: no longer automatically trigger init by `ccc index` by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F82\r\n* fix: stablize setting files by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F83\r\n* chore: show project location clearly by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F87\r\n* feat: automatically restart daemon on global settings change by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F88\r\n* fix: make sure daemons are brought down cleanly by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F84\r\n\r\n## New Contributors\r\n* @zerone0x made their first contribution in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F78\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fcompare\u002Fv0.1.14...v0.2.0","2026-03-16T23:51:26",{"id":216,"version":217,"summary_zh":218,"released_at":219},99480,"v0.1.14","## What's Changed\r\n* feat: add Lua language support by @ScavengerCoA in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F57\r\n* Feat\u002Fexcluded patterns by @RubenFricke in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F54\r\n* chore: reformat by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F59\r\n* chore: clarify `sbert\u002F` for local models & simplify `trust_remote_code` by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F60\r\n* chore: upgrade cocoindex and fix args to `embed()` call by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F61\r\n\r\n## New Contributors\r\n* @ScavengerCoA made their first contribution in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F57\r\n* @RubenFricke made their first contribution in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F54\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fcompare\u002Fv0.1.13...v0.1.14","2026-03-13T01:07:42",{"id":221,"version":222,"summary_zh":223,"released_at":224},99481,"v0.1.13","## What's Changed\r\n* chore: upgrade cocoindex dependency version by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F55\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fcompare\u002Fv0.1.12...v0.1.13","2026-03-12T16:28:49",{"id":226,"version":227,"summary_zh":228,"released_at":229},99482,"v0.1.12","## What's Changed\r\n* fix: use `SentenceTransformer` to automatically choose device by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F50\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fcompare\u002Fv0.1.11...v0.1.12","2026-03-11T15:16:54",{"id":231,"version":232,"summary_zh":233,"released_at":234},99483,"v0.1.11","## What's Changed\r\n* docs: encourage run `cocoindex-code index` for large codebase by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F46\r\n* feat: signal indexing not done during search by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F47\r\n* chore: avoid noisy logs in `cocoindex-code index` by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F48\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fcompare\u002Fv0.1.10...v0.1.11","2026-03-10T21:02:54",{"id":236,"version":237,"summary_zh":238,"released_at":239},99484,"v0.1.10","## What's Changed\r\n* chore: update `README` to recommend `pipx` \u002F `uv tool` by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F41\r\n* chore: upgrade `cocoindex` dependency to v1.0.0a26 by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F42\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fcompare\u002Fv0.1.9...v0.1.10","2026-03-08T04:40:11",{"id":241,"version":242,"summary_zh":243,"released_at":244},99485,"v0.1.9","## What's Changed\r\n* chore: move some constructor args to call args for `LocalEmbedder` by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F33\r\n* Enhance README with image and project details by @badmonster0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F34\r\n* docs: update `README.md` to explain how the MCP is triggered by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F35\r\n* Support extra extensions with optional language mapping by @ikeisuke in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F32\r\n* chore: upgrade to cocoindex 1.0.0a24 and use its embedder by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F36\r\n\r\n## New Contributors\r\n* @ikeisuke made their first contribution in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F32\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fcompare\u002Fv0.1.8...v0.1.9","2026-03-05T22:21:31",{"id":246,"version":247,"summary_zh":248,"released_at":249},99486,"v0.1.8","## What's Changed\r\n* feat: support filter by languages and file paths by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F27\r\n* feat: store relative path instead of absolute path by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F28\r\n* chore: upgrade cocoindex dep by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F29\r\n* feat: use the `vec0` virtual table for vec index by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F31\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fcompare\u002Fv0.1.7...v0.1.8","2026-03-04T07:43:30",{"id":251,"version":252,"summary_zh":253,"released_at":254},99487,"v0.1.7","## What's Changed\r\n* feat: add LocalEmbedder with GPU support, configurable batch size, and CodeRankEmbed opt-in by @mareurs in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F22\r\n* fix: fit into the latest cocoindex API by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F25\r\n* docs: update README by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F26\r\n\r\n## New Contributors\r\n* @mareurs made their first contribution in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F22\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fcompare\u002Fv0.1.6...v0.1.7","2026-03-03T17:18:31",{"id":256,"version":257,"summary_zh":258,"released_at":259},99488,"v0.1.6","## What's Changed\r\n* chore: migrate to latest cocoindex async-first API by @georgeh0 in https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fpull\u002F23\r\n\r\n\r\n**Full Changelog**: https:\u002F\u002Fgithub.com\u002Fcocoindex-io\u002Fcocoindex-code\u002Fcompare\u002Fv0.1.5...v0.1.6","2026-02-26T07:26:06"]