用途:ccx 是 CocoIndex Code Plus 的客户端 CLI,用于理解和查找代码,查询的是远程查询服务器已索引的代码库(Postgres + pgvector)。CLI 不持有索引、无需许可证,仅通过 HTTP 与服务端通信。默认自动按当前 git checkout 的 origin 远程(GitHub/GitLab)定位 owner/repo,可用 --repo <owner>/<repo> 覆盖,且对 search 与 query 可重复;没有任何 origin 时会报错并提示传入 --repo;ccx repos 列出可查询的已索引仓库,不支持全局搜索。
主要能力:语义搜索(ccx search)按概念/行为描述查找,结果按相关度排序,支持 --lang、--path 过滤,-k/--top-k 默认 5、--offset 分页。AST 结构 grep(ccx grep)按语法树而非文本匹配,需 -l/--language;元变量仅 \ 为特殊字符,含 _(单个节点)、*(零或多个兄弟节点,+ 一个以上、? 可选)、/re/(正则匹配节点文本)、\NAME(命名捕获或反向引用)、{{ INNER }}(包含某结构);分页 -k/--limit 默认 100 与 --offset。符号导航(ccx defs / ccx refs)基于跨文件、可识别别名与再导出的符号图,支持 Python、TS/JS(含 TSX)、C/C++、C#、Rust;defs 支持 --qualified-name、--kind、--lang、--path,refs 支持 --role(call、import、type_use 等),结果含解析状态 resolved / ambiguous / name_only 及 via_alias 标记;建议按 defs 输出行末给出的 uses: ccx refs PATH ENTITY_ID 原样复制执行。ccx query 返回带引用的书面回答,适合跨仓库比较或过宽问题。
使用方式:每个查询命令都受 ref 约束,--git-ref 可选,缺省时用已索引的检出分支,否则用默认分支,并在 stderr 打印 Using git ref … 提示;索引 ref 是提交快照,本地未提交/未推送改动可能导致路径与行号过期,必要时用 ccx git-refs 查看具体提交。从子目录运行会把 search/grep 的 --path 默认限定到该子树,需要全仓时从仓库根运行或传 --path '*'。示例:ccx search "rate limiter" --repo acme/api --repo acme/worker;ccx grep 'foo(*)' -l python;ccx defs QueryService;ccx refs QueryService --role call。
限制:无 origin 时需自行传 --repo;AST 匹配对结构字面,空结果不代表不存在,应放宽结构或改用 search;字符串字面量为单个原子节点,* 与 \NAME 无法进入其中;--git-ref 仅单仓库范围;query 较慢(秒到分钟),服务端限制并发,不要用 shell timeout 包裹;符号索引可能未构建、部分或滞后,缺失符号不等于不存在,需阅读 stderr 覆盖说明。其他语言回退到 grep/search。收费、价格、平台等信息资料未提供。