ccc — Claude Code skill: what it does, how to install
Enables semantic code search and index management across the codebase using the ccc CLI. It queries concepts rather than exact syntax.
npx skills add cocoindex-io/cocoindex-code --skill ccc -a claude-codeWhat ccc does
This skill gives the agent direct access to CocoIndex Code via its ccc CLI. Instead of matching exact strings, queries target concepts like connection pooling or retry handling. Filters restrict results to specific languages with --lang and directory globs via --path.
The agent handles the tool lifecycle automatically. It triggers ccc init and ccc index when an index is missing, and passes --refresh after heavy code edits. However, running initialization in your home directory is unsafe because that path holds user settings. Keep ccc bound strictly to actual project folders.
What it helps with
- find implementation logic by concept description without exact symbol names
- restrict semantic search to specific languages or subdirectories
- rebuild the code index automatically after major refactors
- paginate through search matches using offsets and limits
Example prompts for the agent
- search the codebase for user authentication flow
- find code related to database connection pooling in src/db
- update the index after the recent refactoring
How to install ccc
1Skills CLI (Vercel)
npx skills add cocoindex-io/cocoindex-code --skill ccc -a claude-code2Manually: put the files in place
~/.claude/skills/ccc/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/ccc/
1Skills CLI (Vercel)
npx skills add cocoindex-io/cocoindex-code --skill ccc -a codex2Manually: put the files in place
.agents/skills/ccc/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add cocoindex-io/cocoindex-code --skill ccc -a cursor2Manually: put the files in place
.cursor/skills/ccc/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install cocoindex-io/cocoindex-code ccc2Manually: put the files in place
.github/skills/ccc/SKILL.md1Skills CLI (Vercel)
npx skills add cocoindex-io/cocoindex-code --skill ccc -a gemini-cli2Platform CLI
gemini skills install https://github.com/cocoindex-io/cocoindex-code --path skills/cccManually: put the files in place
.devin/skills/ccc/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add cocoindex-io/cocoindex-code --skill ccc -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Similar
Questions about ccc
How to install ccc in Claude Code?
Run npx skills add cocoindex-io/cocoindex-code --skill ccc -a claude-code in your terminal.
What does ccc do?
It provides semantic search and codebase indexing through the CocoIndex Code CLI. The tool returns matching files and line ranges based on concept queries rather than literal text matches.
How does the skill handle missing project indexes?
The agent runs ccc init from the project root and executes ccc index before retrying the search query. It avoids doing this inside the home directory because user settings reside there.
Source text
SKILL.md · Apache-2.0
--- name: ccc description: "This skill should be used when code search is needed (whether explicitly requested or as part of completing a task), when indexing the codebase after changes, or when the user asks about ccc, cocoindex-code, or the codebase index. Trigger phrases include 'search the codebase', 'find code related to', 'update the index', 'ccc', 'cocoindex-code'." --- # ccc - Semantic Code Search & Indexing `ccc` is the CLI for CocoIndex Code, providing semantic search over the current codebase and index management. ## Ownership The agent owns the `ccc` lifecycle for the current project — initialization, indexing, and searching. Do not ask the user to perform these steps; handle them automatically. - **Initialization**: If `ccc search` or `ccc index` fails with an initialization error (e.g., "Not in an initialized project directory"), run `ccc init` from the project root directory, then `ccc index` to build the index, then retry the original command. - Exception: if `ccc index` refuses because the directory holds ccc's user settings directory (usually your home directory), do not run `ccc init` there. Run ccc from inside the project instead, or ask the user which project to use. - Exception: if a ccc note says the project in use is that directory (a repo below it has no project of its own), tell the user. Do not run `ccc reset` there yourself: whether it should stay a project is the user's call. - **Index freshness**: Keep the index up to date by running `ccc index` (or `ccc search --refresh`) when the index may be stale — e.g., at the start of a session, or after making significant code changes (new files, refactors, renamed modules). There is no need to re-index between consecutive searches if no code was changed in between. - **Installation**: If `ccc` itself is not found (command not found), refer to [management.md](references/management.md) for installation instructions and inform the user. ## Searching the Codebase To perform a semantic search: ```bash ccc search <query terms> ``` The query should describe the concept, functionality, or behavior to find, not exact code syntax. For example: ```bash ccc search database connection pooling ccc search user authentication flow ccc search error handling retry logic ``` ### Filtering Results - **By language** (`--lang`, repeatable): restrict results to specific languages. ```bash ccc search --lang python --lang markdown database schema ``` - **By path** (`--path`): restrict results to a glob pattern relative to project root. If omitted, defaults to the current working directory (only results under that subdirectory are returned). ```bash ccc search --path 'src/api/*' request validation ``` ### Pagination Results default to the first page. To retrieve additional results: ```bash ccc search --offset 5 --limit 5 database schema ``` If all returned results look relevant, use `--offset` to fetch the next page — there are likely more useful matches beyond the first page. ### Working with Search Results Search results include file paths and line ranges. To explore a result in more detail: - Use the editor's built-in file reading capabilities (e.g., the `Read` tool) to load the matched file and read lines around the returned range for full context. - When working in a terminal without a file-reading tool, use `sed -n '<start>,<end>p' <file>` to extract a specific line range. ## Settings To view or edit embedding model configuration, include/exclude patterns, or language overrides, see [settings.md](references/settings.md). ## Management & Troubleshooting For installation, initialization, daemon management, troubleshooting, and cleanup commands, see [management.md](references/management.md).
© cocoindex-io · Apache-2.0 · cocoindex-io/cocoindex-code