by cocoindex-io
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!
# Add to your Claude Code skills
git clone https://github.com/cocoindex-io/cocoindex-codeGuides for using ai agents skills like cocoindex-code.
Last scanned: 6/19/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-06-19T09:05:32.151Z",
"npmAuditRan": true,
"pipAuditRan": true,
"promptInjectionRan": true
}cocoindex-code is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by cocoindex-io. 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!. It has 2,151 GitHub stars.
Yes. cocoindex-code passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/cocoindex-io/cocoindex-code" and add it to your Claude Code skills directory (see the Installation section above).
cocoindex-code is primarily written in Python. It is open-source under cocoindex-io on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh cocoindex-code against similar tools.
No comments yet. Be the first to share your thoughts!
A lightweight, effective (AST-based) semantic code search tool for your codebase. Built on CocoIndex — a Rust-based ultra performant data transformation engine. Use it from the CLI, or integrate with Claude, Codex, Cursor — any coding agent — via Skill or MCP.
🌟 Please help star CocoIndex if you like this project!
Deutsch | English | Español | français | 日本語 | 한국어 | Português | Русский | 中文
Using pipx:
pipx install 'cocoindex-code[full]' # batteries included (local embeddings)
pipx upgrade cocoindex-code # upgrade
Using uv:
uv tool install --upgrade 'cocoindex-code[full]'
Two install styles — they mirror the Docker image variants of the same names:
cocoindex-code[full] — batteries-included. Pulls in sentence-transformers so local embeddings (no API key required) work out of the box. The ccc init interactive prompt defaults to Snowflake/snowflake-arctic-embed-xs.cocoindex-code (slim) — LiteLLM-only; requires a cloud embedding provider and API key. Use when you don't want the local-embedding deps (~1 GB of torch + transformers).Next, set up your coding agent integration — or jump to Manual CLI Usage if you prefer direct control.
Install the ccc skill so your coding agent automatically uses semantic search when needed:
npx skills add cocoindex-io/cocoindex-code
That'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.
The 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 /ccc to invoke the skill directly.
Works with Claude Code and other skill-compatible agents.
For Claude Code users, this repository is also a plugin marketplace. Install the skill from inside Claude Code with:
/plugin marketplace add Roxabi/cocoindex-code
/plugin install cocoindex-code@cocoindex-code
This bundles the same ccc skill, with version pinning and /plugin marketplace update for updates.
Alternatively, use ccc mcp to run as an MCP server:
claude mcp add cocoindex-code -- ccc mcp
codex mcp add cocoindex-code -- ccc mcp
opencode mcp add
Enter MCP server name: cocoindex-code
Select MCP server type: local
Enter command to run: ccc mcp
Or use opencode.json:
{
"$schema": "https://opencode.ai/config.json",
"mcp": {
"cocoindex-code": {
"type": "local",
"command": [
"ccc", "mcp"
]
}
}
}
Once configured, the agent automatically decides when semantic code search is helpful — finding code by description, exploring unfamiliar codebases, fuzzy/conceptual matches, or locating implementations without knowing exact names.
Note: The
cocoindex-codecommand (without subcommand) still works as an MCP server for backward compatibility. It auto-creates settings from environment variables on first run.
When running as an MCP server (ccc mcp), the following tool is exposed:
search — Search the codebase using semantic similarity.
search(
query: str, # Natural language query or code snippet
limit: int = 5, # Maximum results (1-100)
offset: int = 0, # Pagination offset
refresh_index: bool = True, # Refresh index before querying
languages: list[str] | None = None, # Filter by language (e.g. ["python", "typescript"])
paths: list[str] | None = None, # Filter by path glob (e.g. ["src/utils/*"])
)
Returns matching code chunks with file path, language, code content, line numbers, and similarity score.
You can also use the CLI directly — useful for manual control, running indexing after changing settings, checking status, or searching outside an agent.
ccc init # initialize project (creates settings)
ccc index # build the index
ccc search "authentication logic" # search!
The background daemon starts automatically on first use.
Tip:
ccc indexauto-initializes if you haven't runccc inityet, so you can skip straight to indexing.
| Command | Description |
|---|---|
ccc init |
Initialize a project — creates settings files, adds .cocoindex_code/ to .gitignore |
ccc index |
Build or update the index (auto-inits if needed). Shows streaming progress. |
ccc search <query> |
Semantic search across the codebase |
ccc status |
Show index stats (chunk count, file count, language breakdown) |
ccc mcp |
Run as MCP server in stdio mode |
ccc doctor |
Run diagnostics — checks settings, daemon, model, file matching, and index health |
ccc reset |
Delete index databases. --all also removes settings. -f skips confirmation. |
ccc daemon status |
Show daemon version, uptime, and loaded projects |
ccc daemon restart |
Restart the background daemon |
ccc daemon stop |
Stop the daemon |
ccc search database schema # basic search
ccc search --lang python --lang markdown schema # filter by language
ccc search --path 'src/utils/*' query handler # filter by path
ccc search --offset 10 --limit 5 database schema # pagination
ccc search --refresh database schema # update index first, then search
By default, ccc search scopes results to your current working directory (relative to the project root). Use --path to override.
A Docker image is available for teams who want a reproducible, dependency-free
setup — no Python, uv, or system dependencies required on the host.
The recommended approach is a persistent container: start it once, and use
docker exec to run CLI commands or connect MCP sessions to it. The daemon
inside stays warm across sessions, so the embedding model is loaded only once.
Two variants are published from each release:
| Tag | Size | Embedding backends | When to pick |
|---|---|---|---|
cocoindex/cocoindex-code:latest (slim, default) |
~450 MB | LiteLLM (cloud: OpenAI, Voyage, Gemini, Ollama, …) | Most users. Cloud-backed embeddings, smaller image, fast pulls. |
cocoindex/cocoindex-code:full |
~5 GB | sentence-transformers (local) + LiteLLM | When you want local embeddings without an API key, or an offline-ready container. Heavier because of torch + transformers. |
The rest of this section uses :latest — substitute :full in the image: /
docker run commands if you want the full variant.
Mac users running the
:fullvariant: local embedding inference is CPU-only inside Docker, because Docker on macOS can't access Apple's Metal (MPS) GPU. If you want local embeddings and fast inference